知识大全 提升JSP应用程序的效率[1]
Posted 知
篇首语:不怕学问浅,就怕志气短。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 提升JSP应用程序的效率[1]相关的知识,希望对你有一定的参考价值。
Java进阶:提升JSP应用程序的效率[1] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
你时常被客户抱怨JSP页面响应速度很慢吗?你想过当客户访问次数剧增时 你的WEB应用能承受日益增加的访问量吗?本文讲述了调整JSP和servlet的一些非常实用的方法 它可使你的servlet和JSP页面响应更快 扩展性更强
而且在用户数增加的情况下 系统负载会呈现出平滑上长的趋势 在本文中 我将通过一些实际例子和配置方法使得你的应用程序的性能有出人意料的提升 其中 某些调优技术是在你的编程工作中实现的
而另一些技术是与应用服务器的配置相关的 在本文中 我们将详细地描述怎样通过调整servlet和JSP页面 来提高你的应用程序的总体性能 在阅读本文之前 假设你有基本的servlet和JSP的知识
方法一 在servlet的init()方法中缓存数据
当应用服务器初始化servlet实例之后 为客户端请求提供服务之前 它会调用这个servlet的init()方法 在一个servlet的生命周期中 init()方法只会被调用一次 通过在init()方法中缓存一些静态的数据或完成一些只需要执行一次的 耗时的操作 就可大大地提高系统性能
例如 通过在init()方法中建立一个JDBC连接池是一个最佳例子 假设我们是用jdbc 的DataSource接口来取得数据库连接 在通常的情况下 我们需要通过JNDI来取得具体的数据源 我们可以想象在一个具体的应用中 如果每次SQL请求都要执行一次JNDI查询的话 那系统性能将会急剧下降 解决方法是如下代码 它通过缓存DataSource 使得下一次SQL调用时仍然可以继续利用它
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;
方法 :禁止servlet和JSP 自动重载(auto reloading)
Servlet/JSP提供了一个实用的技术 即自动重载技术 它为开发人员提供了一个好的开发环境 当你改变servlet和JSP页面后而不必重启应用服务器 然而 这种技术在产品运行阶段对系统的资源是一个极大的损耗 因为它会给JSP引擎的类装载器(classloader)带来极大的负担 因此关闭自动重载功能对系统性能的提升是一个极大的帮助
方法 : 不要滥用HttpSession
在很多应用中 我们的程序需要保持客户端的状态 以便页面之间可以相互联系 但不幸的是由于HTTP具有天生无状态性 从而无法保存客户端的状态 因此一般的应用服务器都提供了session来保存客户的状态
在JSP应用服务器中 是通过HttpSession对像来实现session的功能的 但在方便的同时 它也给系统带来了不小的负担 因为每当你获得或更新session时 系统者要对它进行费时的序列化操作 你可以通过对HttpSession的以下几种处理方式来提升系统的性能
如果没有必要 就应该关闭JSP页面中对HttpSession的缺省设置 如果你没有明确指定的话 每个JSP页面都会缺省地创建一个HttpSession 如果你的JSP中不需要使用session的话 那可以通过如下的JSP页面指示符来禁止它
<%@ page session= false %>
不要在HttpSession中存放大的数据对像 如果你在HttpSession中存放大的数据对像的话 每当对它进行读写时 应用服务器都将对其进行序列化 从而增加了系统的额外负担 你在HttpSession中存放的数据对像越大 那系统的性能就下降得越快
当你不需要HttpSession时 尽快地释放它 当你不再需要session时 你可以通过调用HttpSession invalidate()方法来释放它
尽量将session的超时时间设得短一点 在JSP应用服务器中 有一个缺省的session的超时时间 当客户在这个时间之后没有进行任何操作的话 系统会将相关的session自动从内存中释放 超时时间设得越大 系统的性能就会越低 因此最好的方法就是尽量使得它的值保持在一个较低的水平
方法 : 将页面输出进行压缩
压缩是解决数据冗余的一个好的方法 特别是在网络带宽不够发达的今天 有的浏览器支持gzip(GNU zip)进行来对HTML文件进行压缩 这种方法可以戏剧性地减少HTML文件的下载时间 因此 如果你将servlet或JSP页面生成的HTML页面进行压缩的话 那用户就会觉得页面浏览速度会非常快 但不幸的是 不是所有的浏览器都支持gzip压缩 但你可以通过在你的程序中检查客户的浏览器是否支持它 下面就是关于这种方法实现的一个代码片段
public void doGet(HttpServletRequest request HttpServletResponse response) throws IOException ServletException OutputStream out = null String encoding = request getHeader( Accept Encoding ); if (encoding != null && encoding indexOf( gzip ) != ) request setHeader ( Content Encoding gzip ); out = new GZIPOutputStream (request getOutputStream()); else if (encoding != null && encoding indexOf( press ) != ) request setHeader ( Content Encoding press ); out = new ZIPOutputStream (request getOutputStream()); else out = request getOutputStream();
cha138/Article/program/Java/JSP/201311/20736相关参考
几个提升JSP应用程序效率的方法 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 本文介绍了几个调
Java进阶:关于提升JSP应用程序的七大绝招[1] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
Java进阶:关于提升JSP应用程序的七大绝招[2] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
深入讲解提升JSP应用程序的七个实用方法 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 方法一在
可通过下拉框跳转到指定页 <scriptlanguage=javascript> functiongopage()  
如何提高工作效率,优化工作流程?要提升效率,首先要提升内部员工的工作效率,其次就是优化工作的流程,简化正常工作程序才能真正达到工作效率的有效提升;1、选择合适的人进行工作决策在对工作决策时,应该选择有
建立JSP操作用以提高数据库访问效率[1] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 从服务
提升JSP页面响应速度的七大技巧 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 方法一在serv
如何快速提升学习和工作效率1、学习中,要学会给自己定定目标(大、小、长、短),这样学习会有一个方向;学习后要学会梳理自身学习情况,找出掌握的薄弱环节、存在的问题等,合理的分配时间,有针对性、具体的去一
建立JSP操作用以提高数据库访问效率[2] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 你已经