首页   网站推广   网站优化   网站赚钱   网站运营  门户动态 建站经验 网络安全 DIV+CSS教程 网页设计 站长论坛 站长IDC
 ASP教程  PHP教程   JSP教程  .NET教程   XML教程  SQL教程 鼠标特效 窗口特效 图像特效 按钮特效 站长工具 源码下载
zanox Affiliates find Affiliates
文字广告位招商|文字广告位招商 | 华北站长站 | 文字广告位招商 | 华北站长站 | 文字广告位招商 | 华北站长站 | 文字广告位招商 | 华北站长站| 华北站长站
   北京奥运会倒计时:
当前时间
  当前位置 → 华北站长站jsp教程 → 浏览正文
高性能、高弹性JSP和Servlet性能优化
发布时间::2008年04月22日 【字体: 】&  作者:网络 [ 加入收藏]

jsp教程你的J2EE应用是不是运行的很慢?它们能不能承受住不断上升的访问量?本文讲述了开发高性能、高弹性的JSP页面和Servlet的性能优化技术。其意思是建立尽可能快的并能适应数量增长的用户及其请求。在本文中,我将带领你学习已经实践和得到证实的性能调整技术,它将大大地提高你的servletjsp页面的性能,进而提升J2EE的性能。这些技术的部分用于开发阶段,例如,设计和编码阶段。另一部分技术则与配置相关。

  技术1:在HttpServlet init()方法中缓存数据

  服务器会在创建servlet实例之后和servlet处理任何请求之前调用servlet的init()方法。该方法在servlet的生命周期中仅调用一次。为了提高性能,在init()中缓存静态数据或完成要在初始化期间完成的代价昂贵的操作。例如,一个最佳实践是使用实现了javax.sql.DataSource接口的JDBC连接池。DataSource从JNDI树中获得。每调用一次SQL就要使用JNDI查找DataSource是非常昂贵的工作,而且严重影响了应用的性能。Servlet的init()方法可以用于获取DataSource并缓存它以便之后的重用:

  public class ControllerServlet extends HttpServlet
  {
  private javax.sql.DataSource testDS = null;
  public void init(ServletConfig config) throws ServletException
  {
  super.init(config);
  Context ctx = null;
  try
  {
  ctx = new InitialContext();
  testDS = (javax.sql.DataSource)ctx.lookup("jdbc/testDS");
  }
  catch(NamingException ne)
  {
  ne.printStackTrace();
  }
  catch(Exception e)
  {
  e.printStackTrace();
  }
  }
  public javax.sql.DataSource getTestDS()
  {
  return testDS;
  }
  ...
  ...
  }

  技术2:禁用servlet和Jsp的自动装载功能

  当每次修改了Servlet/JSP之后,你将不得不重新启动服务器。由于自动装载功能减少开发时间,该功能被认为在开发阶段是非常有用的。但是,它在运行阶段是非常昂贵的;servlet/JSP由于不必要的装载,增加类装载器的负担而造成很差的性能。同样,这会使你的应用由于已被某种类装载器装载的类不能和当前类装载器装载的类不能相互协作而出现奇怪的冲突现象。因此,在运行环境中为了得到更好的性能,关闭servlet/JSP的自动装载功能。

  技术3:控制HttpSession

  许多应用需要一系列客户端的请求,因此他们能互相相关联。由于HTTP协议是无状态的,所以基于Web的应用需要负责维护这样一个叫做session的状态。为了支持必须维护状态的应用,Java servlet技术提供了管理session和允许多种机制实现session的API。HttpSession对象扮演了session,但是使用它需要成本。无论何时HttpSession被使用和重写,它都由servlet读取。你可以通过使用下面的技术来提高性能:

  在JSP页面中不要创建默认的HttpSession:默认情况下,JSP页面创建HttpSession。如果你在JSP页面中不用HttpSession,为了节省性能开销,使用下边的页面指令可以避免自动创建HttpSession对象:

< %@ page session="false"%>

  不要将大的对象图存储在HttpSession中:如果你将数据当作一个大的对象图存储在HttpSession中,应用服务器每次将不得不处理整个HttpSession对象。这将迫使Java序列化和增加计算开销。由于序列化的开销,随着存储在HttpSession对象中数据对象的增大,系统的吞吐量将会下降。

  用完后释放HttpSession:当不在使用HttpSession时,使用HttpSession.invalidate()方法使sesion失效。

  设置超时值:一个servlet引擎有一个默认的超时值。如果你不删除session或者一直把session用到它超时的时候,servlet引擎将把session从内存中删除。由于在内存和垃圾收集上的开销,session的超时值越大,它对系统弹性和性能的影响也越大。试着将session的超时值设置的尽可能低。 

下一页
本文共 2 页,第  [1]  [2]  页

  上一篇:困扰JSP的一些问题与解决方法
  下一篇:JSP实例程序:统计当前在线人数

郑重声明:本文仅代表作者个人观点与本站无关,其原创性与文中所述文字和内容未经本站证实,对本文及其中全部或部分内容、文字的真实性、完整性、及时性本站不作任何保证和承诺,请自行核实相关内容。
620*136广告位出租,联系QQ:513178175 793518
 相关文章
·[jsp教程] JSP+XML实现网页内容动态显示的方案04-22 
·[jsp教程] JSP实例程序:统计当前在线人数04-22 
·[jsp教程] 困扰JSP的一些问题与解决方法04-22 
·[jsp教程] Servlet及JSP里面地多线程同步疑难04-22 
  热门文章
百度在今年推出广告营销产品06-09 
google终于制造出其第一台06-09 
windows系统下安装MyS06-08 
中国网站发展的重中之重是创新盈06-08 
使用不着dreamweaver06-08 
杨致远向雅虎员工致信来解读代理06-08 
 我国外交部驳中国特工盗取美部06-08 
微软新购公司涉嫌会计丑闻遭调查06-03 
揭开国际铁公鸡排行榜背后真相05-30 
  推荐文章
[门户动态] 微软新购公司涉嫌会计丑闻遭调
[门户动态] 揭开国际铁公鸡排行榜背后真相
[门户动态] 亚马逊将试水网络视频服务
[门户动态] 马云承诺5000万美元建华南
[建站经验] 国内网络广告市场竞争分析
[建站经验] 搜索引擎向网上社区发力 成为
[网站运营] 网站运营之在线客户界面设计
[门户动态] 中华英才网张建国:规划人生三
[门户动态] 报告称2013年全球网络视频
关于我们 | 用户帮助 | 隐私权政策 | 版权声明 | 意见反馈 | 友情链接 | 广告服务 | 免责条款 |
华北站长站 版权所有 2003-2008
鲁ICP备08006134号 广告合作QQ:793518  广告招商电话:0531-88819137
浏览本站建议选用IE5.0以上浏览器 1024*768分辨率
本站由中华e联提供空间支持
本站基于ACTCMS1.0所建