简介
在JSP页面进行编程的时候,如果我们要使用一些对象,如:HttpSession,ServletConfig,ServletContext这些对象,如果每次都要先创建这些对象,然后再去使用它们,这样就显得十分繁琐了,为了方便使用者,Sun公司在开发JSP的时候,把一些对象设置为内置对象,开发者在JSP页面编程的时候不必声明这些对象就能直接使用,这就是JSP的内置对象。
9大内置对象
JSP内置对象 | 对应的类型 | 备注 |
Request | HttpServletRequest | 用于得到请求信息 |
Response | HttpServletResponse | 用于设置响应信息 |
Config | ServletConfig | 用于得到Servlet初始化参数 |
Application | ServletContext | 代表web应用环境 |
Session | HttpSession | 用于的设置Session对象,调用request.getSession时被创建 |
Exception | Thorwable | 异常对象,封装异常信息,发生异常时调用 |
this | Objiect | 代表jsp文件翻译后的java类 |
out | JspWriter | 相当于带缓存功能的PrintWriter |
Pagecontext | PageContext | 代表当前jsp的上下文对象 |
Pagecontext 对象
1.通过pagecontext对象来获得jsp的其他8个内置对象
<body>
<%
pageContext.getRequest();
pageContext.getResponse();
pageContext.getSession();
pageContext.getException();
pageContext.getOut();
pageContext.getPage();
pageContext.getServletConfig();
pageContext.getServletContext();
%>
</body>
2.pageContext作为域对象使用
pageContext作为域对象使用
首先把数据保存到pageContext域
pageContext.setAttribute("name",Object);
然后这样得到数据:
pageContext.getAttribute("name");
除了可以把数据保存在pageContext域,你也可以用pageContext对象把数据保存在其它域对象里!
指定域对象保存:
pageContext.setAttribute("name",Object,域常量)
指定域获取:
pageContext.getAttribute("name" ,域常量);
域常量:
- PAGE_SCOPE: pageContext域
- REQUEST_SCOPE: request域
- SESSION_SCOPE: session域
- APPLICATION_SCOPE: context域
自动搜索:
pageContext.findAttribute("name");
注意:自动在4个域中依次按顺序(从小到大)搜索数据:
page -> requeste -> session -> application
如果在某个域中找到数据,则返回该域中的数据,如果4个域都找不到数据,那么就返回null
4个域对象
jsp的4个域对象 | 四个域对象的作用范围 |
request域 | 同一次请求有效,可用转发来维持。 |
Application域 | 同一个web应用(网站)下有效。 |
session域 | 同一次会话有效。 |
page域 | 同一个jsp页面内有效。 |
域对象的作用:保存数据,得到数据,清楚数据
域对象的核心方法:
- setattribute(String s,Object obj);
- getattribute(String s)
- removeattribute(String s)