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 |
|
参考文献