Servlet四大域对象、Jsp四大隐式对象、Jsp九大内置对象、十一大EL隐式对象区别和联系

如题所述

四大域对象详解

JSP中隐式对象的名称
范围名称
具体的类型
pageContext page javax.servlet.jsp.PageContext
request request javax.servlet.ServletRequest (显示完数据就没有用了)
session

session

javax.servlet.http.HttpSession (显示完数据了,过一会自己
还要用)
application

application

javax.servlet.ServletContext
(显示完数据了,大家都要用。不建议使用,如果使用,必须同步处理)
JSP九大内置对象
JSP的内置对象引用名称

对应的类型
request
HttpServletRequest response
HttpServletResponse
session

HttpSession(有开关的:page指令的session属性的取值) application ServletContext config ServletConfig page

this(当前Servlet对象)
exception

java.lang.Throwable(有开关的:page指令的isErrorPage属性改为true)

out
JspWriter
pageContext

javax.servlet.jsp.PageContext非常重要

pageContext有三大作用:
1、本身是一个域对象。同时还能操作其他三个域对象(PageContext ServletRequest HttpSession
ServletContext) 本身表示的域范围 是本页面。

void setAttribute(String name,Object value)

void removeAttribute(String name)

Object getAttribute(String name)
操作其他的三个域对象 void setAttribute(Stringname,Objectvalue,intscope) void removeAttribute(String name,inscope) Object getAttribute(String name,int scope)

参数int scope是由PageContext类提供的静态变量规定的。

PageContext.PAGE_SCOPE:页面范围(是PageContext本身中的那个Map,代号page):仅在本页
中可用
PageContext.REQUEST_SCOPE:请求范围(是ServletRequest中的那个Map,代号request):当有
request请求时
PageContext.SESSION_SCOPE:请求范围(是HttpSession中的那个Map,代号session):用的很多,
会话期间
PageContext.APPLICATION_SCOPE:请求范围(是ServletContext中的那个Map,代号application):
用的不多,全局可用,也就是该应用都可用,注意:使用时,应该加上同步处理,而且同步应该包括少部分的代码,效率低。
(非常有用)Object findAttribute(String name):依次按照page request session application范围搜索指定名称的
对象,找到为止 。
2、获取其他8个隐式对象 getxxx 3、提供了转发和包含的方便方法
RequestDispatcher rd = request.getRequestDispatcher("/url"); rd.forward(request,response); pageContext.forward("url");
pageContext.include("url");

11大EL隐式对象
11大EL隐式对象中,其中一个是表示自身对象外,其余都是表示的Map结构
EL隐式对象名称
Java类型
备注

pageContext
javax.servlet.jsp.PageContext
与JSP中的内置对象完全相同剩余的都是代表的Map集合 pageScope
java.util.Map 代表着PageContext页面范围域那个Map requestScope java.util.Map 代表着ServletRequest请求范围域那个Map sessionScope
java.util.Map 代表着HttpSession会话范围域那个Map applicationScope

java.util.Map

代表着ServletContext应用范围域那个Map
param

java.util.Map

代表着请求参数。key:请求参数的名称。value:请求参数的值,它是一个字符串。 paramValues

java.util.Map

代表着请求参数。key:请求参数的名称。value:请求参数的值,它是一个字符串数组。
header

java.util.Map

代表着请求消息头。key:头名称。value:头值,它是
一个字符串。 headerValues

java.util.Map
代表着请求消息头。key:头名称。value:头值,它是一个字符串数组。
cookie

java.util.Map
代表客户端提交的Cookie的Map。key:cookie的name。value:cookie对象本身 initParam

java.util.Map

代表着全局初始化参数(web.xml中context-param).key:参数名称。value:参数值
温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答