`
T240178168
  • 浏览: 367991 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

jsp速度优化七种方法

    博客分类:
  • java
阅读更多
调整JSP和servlet的一些非常实用的方法,它将使你的servlet和JSP页面响应速度更快,更具可扩展性。和系统上的负载会在用户数量增加的情况下,显示出平稳的长期趋势。在这篇文章中,我将通过实际例子和配置意想不到的升级应用程序的性能。其中,在你的编程工作中的一些调谐技术。和其他技术相关的应用程序服务器配置。

在这篇文章中,我们将详细地描述怎样通过调整servlet和JSP页面,您的应用程序,以提高整体性能。在阅读本文之前,假设你有一个基本的servlet和JSP的知识。

方法一:在servlet的init()方法的缓存数据

当应用服务器初始化servlet实例,为客户端请求提供服务时,它调用servlet的init()方法。生命周期的一个servlet的init()方法只被调用一次。在init()方法中缓存静态数据或完成,只需要执行耗时的操作,可以大大提高系统的性能。

例如,在init()方法来建立一个JDBC连接池是一个最好的例子,假设我们是用JDBC2.0的DataSource接口,数据库连接,在正常情况下,我们需要通过JNDI来源获取的具体数据。我们可以想像,在一个特定的应用程序,如果每次SQL查询必须执行一次JNDI查找,然后,系统性能将会急剧下降。解决方法是将下面的代码,通过缓存的数据源的SQL调用,可以继续使用它的下一次:

公共类ControllerServlet延伸的HttpServlet {私人javax.sql.DataSource的testDS = NULL;公共无效的init(ServletConfig配置)抛出ServletException {super.init(配置);上下文CTX = NULL;尝试{CTX =新的InitialContext(); testDS =( javax.sql.DataSource的)ctx.lookup(“jdbc / testDS的”);}的catch(NamingException的NE){ne.printStackTrace();}赶上(例外五){论坛主题贴();}}公共javax.sql。 DataSource的getTestDS(){返回testDS;} ...}方法2:禁用servlet和JSP自动重载(自动重载)

的Servlet / JSP提供了一个实用的技术,即自动重载技术,它提供了一个良好的发展环境,而无需重新启动应用服务器,当你改变servlet和JSP页面的开发。然而,这个系统在生产阶段的技术资源,是一个巨大的损失,因为它会给JSP引擎的类装载器(classloader)下施加了沉重的负担。因此,关闭自动重载功能对系统性能有很大的帮助。

方法3:不要滥用HttpSession中

在许多应用中,我们的程序需要保持客户端的状态,以便页面可以是相互关联的。不幸的是,出生由于HTTP的无状态,从而无法保存客户端状态。一般应用服务器提供了一个会议,以保存客户的状态。 JSP应用服务器的HttpSession要实现会议的功能,但在同一时间,很方便,它也带来了不小的负担系统。因为每当你获得或更新session时,系统是费时的操作顺序。您可以向以下HttpSession来提高系统的性能:

如果你不需要,你应该关闭JSP页面的HttpSession的缺省设置:如果你不明确指定,然后每个JSP页面将默认创建一个HttpSession。如果你不需要使用在你的JSP会话,然后由下面的JSP页面指示符来禁止它:

<%会话=“假”%>不存储在HttpSession中的大量数据,如:如果你存储在HttpSession中大型数据之类的,然后,只要是读,写,应用服务器将其序列化,从而增加了系统的额外负担。像更大的HttpSession中存储的数据,该系统的性能下降得更快。

当你不需要HttpSession中,尽快释放它:当你不再需要一个会话,您可以致电HttpSession.invalidate()方法来释放它。

尽可能的会话超时设置过短:在JSP应用服务器,默认的会话超时。当客户在此时间后,再没有会话的操作,系统会自动从内存中释放。超时设置就会越大系统的性能较低,所以最好的办法是要尽量保持在一个较低的水平及其价值。

方法4:页面输出压缩

压缩是解决数据冗余的一个好方法,尤其是在欠发达的网络带宽,今天。一些浏览器支持gzip(GNU zip的)压缩的HTML文件,这种方法可以大大减少HTML文件的下载时间。

因此,如果你的servlet或JSP页面生成的压缩的HTML页面,然后,用户会发现页面浏览速度是非常快的。不幸的是,并非所有浏览器都支持gzip压缩,但可以由客户在你的程序来检查浏览器是否支持它。下面是有关此方法的一个片段:

公共无效的doGet(HttpServletRequest的请求,HttpServletResponse的回应)=空字符串编码= request.getHeader(“的Accept-Encoding”)抛出IOException异常,ServletException {OutputStream的!(encoding! = NULL,&& encoding.indexOf(“gzip压缩”)= -1){request.setHeader(“内容编码”,使用“gzip”);出新的GZIPOutputStream的(request.getOutputStream());}!否则,如果(encoding!空&& encoding.indexOf的(“压缩”)= -1){request.setHeader(“内容编码”,“压缩”);出新ZIPOutputStream(request.getOutputStream());} {出= request.getOutputStream();} ......}方法5:使用线程池

默认的应用服务器为每个客户端请求创建一个线程处理,并为他们的service()方法,当service()方法调用完成分配,相应的线程也将被撤回。创建和撤消线程会消耗一定量的系统资源,降低系统的性能在此默认模式。但是,幸运的是,我们可以改变这种情况下,通过创建一个线程池。

此外,我们必须为这个线程池设置一个最小线程数和一个最大线程数。应用服务器启动时,它会创建一个数等于最低数量的线程,线程池,当客户的要求,相应的出池进行处理,处理完成时,然后英寸线程池线程如果线程池是不够的,系统会自动地增加池中线程的数量,但总不能超过最大线程数。通过使用线程池,当客户端请求在系统负荷剧增将呈现平稳上升的曲线,从而提高了系统的可扩展性。

方法6:选择正确的页面包含机制


有两种方法可以用来包含另一个JSP页面

1,使用include指令(<%@ includee文件“的test.jsp”%>)。

2,使用的JSP指标(<jsp:includee page="test.jsp" flush="true"/>)。

在实践中,我发现,如果使用第一种方法,可以使一个更高的系统性能。

方法7:确定的JavaBean的生命周期

在JSP的一个强大的地方是javabean的支持。在JSP页面中使用的<jsp:useBean>标签,JavaBean可以直接插入到一个JSP页面。其用途如下:

<jsp:useBean id="name" scope="page|request|session|application" class= "package.className" type="typeName"> </ JSP:useBean的scope属性指出了这个bean的生命周期。默认页面的生命周期。如果你没有选择权的bean的生命周期,它会影响系统的性能。

例如,如果你想使用bean的请求,但你却将会话bean的生命周期设置,这个请求结束时,这个bean将仍然保留在内存中,除非会话超时或用户关闭浏览器。这会消耗一些内存,并不必要地增加了JVM垃圾收集器的工作量。因此,设置正确的bean的生命周期,并尽快豆清洗他们的使命结束后,它会使用系统性能的改善。

其他一些有用的方法,尽可能的字符串串联操作不使用“+”操作符:在java编程中,我们经常使用“+”操作符连接多个字符串,但你可能从来没有想到这一点实际上对系统性能的影响?由于字符串是一个常量,因此JVM会产生一些临时对象。您可以使用“+”越多,像更使系统的性能将有一定的影响产生的暂时的。解决的办法是使用StringBuffer的,而不是像“+”操作符。

避免使用System.out.println()方法:由于对System.out.println()是一个同步调用,调用它,磁盘I / O操作必须等待它的完成,所以我们必须要尽量避免它调用。但我们在调试器中,它是一个重要的得心应手的工具,为了解决这个矛盾,我建议你使用Log4j工具http://Jakarta.apache.org;最好的,它可以方便调试,而不会产生系统通过out.println()这样的方式。

ServletOutputStream与PrintWriter的权衡:使用PrintWriter可能会带来一些小的开销,因为它的原始输出转换为字符流输出,所以如果你使用它作为页面输出,那么系统必须支付一个转换过程。使用ServletOutputStream作为页面输出不存在问题,但它是一个二进制输出。为了在实际应用中的利弊权衡。

总结

Servlet和JSP调整技术,大大提高了应用程序的性能,从而提升整个J2EE应用的性能。通过这些调优技术,你可以发现,其实,不是一个技术平台(如J2EE和。NET的争议)确定应用程序的性能,重要的是你想有一个更深入的了解这个平台,所以可以从根本上优化的应用。
分享到:
评论

相关推荐

    JSP速度优化七种方法

    调整JSP和servlet的一些非常实用的方法,它可使你的servlet和JSP页面响应更快,扩展性更强。而且在用户数增加的情况下,系统负载会呈现出平滑上长的趋势。在本文中,我将通过一些实际例子和配置方法使得你的应用程序...

    提升JSP页面响应速度的七大秘籍绝招

    提升 JSP 页面响应速度的七大秘籍绝招 本文将介绍七大秘籍绝招,以提升 JSP 页面响应速度,提高系统性能。这些秘籍绝招涵盖了 JSP 页面的生命周期、Servlet 的 init() 方法、自动重载功能、HttpSession 的使用、...

    提高JSP应用程序运行速度的七大绝招时间.doc

    以下是提高JSP应用程序运行速度的七大绝招: ### 1. 缓存机制的合理应用 缓存可以显著提高JSP应用程序的响应速度。开发者应充分利用HTTP缓存头,如`Cache-Control`和`Expires`,来控制浏览器缓存静态资源,减少对...

    提升JSP中页面响应速度的七大秘籍绝招

    ### 提升JSP中页面响应速度的七大秘籍绝招 在现代Web开发中,Java Server Pages(JSP)作为一种动态网页技术,被广泛应用于构建交互式的网站和应用程序。然而,随着用户对网页加载速度的高要求,优化JSP页面的响应...

    Myeclipse jsp卡优化方法

    - 优化JSP页面本身也可以提升加载速度。在“Window &gt; Preferences &gt; General &gt; Editors &gt; Text Editors &gt; Spelling”中,可以关闭拼写检查来减少对性能的影响。 8. 关于Tomcat配置 - 调整Tomcat服务器的配置参数...

    提升JSP页面响应速度的七大秘籍绝招.txt

    在JSP页面响应速度优化的过程中,`Servlet`的初始化阶段是一个重要的切入点。通过合理利用`init()`方法,可以在服务器启动时完成一系列预处理工作,从而减少每次请求时的处理时间。 **具体做法:** - **数据库连接...

    JSP_Servlet应用程序优化的八种方法

    ### JSP_Servlet应用程序优化的八种方法 #### 技术1:在`HttpServlet init()`方法中缓存数据 为了提升JSP/Servlet应用程序的性能,开发者可以在`init()`方法中缓存静态数据或执行那些成本较高的初始化操作。这是...

    jsp EL调用业务方法

    4. **性能提升**:EL的解析速度比纯Java脚本let快,因为它在服务器端被优化为Java方法调用。 **注意事项** 1. **只适用于公共方法**:EL只能调用JavaBean的公共方法,私有方法无法直接访问。 2. **方法签名匹配**:...

    网站性能优化 Web开发 JSP java

    页面静态化是一种常用的提高网页加载速度的方法,特别是在那些数据更新不频繁的场景下。通过将动态生成的内容转换为静态HTML文件,可以显著减少服务器的处理时间,并降低数据库的访问频率。其中提到的Velocity和...

    JSP分页技术(多种方法)

    本文件“JSP分页技术(多种方法)”中,将探讨几种常见的JSP分页实现方法。 1. **基于SQL的分页** 这是最基础的分页方法,通过在SQL查询语句中添加`LIMIT`和`OFFSET`或`ROWNUM`(根据数据库类型)来实现。例如,在...

    JSP servlet的两种分页方式

    总结起来,JSP和Servlet实现分页的方法主要分为基于请求参数和基于会话两种。理解这两种方法的工作原理并根据项目需求选择合适的方式是提升Web应用性能和用户体验的关键。通过阅读和实践提供的"openpage"相关文件,...

    优化MyEclipse启动速度

    以下是一些针对MyEclipse启动速度优化的关键点: 1. **关闭自动验证**:在`Windows &gt; Preferences &gt; MyEclipse &gt; Validation`中取消Build下的所有勾选,以减少启动时的验证过程。当需要验证特定文件时,可以右键...

    如何加快JDBC设计中JSP数据库访问速度

    在提高JDBC设计中JSP数据库访问速度的过程中,我们需要关注几个关键点,包括JSP的模块化、MVC设计模式的应用、JDBC操作的优化以及使用自定义标签库(Tag Libraries)来提升代码的可读性和可维护性。 首先,JSP作为...

    用Jsp实现seo优化,网站轻松推广

    本文将深入探讨如何使用JSP技术实现SEO优化,以及它如何帮助你轻松推广网站。 首先,JSP(JavaServer Pages)是一种动态网页开发技术,允许开发者在HTML中嵌入Java代码,从而实现服务器端的数据处理和页面生成。在...

    提升JSP页面响应速度的七大秘籍绝招.doc

    **提升JSP页面响应速度的七大秘籍绝招** 在构建基于Java的Web应用时,JSP页面的性能优化至关重要,因为它直接影响用户体验。以下是一些提升JSP页面响应速度的有效策略: 1. **在servlet的init()方法中缓存数据** ...

    jsp自动调用action

    这种需求可以通过多种方式实现,其中一种较为常见的做法是利用中间JSP页面来间接调用Action,从而达到自动加载数据的目的。 #### 二、原理及实现步骤 ##### 2.1 原理介绍 在Struts框架中,通常通过配置文件...

Global site tag (gtag.js) - Google Analytics