提升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
相关文档:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
< ......
1.request对象
客户端的请求信息被封装在request对象中,通过它才能了解到客户的需求,然后做出响应。它是HttpServletRequest类的实例。
序号 方 法 说 明
1 object getAttribute(String name) 返回指定属性的属性值
2 Enumeration getAttributeNames() 返回所有可用属性名的枚举
3 String getCharacterEncodin ......
一般jsp脚本都是在<%= %>中输出东西,但是如果要提示的话,则必须后面要加一个空格,就像那个符号一样,不然的话打的提示不会出来
还有一个事关于路径问题:必须要在后面加上"/"这个反斜杠
myeclipse 中有一个snippets视图,这个里面提供一些已经写好了的代码,我们也可以将自己的一些代码添加到snippets中,右键,a ......
CGI就是web服务器辅助程序,和servlet是一个作用。
----jsp有什么-----
------------------------------------------------------
jsp可以包括什么:
1、jsp脚本(程序片段):
<% ... %>
2、jsp表达式:
<%= ... %>
3、jsp3种指令:
<%@ page attribute="xxx" %>
<%@ taglib attribut ......
Servlet 整体加载过程如下
1、Web服务器接受request。
2、请求发给Servlet引擎,如果已经加载servlet,class 则直接执行,否则从硬盘中查找class 加载进来。
3、执行Service方法处理请求,并返回给web服务器。
4、web服务器返回给客户端。
Servlet的继承关系为
Servlet &n ......