JSP内置对象
Jsp九个内置对象,三个最主要的:
1) request:得到客户端的信息。(HttpServletRequest)
request对象和response对象存在于http通信中,该对象封装了用户提交的信息,通过调用该对象相应的方法可以获取封装的信息,即使用该对象可以获取用户提交信息。
常用的主要方法:
a.setAttribute(String name,Object):设置名称为name的request的参数值。
b.getAttribute(String name):返回name指定的属性值。
c.getAttributeNames():返回request对象所有属性的名称集合,结果是一个枚举的实例。
d.getCookies():返回客户端的所有Cookie对象,结果是一个Cookie数组。
e.setCharacterEncoding():设置字符编码方式。
f.getCharacterEncoding():返回请求中的字符编码方式。
g.getParameter(String name):获得客户端传送给服务器端的有name指定的参数值。
h.removeAttribute(String name):删除请求中的一个属性。
2) response:处理服务器端对客户端的一些响应。(HttpServletResonpse)
主要方法:
a.addCookie(Cookie cookname)
b.sendError(int errorcode)
c.sendRedirect(String url)
d.setContentType(String contentTypestr)
e.setHeader(String headername,String headervalue)
3) session:保存单个用户访问是的一些信息。(HttpSession)
第一个JSP页面被装载时自动创建,完成会话期管理。
session对象的ID:当一个客户首次访问服务器上的一个JSP页面时,JSP引擎产生一个session对象,同时分配一个String类型的ID号,JSP引擎同事将这个ID号发送到客户端,存放在Cookie中,这样session对象和客户之间就建立了一一对应的关系。当客户再访问连接该服务器的其他页面时,不再分配给客户新的session对象,直到客户关闭浏览器后,服务器端该客户的session对象才取消,并且和客户的会话对应关系消失。当客户重新打开浏览器再连接该服务器时,服务器为该客户再创建一个新的session对象。
session对象存在一定时间过去问题,所以存在session中的名值对会在一定时间后失去,可以通过更改session有效时间来避免这种情况。同事编程时尽量避免将大量有效信息存储在session中,request是一个不错的替代对象。
主要方法:
a.getAttribute(String name)
b.getCreationTime()
c.getMaxInactiveInterval():取得最大session不活动的时间,若超这时间,session将失效。
d.getLastAccessedTime()
e.invalidate():取得session对象,并将对象存放内容完全抛弃
f.removeAttribute(Stirng name)
g.setAttribute(String name,Object value)
还有其它内置对象:
4) Config:JSP配置处理程序句柄,在JSP页面范围内有效。
5) Application:保存网站的一些全局变量。
服务器启动时就会产生application对象,为用户分配application对象。
所有客户的application对象都是同一个。例如:聊天室程序、计数器程序、留言板程序,服务器的启动至关闭。
主要方法:
a.getAttribute(String name)
b.getAttributeNames()
c.getInitParameter()
d.getServletInfo()
e.setAttribute(String name,Object value)
下面实现一个简单的计数器,用来统计服务器开始运行以来的访问量:
<body>
<font size=”
<%
int count=0;
if(application.getAttribut(“count”) ==null){
count=count+1;
application.setAttribute(“count”,count);
}else{
count=Integer.parseInt(application.getAttribute(“count”).toString());
count=count+1;
application.setAttribute(“count”,count);
}
out.println(“您是本系统的第”+count+”位访问者!”);
%>
</font>
</body>
程序中,当第一次访问时把count的初始值设置为1,以后每次刷新时累加count的值。在这个计数器的运行过程中,多个页面之间共享计数器的值,而且关闭浏览器在重新打开窗口时,以前计数器的值仍还保留着。这就是application和session的主要区别。
6) Out:把信息回送到客户端的浏览器中。
生命周期是当前页面。对于每一个JSP页面,都有一个out对象。
主要方法:
a.write()和out.print相同
b.newLine():输出一个换行符
c.flush():输出缓冲的内容
d.close():关闭输出流
7) pageContext:访问和防止页面中共享数据的方式。
8) exception:
9) page: