最近学习jsp,总结了一下jsp九大隐式对象的一些知识点
这些隐式对象按照其功能用途可分为四类:
1.用来共享数据的:
pageConext:在本页共享数据
request:在用一次请求中共享数据
session:在用一次会话中共享数据
application:在程序运行期间共享数据
代码示例:
//存储
pageContext.setAttribute("pageContext", 1);
request.setAttribute("request", 1);
session.setAttribute("session", 1);
application.setAttribute("application", 1);
//在本页获取
Object obj1 = pageContext.getAttribute("pageContext");
Object obj2 = request.getAttribute("request");
Object obj3 = session.getAttribute("session");
Object obj4 = application.getAttribute("application");
在这段代码中,可以在本页获得这四个对象的数据,如果在另一个页面obj1就为null,这就是pageContext的
同一页面请求,如果打开两个两个浏览器来请求数据,那么obj2也为null,因为当你打开两个浏览器请求数据时就不是同一次请求了,当你关闭浏览器在打开或者重定向后(向服务器重新发起请求),obj3也为null;appliaction只要服务器没有重启就一直存在
2.跟servlet有关的对象:
page:相当于java中的this,指的是jsp页面本身,可以获得页面的相关信息
config:用来存放JSP的配置信息,可以在web.xml中进行相关配置
代码示例:
<%
//JSP本身就是一个servlet
HttpJspPage serlvet =(HttpJspPage)page;
String str = serlvet.getServletInfo();
//page相当于this
String str1 = this.getServletInfo();
%>
<%=str %>
<%=str1 %>
输出的结果str和str1是一样的
3.和输入输出有关的对象:
out:在servlet中通过out对象向页面输出
//在页面加载script提示脚本
out.print("<script>alert('ffds');</script>");
response:包含响应信息
//响应index.jsp
response.setHeader("refresh", "0;url=index.jsp");
request:包含请求信息
4.和异常处理有关的对象:
Exception:用来处理一些可能出现的错误而不让页面直接报错
如果页面需要处理异常
<%@ page page errorPage="error.jsp" %>
//如果语句执行出错,则跳转到error.jsp
<%
int i = 9/0;
%>
<%=i %>
定义错误页面
<%@ isErrorPage="true"%>
//在错误处理页面得到错误信息并输出
<%
String message = exception.getMessage();
%>
你访问的页面出错了 <%=message %>