页面上下文对象为pageContext,用于访问JSP内置对象(例如:request、response、out、session、exception、page等)和ServletContext。在获取到这些内置对象后,就可以获得其属性值。这些属性与对象的getXXX()方法相对应,在使用时,去掉方法名中的get,并将首字母改为小写字母即可。
(1)访问request对象
通过pageContext获取JSP内置对象中的request对象,可以使用下面语句:
${pageContext.request}
例:访问getServerPort()方法,可以使用下面代码:
${pageContext.request.serverPort} <!--这段代码将返回端口号,这里是8080-->
注意:不可以通过pageContext对象获取保存到request范围内的变量。
(2)访问response对象
通过pageContext获取JSP内置对象中的response对象,可以使用下面语句:
${pageContext.response}
获取response对象后,可以通过该对象获取与响应相关的信息。
例如:获取响应的内容类型。要获取响应的内容类型,可以使用如下的代码:
${pageContext.response.contentType} <!--这段代码返回值为“text/html;charset=UTF-8”.-->
(3)访问out对象
通过pageContext获取JSP内置对象中的out对象,可以使用如下语句:
${pageContext.out}
获取到out对象后,可以通过该对象获取与输出相关的信息。
例:输出缓冲区的大小。要获取缓冲区的大小,可以使用下面代码:
${pageContext.out.bufferSize} <!--这里返回值为8192-->
(4)访问session对象
通过pageContext获取JSP内置对象中的session对象,可以使用如下语句:
${pageContext.session}
获取到session对象后,就可以通过该对象获取与session相关的信息。
例:session的有效时间。要获取session的有效时间,可以使用下面的代码:
${pageContext.session.maxInactiveterval} <!--这里返回值为1800秒,即30分钟-->
(5)访问exception对象
通过pageContext获取JSP内置对象中的exception对象,可以使用如下语句:
${pageContext.exception}
获取到exception对象后,就可以通过该对象获取JSP页面的异常信息。
例:获取异常信息字符串。可以使用如下代码:
${pageContext.exception.message}
说明:在使用该对象时,也需要在可能出现错误的页面中指定错误处理页,并且在错误处理页中指定page指令的isErrorPage属性值为true,然后再使用上面的EL输出异常信息。
(6)访问page对象
通过pageContext获取JSP内置对象中的page对象,可以使用如下语句:
${pageContext.page}
获取到page对象后,就可以通过该对象获取当前页面的类型文件,具体代码如下:
${pageContext.page.class} <!--这里将返回值为“class org.apache.jsp.index_jsp”-->
(7)访问ServletContext对象
通过pageContext获取JSP内置对象中的servletContext对象,可以使用如下语句:
${pageContext.servletContext}
获取到ServletContext对象后,就可以通过该对象获取Servlet上下文信息。
例:获取上下文路径。获取Servlet上下文路径的具体代码如下:
${pageContext.servletContext.contextPath} <!--这里返回值为“/Test_EL”-->