Servlet四大域对象、Jsp四大隐式对象、Jsp九大内置对象、十一大EL隐式对象区别和联系
发布网友
发布时间:2022-04-29 22:25
我来回答
共1个回答
热心网友
时间:2023-10-09 18:22
四大域对象详解
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:参数值