在jsp中,不用事先声明,也不用获取,可以直接使用的九个对象。
JSP翻译引擎在将JSP翻译成servlet的过程中,在servlet里预先定义了九个对象,因此我们可以在JSP页面中直接使用这九个对象
JSP | 相当于Servlet的 |
---|---|
page | this |
request | HttpServletRequest |
response | HttpServletResponse |
application | ServletContext |
config | ServletConfig |
session | HttpSession |
exception | Exception |
out | JspWriter~=response.getWriter() |
pageContext | pageContext |
在servlet中获取当前web应用的虚拟路径
request.getContextPath
在JSP中获取当前web应用的虚拟路径
<%=request.getContextPath()%>
用EL表达式中获取当前web应用的虚拟路径
{pageContext.getRequest().getContextPath()}
简写为
${pageContext.request.contextPath}
pageContext对象
代表当前JSP页面的运行环境的对象,通过该对象可以访问页面中的共享数据
1.pageContext对象可以作为入口对象获取其他八大隐式对象
(1)pageContext.getPage(); -- 获取page隐式对象
(2)pageContext.getRequest(); -- 获取request隐式对象
(3)pageContext.getResponse(); -- 获取response隐式对象
(4)pageContext.getServletContext(); -- 获取application隐式对象
(5)pageContext.getServletConfig(); -- 获取config隐式对象
(6)pageContext.getSession(); -- 获取session隐式对象
(7)pageContext.getException(); -- 获取exception隐式对象
(8)pageContext.getOut(); -- 获取out隐式对象
2.pageContext是一个域对象
setAttribute(String name,Object value) – 添加一个域属性
getAttribute(String name) – 根据指定的属性名获取属性值.
removeAttribute(String name) – 根据指定的属性名删除一个属性.
生命周期:
1.当访问JSP开始时创建pageConext对象
2.当访问JSP结束时销毁pageContext对象
作用范围: 整个JSP页面
主要功能: 在整个JSP页面中实现数据的共享
<%@ page language="java" pageEncoding="UTF-8" isErrorPage="true"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
<title>九大隐式对象</title>
</head>
<body>
<%--page --%>相当于Servlet中的this
<%--application--%>ServletContext
<%--config --%>ServletConfig
<%--exception--%>Exception
<%--out--%>JspWriter()相当于response.getWriter()
<%--session--%>HttpSession
<%--request--%>ServletRequest
<%--response--%>ServletResponse
<%--pageContext --%>pageContext
可以作为入口对象获取其他八大隐式对象
如<%
pageContext.getRequest();
pageContext.getResponse();
pageContext.getSession();
//....
%>
访问JSP开始时创建pageContext对象
访问JSP结束时销毁pageContext对象
作用范围:仅仅在当前JSP范围内
主要功能:在当前JSP范围内实现资源共享
四大作用域的范围 从大到小ServletContext>Session>Request>pageContext
</body>
</html>