JSP页面内部可以调用的JSP内部对象有request、response、session、application、out、page、config、exception、和pageContent总计九个对象。这九个对象封装在每一个JSP页面内,可以提供给JSP程序页面直接调用。各元素封装的信息如图所示:
对象 |
描述 |
功能调用 |
备注 |
Request |
封装了客户端提交的HTTP请求,可以获取请求参数、cookie数据 |
getParameter、setCharacterEncoding、getHeader*、getMethod、getServer*、getRequest*、getCookies |
URL请求的乱码用new String(request.getParameter(‘a’).getBytes(“iso-8859-1”),”UTF-8”)解决。表格数据乱码问题需要设置请求格式:request.setCharacterEncoding(“UTF-8”); |
Response |
响应客户端请求信息,发送到客户端,用于重定向、设置报头等 |
1. 禁用缓存 .setHeader(“Cache-Control”,”no-store”); .setDateHeader(“Expires”,0) 2. 设置自动刷新 .setHeader(“refresh”,”10”) 3. 定时跳转.setHeader(“refresh”,”5,URL=url.jsp”); 4. 设置MIME.setContentType(“text/html”) 5. 页面重定向.sendRedirect(“a.jsp”) |
|
Session |
保存会话信息 |
1. 创建与获取.setAttribute(name,object).getAttribute(name) 2. 移除.removeAttribute(name) 3. 设置有效时间.setMaxInactiveInterval(int time) |
|
Application |
同一个程序中共享数据 |
[Set|get|remove]Attribute、getAttributeNames返回所有web.xml定义的所有context-param变量、getInitParameter返回一个context-param变量。 |
Context-param变量定义方法: <context-param> <param-name>home</param-name> <param-value>http://127.0.0.1:8080/javaWeb_3</param-value> </context-param> |
Out |
向客户端输出文本,管理页面缓冲区 |
Print println clear clearBuffer flush |
|
Page |
操作JSP页面自身 |
getClass、hashCode、toString、equals |
可以看成this的别名 |
Config |
读取服务器的配置信息 |
getServletContext[name| InitParameter|ParameterNames] |
通过pageContext.getServeletConfig获取Config对象 |
Exception |
操作JSP执行时的异常信息 |
Get[Message|Localizedmessage]、 toString、fillInStackTrace |
只有在page指令指出的isErrorPage为true页面才可以使用 |
pageContext |
获取JSP页面的request、response、session、application、out对象。由于以上对象均为内置对象,所以pageContext很少用到 |
1. 转发Forward(url) 2. 获取参数get[Attribute|AttributeNameInScope|Exception |Request|Response|session|Out|Application] 3. 设置setAttribute 4. 删除属性removeAttribute |
|
参考文献
1. JavaWeb体系结构的理解-1.基础
2. JavaWeb体系结构的理解-2.JSP语法