随笔分类 -  Java Web开发

摘要:Servlet 工作原理解析许 令波, Java 工程师, 淘宝网许令波,developerWorks 中国网站最佳作者,现就职于淘宝网,是一名 Java 开发工程师。对大型互联网架构设计颇感兴趣,喜欢钻研开源框架的设计原理。有时间将学到的知识整理成文章,也喜欢记录下工作和生活中的一些思考。个人网站是: HYPERLINK "http://xulingbo.net" http://xulingbo.net。简介:Web 技术成为当今主流的互联网 Web 应用技术之一,而 Servlet 是 Java Web 技术的核心基础。因而掌握 Servlet 的工作原理是成为一名合格 阅读全文
posted @ 2013-08-06 16:38 卡卡。冰 阅读(306) 评论(0) 推荐(0)
摘要:Tomcat 系统架构与设计模式,第 2 部分: 设计模式分析许 令波, Java 开发工程师, 淘宝网许令波,现就职于淘宝网,是一名 Java 开发工程师。对大型互联网架构设计颇感兴趣,并对一些开源框架也有比较深入的研究。简介:这个分为两个部分的系列文章研究了 Apache Tomcat 服务器的系统架构以及其运用的很多经典设计模式。第 1 部分 分析了 Tomcat 的工作原理,第 2 部分将分析 Tomcat 中运用的许多经典设计模式,如模版模式、工厂模式和单例模式等。通过学习它们的实践运用能给我们以后的软件设计起到一定的借鉴作用。-->标记本文!发布日期:2010 年 5 月 2 阅读全文
posted @ 2013-08-06 16:00 卡卡。冰 阅读(253) 评论(0) 推荐(0)
摘要:Tomcat 系统架构与设计模式,第 1 部分: 工作原理许 令波, Java 开发工程师, 淘宝网许令波,现就职于淘宝网,是一名 Java 开发工程师。对大型互联网架构设计颇感兴趣,并对一些开源框架也有比较深入的研究。简介:这个分为两个部分的系列文章将研究 Apache Tomcat 的系统架构以及其运用的很多经典设计模式。本文是第 1 部分,将主要从 Tomcat 如何分发请求、如何处理多用户同时请求,还有它的多级容器是如何协调工作的角度来分析 Tomcat 的工作原理,这也是一个 Web 服务器首要解决的关键问题。-->标记本文!发布日期:2010 年 5 月 20 日 级别:中级 阅读全文
posted @ 2013-08-06 15:59 卡卡。冰 阅读(271) 评论(0) 推荐(0)
摘要:乱码的出现是因为编码与解码的不一致造成的,假如你对“中文”两个字进行了gbk格式的保存,却用utf-8格式的解读,是肯定会出现乱码的。如何避免中文乱码:应用上下统一用一种编码格式。 utf-8或者gbk 建议用utf-8. 虽然占空间,但是通用性强,它属于国际编码格式。相反,gbk是国家级的。下面简单说下以tomcat为容器的程序响应response的编码流程:.java--.class.jsp--.java--.class~~.html.js--.js.css--.css编码涉及到的就这几种流程,而在程序响应中出现中文乱码也就中间的两种情况:.jsp--.java--.class~~.htm 阅读全文
posted @ 2013-07-22 18:09 卡卡。冰 阅读(2611) 评论(0) 推荐(0)
摘要:正常情况,我们会调用存储过程用hibernate提供的连接池代理连接类来调用存储过程,而用新建连接给存储过程组拼STRUCT。但是这样感觉可以再一步的优化:调用存储过程与构建STRUCT用hibernate提供的同一个代理connection,但是这里需要用到一个connection的类型转换。因为struct不能用代理类组拼。 1 public Connection getConnection(Connection conn) { 2 C3P0NativeJdbcExtractor cp30NativeJdbcExtractor = new C3P0NativeJdbcExt... 阅读全文
posted @ 2013-07-22 11:25 卡卡。冰 阅读(464) 评论(0) 推荐(0)
摘要:一.c3p0与dbcp区别dbcp没有自动回收空闲连接的功能c3p0有自动回收空闲连接功能《C3P0是Hibernate3.0默认的自带数据库连接池,DBCP是Apache开发的数据库连接池。我们对这两种连接池进行压力测试对比,发现在并发30 0个用户以下时,DBCP比C3P0平均时间快1秒左右。但在并发400个用户时,两者差不多。 速度上虽然DBCP比C3P0快些,但是有BUG:当DBCP建立的数据库连接,因为某种原因断掉后,DBCP将不会再重新创建新的连接,导致必须重新启动To mcat才能解决问题。DBCP的BUG使我们决定采用C3P0作为数据库连接池。》二.c3p0配置注释330100 阅读全文
posted @ 2013-07-17 18:40 卡卡。冰 阅读(623) 评论(0) 推荐(0)
摘要:注:在下面做的介绍都是以Weblogic8.1为例的,其它版本的Weblogic可能会有些许不同。1) 设置JAVA参数;a) 编辑Weblogic Server启动脚本文件;BEA_HOMEuser_projectsdomainsdomain-namestartWebLogic.cmd(startWebLogic.sh on Unix)BEA_HOMEuser_projectsdomainsdomain-namestartManagedWebLogic.cmd(startManagedWebLogic.sh on Unix)b) 编辑set JAVA_OPTIONS命令,如:set JAVA 阅读全文
posted @ 2013-07-15 16:13 卡卡。冰 阅读(852) 评论(0) 推荐(0)
摘要:另外http://www.cnblogs.com/fengmk2/archive/2007/01/15/using-Socket.html可供参考一Java socket说明所谓socket通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄。应用程序通常通过"套接字"向网络发出请求或者应答网络请求。以J2SDK-1.3为例,Socket和ServerSocket类库位于java.net包中。ServerSocket用于服务器端,Socket是建立网络连接时使用的。在连接成功时,应用程序两端都会产生一个Socket实例,操作这个实例,完成所需 阅读全文
posted @ 2013-07-15 15:04 卡卡。冰 阅读(18720) 评论(0) 推荐(1)
摘要:struts2的令牌,可以用来防止重复提交,其原理是在提交jsp页面中,写入一个隐藏域name="token",然后在action中定义一个变量token并get、set。在服务器端避免表单重复提交,通常是采用同步令牌的方式实现,其基本原理是:(1)用户访问包含表单的页面,服务器端在这次会话中,创建一个Session对象,并产生一个令牌值,将这个令牌值作为隐藏输入域(元素的type属性为hidden)的值,随表单一起发送到客户端,同时将令牌值保存到Session中。(2)用户提交页面,服务器端首先判断请求参数中的令牌值和Session中保存的令牌值是否相等,如果相等,则清除 阅读全文
posted @ 2013-07-08 15:20 卡卡。冰 阅读(550) 评论(0) 推荐(0)
摘要:Hibernate自带的连接池算法相当不成熟。 它只是为了让你快些上手,并不适合用于产品系统或性能测试中。 出于最佳性能和稳定性考虑你应该使用第三方的连接池。只需要用特定连接池的设置替换 hibernate.connection.pool_size即可。这将关闭Hibernate自带的连接池。 例如, 你可能会想用C3P0. C3P0是一个随Hibernate一同分发的开源的JDBC连接池, 它位于lib目录下。 如果你设置了hibernate.c3p0.*相关的属性, Hibernate将使用 C3P0ConnectionProvider来缓存JDBC连接。 如果你更原意使用Proxool. 阅读全文
posted @ 2013-07-05 11:14 卡卡。冰 阅读(834) 评论(0) 推荐(0)
摘要:在开始介绍域模型之前我们要明白一点,为什么通过域模型我们可以把参数这么方便的在后台接收。那是因为通过参数拦截器(params interceptor)自动的把前台传过来的参数给域对象(domain object),其实也就是调用了域对象的set方法。前提是用struts2框架,并创建一个JavaBean属性的域对象(domain object)并生成相应的getter和setter方法。 域模型不仅方便了参数的传递、数据的持久化,同时,也可以在前台jsp中,动态显示、回填。如: 可以回填name的值一、DomainModel就是域模型。1、所谓域模型就是在我们的实体域里面,真正存在的域的概念。 阅读全文
posted @ 2013-07-04 18:19 卡卡。冰 阅读(550) 评论(0) 推荐(0)
摘要:首先,何为webloigc的跨域访问? weblogic的工作空间可以看作一个一个的域,可以理解平时用的tomcat都是在一个域目录下的。而weblogic的建立会给你建好一个域domains,当然你也可以在建其他的域。 我们的项目就用到了两个域,原因每个域都会有一个独立的访问端口,独立的运行内存,这样可以避免项目多出现内存溢出的现象。 那么何为跨域呢? 这里的跨域是说客户端浏览器同时访问了一个weblogic下的两个域项目s1、s2。 这样先访问项目s1的session就会被后访问项目s2的session替换,导致s1的session丢失! 为什么会被替换因为它们的session在服务器上的 阅读全文
posted @ 2013-05-21 14:40 卡卡。冰 阅读(1569) 评论(0) 推荐(0)
摘要:浏览器自带的打印功能非常有限,不能够实现连续打印等特别功能,故找到功能强大的lodop代替。 lodop需要把lodop所需的js等文件放到项目中去,以及安装虚拟打印机(smartprinter)、lodop的active的安装。 就可以直接在页面中调用打印函数了。 阅读全文
posted @ 2013-05-10 10:40 卡卡。冰 阅读(457) 评论(1) 推荐(0)
摘要:数据源是报表中数据的来源。在集智数据平台的报表系统中报表设计器中一个数据集只能设置一个数据源。如下面的需求该如何实现呢?一个公司在全国各个省份都有分公司,各个分公司的数据存放在各自的数据库中,但是表结构是一样的。总公司要用报表系统统计各个分公司的数据,因为设计器中每个数据集只能设置一个数据源,所以要为每个省份做一套报表,这样工作量太大了。简单的方法就是做一套报表,动态的设置数据集的数据源查询各个省份的数据。比如查询北京分公司的数据时就把数据集的数据源设置为北京的数据源;查询山东的数据时就把数据集的数据源设置为山东的数据源。下面就介绍一下如何在jsp中动态的设置数据集的数据源。大致思路:用集智数 阅读全文
posted @ 2013-04-28 09:57 卡卡。冰 阅读(1006) 评论(0) 推荐(0)
摘要:Java 虚拟机(Java virtual machine,简称 JVM)是一种虚拟“执行引擎”实例,可在微处理器上执行 Java 类文件中的字节码。调整 JVM 的方式会影响 Weblogic Server 和应用程序的性能。envelope下列部分讨论的是 WebLogic Server 的 JVM 调整选项:JVM 调整注意事项哪种 JVM 适合您的系统?垃圾收集对 IA32 平台启用旋转功能JVM 调整注意事项表 5-1 列出了针对 WebLogic Server 的 JVM 调整的一般注意事项:表 5-1 JVM 调整一般注意事项调整因素信息引用JVM 供应商和版本仅可使用生产 JV 阅读全文
posted @ 2013-04-28 09:51 卡卡。冰 阅读(747) 评论(0) 推荐(0)
摘要:window.open("<%=basePath%>nccm/ReportFile/showReport.jsp?raq=nccm_hospSelReim_ay.raq");一个url的访问,360浏览器对其进行了页面缓存,当下次再次访问的时候,没有重新加载,而是从缓存取得该页面。----------------------------------------------------------------------------------------------光使用<META HTTP-EQUIV="Pragma" CONTENT 阅读全文
posted @ 2013-04-28 09:50 卡卡。冰 阅读(467) 评论(0) 推荐(0)
摘要:程序部署在weblogic下面通过cmd1、Windows平台在windows命令行窗口下执行:C:\>netstat -aon|findstr "1521" --查看端口1521都没那些进程连接TCP 127.0.0.1:9050 0.0.0.0:0 LISTENING 2016看到了吗,端口被进程号为2016的进程占用,继续执行下面命令:--查看该进程背后的应用C:\>tasklist|findstr "2016" tomcat6.exe 2016 Console 0 16,... 阅读全文
posted @ 2013-03-01 20:03 卡卡。冰 阅读(354) 评论(0) 推荐(0)
摘要:返回单个PL/SQL表,元素为标量类型创建类型,包头,包体create or replace type tab_array is table of varchar2(38);/create or replace package addnumis procedure abc(e_name in tab_array,t_name out tab_array);end;/create or replace package body addnum is procedure abc (e_name in tab_array,t_name out tab_array) is begin for i in 阅读全文
posted @ 2013-01-21 16:53 卡卡。冰 阅读(551) 评论(0) 推荐(0)
摘要:call "%WL_HOME%\common\bin\commEnv.cmd"set WLS_HOME=%WL_HOME%\serverset MEM_ARGS=-Xms512m -Xmx512mset MEM_PERM_SIZE=-XX:PermSize=512mset MEM_MAX_PERM_SIZE=-XX:MaxPermSize=512m修改这些就可以调整运行内存了 阅读全文
posted @ 2012-12-05 14:15 卡卡。冰 阅读(1956) 评论(0) 推荐(0)
摘要:建立pre-revprop-change.cmd或者pre-revprop-change.bat@echo off set repos=%1 set rev=%2 set user=%3 set propname=%4 set action=%5 if /I not '%propname%'=='svn:log' goto ERROR_PROPNAME if /I not '%action%'=='M' goto ERROR_ACTION set bIsEmpty=truefor /f "tokens=*" % 阅读全文
posted @ 2012-10-29 15:00 卡卡。冰 阅读(696) 评论(0) 推荐(0)