提升JSP页面响应速度的七大秘籍绝招
方法一:在servlet的init()方法中缓存数据
当应用服务器初始化servlet实例之后,为客户端请求提供服务之前,它会调用这个servlet的init()方法。在一个servlet
的生命周期中,init()方法只会被调用一次。通过在init()方法中缓存一些静态的数据或完成一些只需要执行一次的、耗时的操作,就可大大地提高系
统性能。
例如,通过在init()方法中建立一个JDBC连接池是一个最佳例子,假设我们是用jdbc2.0的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;
}
...
...
}
方法 2:禁止servlet和JSP 自动重载(auto-reloading)
Servlet/JSP提供了一个实用的技术,即自动重载技术,它为开发人员提供了一个好的开发环境,当你改变servlet和JSP页面后而
不必重启应用服务器。然而,这种技术在产品运行阶段对系统的资源是一个极大的损耗,因为它会给JSP引擎的类装载器(classloader)带来极大的
负担。因此关闭自动重载功能对系统性能的提升是一个极大的帮助。
方法 3: 不要滥用HttpSession
在很多应用中,我们的程序需要保持客户端的状态,以便页面之间可以相互联系。但不幸的是由于HTTP具有天生无状态性,从而无法保存客户端的状
态。因此一般的应用服务器都提供了session来保存客户的状态。在JS
相关文档:
今天刚巧碰到和JSP注释有点关系的一个问题。所以做个笔记,说明一下显式注释<!-- comments --> 和隐式注释<%-- comments --%> 之间的两点差别。
曾经以为显式注释和隐式注释差别只有在代码显示上,这点应该大家都知道,显式注释会显示在客户端页面源码中,而隐式注释是看不到的,不过这只是第一点。
......
JSP中出现乱码,首先检查一下pageEncoding和contentType两个属性,两个属性的默认值都是ISO-8859-1
pageEncoding设置的是编译JSP时所用的编码,如果用默认的编码编译中文,那么在JSP编译阶段已经是乱码了。
contentType设置的是服务端范围给浏览器的显示编码,和页面上设置编码是一样的效果。 ......
一般jsp脚本都是在<%= %>中输出东西,但是如果要提示的话,则必须后面要加一个空格,就像那个符号一样,不然的话打的提示不会出来
还有一个事关于路径问题:必须要在后面加上"/"这个反斜杠
myeclipse 中有一个snippets视图,这个里面提供一些已经写好了的代码,我们也可以将自己的一些代码添加到snippets中,右键,a ......
是在struts2下要解决该问题,需要两个条件:
1、确保该应用为J2EE的应用,即在web.xml下保证有以下配置信息:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSche ......