`
zfwdl2005
  • 浏览: 230860 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

struts2性能优化

阅读更多
struts2性能优化方案考虑struts2在mvc框架中性能低下的问题,struts2的性能优化方案就此诞生了!:


1. 关闭logging和开发模式(devMode), devMode是在struts.properties中设置的, 关闭logging需要修改web.xml文件,加入以下参数

<servlet>
<init-param>
<param-name>debug</param-name>
<param-value>0</param-value>
</init-param>
<init-param>
<param-name>detail</param-name>
<param-value>0</param-value>
</init-param>
</servlet>

2. 除非需要,否则不要使用拦截器(interceptor).

        如果一个Action不需要全栈的拦截器的话,就使用basicStack拦截器或移除不需要的拦截器。


3. 正确设置页面的Cache-Control 和 Expires

      使用正确的HTTP头(缓存控制和过期时间)


      当返回一个html页面的时候,要保证html页面包含正确的header,使得浏览器可以知道怎样缓存该html页面。


4. struts2提供的Ajax theme(Dojo)或者Calendar标签默认情况下保存在struts.jar包里面, 把这些js文件或者css文件拷出来放到另外一个服务器上可以提高性能。

      当使用AJAX theme(Dojo)或日历tag时,从Struts2的jar包复制静态内容到http服务器。
      因为http服务器会对这些静态文件的请求进行优化

5. 如果使用freemarker的话,在WEB-INF下的classes文件夹下创建一个freemarker.properties并且加入
template_update_delay=60000, 这个值是freemarker多久从硬盘重新载入模板,默认情况下是500ms, 因为没有必要检查是不是需要重新载入模板文件,所以最好把它设置为一个很大的数字。

6.启用Freemarker 模板缓存, 这是struts.freemarker.templatesCache为true, 默认情况下这个是false的。

7. 当覆盖一个theme时,copy所有重要的模板到theme目录


当template在当前目录不能发现时,会有性能开销。因为在返回父模板前,struts2必须在当前目录进行theme检查. 晚先时候,这个缺陷将要通过一个 template缓存解决。

8.在你需要的时候才创建session

除非需要,Struts2不会创建sessions(比如,在你的拦截器stack中有createSession拦截器)。注意当使用SiteMesh时, 一个session将总是被创建(看看http://forums.opensymphony.com /thread.jspa?messageID=5688的描述).

9.当使用FreeMarker时,尽量使用等价的FreeMarker元素,代替JSP的标签。


    Freemarker支持list迭代, 显示属性,包含其他模版, macro's等等.使用等价的FreeMarker元素代替struts2的tags 会有小的性能提升。 (例如:<s:property value="foo"/>将要被${foo}代替).




1 struts2.3.4.1.jar,xwork-core-2.3.4.jar,freemarker 升级为2.3.19

2 ognl 升级为 3.0.5(+javassist-3.11.0.jar)

3 根包下增加freemarker.properties文件,内容为template_update_delay=60000

4 struts.xml增加<constant name=”struts.devMode” value=”false”/>和<constant name=”struts.freemarker.templatesCache” value=”true”/>

5 把struts.xml中的默认拦截器定义为basicStack:




<package name="web" extends="tiles-default"> 

     <default-interceptor-ref name="basicStack" /> 

</package>

 

执行了这几步之后,网站性能从5 req/s提升至70 req/s,请求处理时间从22s/req缩减至2s/req!

分享到:

相关推荐

    struts2项目性能调优三步曲.txt

    纯属读书笔记,只是小结而已!对项目一个小点发现的自省!

    Struts Spring Hibernate性能优化

    首先是找到了hibernate的启动优化 http://www.hibernate.org/194.html 里面的主要思想是通过将xml序列花到本地的文件里,每次读取的时候根据情况,从本地文件读取并反序列化,节省了hibernate xml的解析时间。

    第3章 Struts2标签库详解与AJAX技术应用大型门户网站是这样炼成的

    大型门户网站是这样炼成的,本书详细介绍了以JSP 2、Struts 2、Spring 2.5、Hibernate 3.2、AJAX等主流JavaEE技术进行优化组合开发高性能大型门户网站的实践经验。针对读者的不同学习阶段,共分技术篇、实践篇与部署...

    hibernate+spring+struts2

    绿色健康购物网SSH 个人水平有限,如有问题与建议,请指教! (1)个人独立完成,包括mysql...(4)采用优化性能技术,采用oscache缓存,freemarker静态页面生成; (5)功能比较多但操作简单的后台管理;(后台管理附图片)

    第2章 MVC混血宠儿Struts2.0 大型门户网站是这样炼成的

    本书详细介绍了以JSP 2、Struts 2、Spring 2.5、Hibernate 3.2、AJAX等主流JavaEE技术进行优化组合开发高性能大型门户网站的实践经验。针对读者的不同学习阶段,共分技术篇、实践篇与部署篇三大部分进行循序渐进地...

    项目申报系统(Struts2+Spring+Hibernate+Jsp+Mysql5)130223.rar

    项目申报系统是一个基于Struts2+Spring+Hibernate+Jsp+Mysql5的...通过合理的数据库设计和优化,系统能够高效地处理大量的数据请求,保证了系统的性能和稳定性。总之,这个计算机专业JSP源码资料包为学习者提供了一

    Java Web程序设计教程2

    第10章 hibernate性能优化 208 第11章 spring框架基础 226 第12章 spring aop 242 第13章 spring与java ee持久化数据访问 260 第14章 spring与struts 2、hibernate框架的整合基础 277 第15章 图书馆管理...

    低清版 大型门户网站是这样炼成的.pdf

    第5章 hibernate 3持久化技术实践与性能优化 271 5.1 操作持久化对象的常用方法介绍 271 5.1.1 使用session的begintransaction()方法 272 5.1.2 使用session的close()方法 273 5.1.3 使用session的connection()...

    第5章 Hibernate3持久化技术实践与性能优化---大型门户网站是这样炼成的

    本书详细介绍了以JSP 2、Struts 2、Spring 2.5、Hibernate 3.2、AJAX等主流JavaEE技术进行优化组合开发高性能大型门户网站的实践经验。针对读者的不同学习阶段,共分技术篇、实践篇与部署篇三大部分进行循序渐进地...

    Java Web程序设计教程4

    第10章 hibernate性能优化 208 第11章 spring框架基础 226 第12章 spring aop 242 第13章 spring与java ee持久化数据访问 260 第14章 spring与struts 2、hibernate框架的整合基础 277 第15章 图书馆管理...

    Java程序员最新简历模板,熟悉Struts2,Hibernate,Spring等框架,精通Servlet,JSP,JSTL等

    对网站的性能优化,安全机制也有一定的了解。 我曾参与过多个公司项目的开发,包括: 公司内部办公自动化系统,负责用户登录,权限管理模块的开发。 公司产品在线商城,负责产品展示,购物车,订单管理模块的开发。 公司官网...

    Java Web程序设计教程1

    第10章 hibernate性能优化 208 第11章 spring框架基础 226 第12章 spring aop 242 第13章 spring与java ee持久化数据访问 260 第14章 spring与struts 2、hibernate框架的整合基础 277 第15章 图书馆管理...

    Java Web程序设计教程3

    第10章 hibernate性能优化 208 第11章 spring框架基础 226 第12章 spring aop 242 第13章 spring与java ee持久化数据访问 260 第14章 spring与struts 2、hibernate框架的整合基础 277 第15章 图书馆管理...

    Java Web程序设计教程5

    第10章 hibernate性能优化 208 第11章 spring框架基础 226 第12章 spring aop 242 第13章 spring与java ee持久化数据访问 260 第14章 spring与struts 2、hibernate框架的整合基础 277 第15章 图书馆管理...

    SSH知识大全

    TP02-Web层框架struts.ppt TP03-Struts2常用标签....Hibernate性能优化.ppt TP11-Hibernate高级特性.ppt TP12-Spring入门.ppt TP13-Spring AOP实现.ppt TP14-Spring与持久层的整合.ppt TP15-Spring与struts2的整合.ppt

    优化Hibernate性能的几点建议

    优化Hibernate性能的几点建议

    运用struts1.2+hibernate+spring 框架完整购物商城项目(内含sql文件)

    一个J2EE购物网站的实现 运用struts1.2+hibernate+spring 框架,数据库连接池,事务管理;Struts 应用国际化,Struts 标签库与Tiles框架, JSTL标签库,... 采用优化性能技术,采用oscache缓存,freemarker静态页面生成

    java_jsp项目源码_网上书店(struts+hibernate+css+mysql)130223.rar

    2. 对现有功能进行优化和改进,提高系统性能和用户体验。 3. 针对特定行业或场景进行定制化开发,如教育类图书销售、电子书销售等。 总之,本项目是一个功能完善、易于维护和扩展的网上书店管理系统,可以为客户...

    车辆管理系统(struts+hibernate+spring+oracle)130225.rar

    这个压缩包"130225.rar"包含了一个基于Java的车辆管理系统的完整源码,采用了Struts、Hibernate、Spring和Oracle数据库的技术栈。...同时,系统的性能优化也做得很好,即使在数据量大的情况下也能保持良好的响应

    java从入门到精通70个PPT

    34 Struts 2深入 拦截器 35 Struts 2综合应用 36 类型转换和OGNL 37-40 项目案例:在线投票系统 41 jsp servlet struts总结 42 Hibernate 入门 43 Hibernate 关联映射 44 HQL实用技术 45 HQL高级 46 Criteria 查询 ...

Global site tag (gtag.js) - Google Analytics