JSP-隐式对象、pageContext、错误处理

简介: 版权声明:本文为博主原创文章,转载请注明出处。 https://blog.
版权声明:本文为博主原创文章,转载请注明出处。 https://blog.csdn.net/twilight_karl/article/details/75804749

简介

隐式对象是_jspService()中的局部变量,故只能在<% %><%= %>中使用

隐式对象

隐式对象 说明
out JspWriter对象,内部关联PrintWriter对象
request 对应HttpServletRequest对象
response 对应HttpServletResponse对象
config 对应ServletConfig
application 对应ServletContext
session 对应HttpSession
pageContext 对应PageContent对象。将所有JSP页面信息封装起来,可以通过pageContext获得所有的隐式对象
exception 对应Throwable对象,代表由其他JSP页面抛出的一场对象,只会出现在JSP错误页面
page 对应转译后的this

pageContext

使用pageContext可以获取所有隐式对象,也可以访问 page、request、session、application范围的变量。

    request = pageContext.getRequest();
    response = pageContext.getResponse();
    config = pageContext.getServletConfig();
    application = pageContext.getServletContext();
    session = pageContext.getSession();
    out = pageContext.getOut();

常用方法:

  • setAttribute(String name, String value, int scope):如果没有指定scope,该属性默认在page范围内
  • getAttribute(String name, int scope) 获得属性值
  • removeAttribute(String name, int scope) 移除属性
  • findAttribute()依次从页面、请求、会话、应用程序范围查找有无对应的属性

查找范围(scope)

  • pageContext.APPLICATION_SCOPE ServletContext(application)
  • pageContext.REQUEST_SCOPE request
  • pageContext.SESSION_SCOPE session
  • pageContext.PAGE_SCOPE pageContext
    <%
    pageContext.setAttribute("scope", "page");
    session.setAttribute("scope", "session");
    application.setAttribute("scope", "application");
    request.setAttribute("scope", "request");

    %>
    page:<%= pageContext.getAttribute("scope", pageContext.PAGE_SCOPE) %><br/>
    session:<%= pageContext.getAttribute("scope", pageContext.SESSION_SCOPE) %><br/>
    application:<%= pageContext.getAttribute("scope", pageContext.APPLICATION_SCOPE) %><br/>
    request:<%= pageContext.getAttribute("scope", pageContext.REQUEST_SCOPE) %><br/>

错误处理

错误界面只有iserrorPage为true时才可以使用exception对象

发生错误的页面 hello.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ page errorPage="Error.jsp" %>

<html>
  <body>
    <%=1/0 %>
  </body>
</html>

错误页面 error.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ page isErrorPage="true" %>
<html>
  <body>
  <h1>这是一个错误界面</h1>
    <%=exception %>
    <hr/>
  </body>
</html>

error-page

如果希望容器在发现某个错误或者异常时,自动转发至错误页面,则可以使用 <error-page></error-page>

 <error-page>
    <exception-type>java.lang.ArithmeticException</exception-type>
    <location>/JSPTest/Error.jsp</location>
 </error-page>

  <error-page>
    <error-code>404</error-code>
    <location>/JSPTest/Error.jsp</location>
 </error-page>
相关文章
|
2月前
|
缓存 Java 开发者
JSP 教程 之 JSP 隐式对象 10
JSP隐式对象是预定义的Java对象,如request、response、out、session、application等,直接供开发者使用。out对象是JspWriter实例,用于向网页输出内容,类似PrintWriter但有缓存处理和抛出IOException。exception对象保存了页面的异常信息,用于错误处理。
21 3
|
2月前
|
Java 开发者 容器
JSP 教程 之 JSP 隐式对象 3
JSP教程讲解了九个隐式对象,如request、response、out、session、application、config、pageContext、page和Exception。response对象是HttpServletResponse的实例,用于向客户端发送响应,包括设置HTTP头信息、添加cookie和状态码。
22 3
|
2月前
|
Java 开发者 容器
JSP 教程 之 JSP 隐式对象 2
JSP隐式对象是预定义的Java对象,无需声明即可直接使用。包括9大对象:request(HttpServletRequest,处理客户端请求)、response(HttpServletResponse,响应输出)、out(JspWriter,输出到网页)、session(HttpSession,用户会话管理)、application(ServletContext,应用上下文)、config(ServletConfig,配置信息)、pageContext(PageContext,全局访问)、page(当前页面对象)和Exception(异常对象)。
23 3
|
2月前
|
缓存 Java 开发者
JSP 教程 之 JSP 隐式对象 5
JSP教程介绍了九个隐式对象,如request、response、out、session、application等,无需声明即可直接使用。out对象是JspWriter实例,用于向网页输出内容,可配置是否缓存。它扩展了PrintWriter功能,处理缓存并可能抛出IOException。session对象基于HttpSession,用于跨客户端请求的会话跟踪。
18 1
|
2月前
|
Java 开发者 容器
JSP 教程 之 JSP 隐式对象 1
**JSP隐式对象**是无需声明的预定义Java对象,如`request`(HttpServletRequest)处理请求,`response`(HttpServletResponse)构造响应,`out`(JspWriter)输出到页面,`session`(HttpSession)管理会话,`application`(ServletContext)涵盖整个应用,`config`(ServletConfig)提供配置信息,`pageContext`(PageContext)访问页面上下文,`page`类似Java的`this`,及`Exception`对象捕获页面异常。
13 2
|
2月前
|
缓存 Java 开发者
JSP 教程 之 JSP 隐式对象 9
JSP隐式对象是预定义的Java对象,无需声明即可直接使用。包括9大对象:request(HttpServletRequest)、response(HttpServletResponse)、out(JspWriter,用于输出到网页)、session(HttpSession)、application(ServletContext)、config(ServletConfig)、pageContext(PageContext,访问所有对象和命名空间)、page(页面实例,等同于Java的this)和Exception(异常对象)。
25 0
|
2月前
|
缓存 Java 对象存储
JSP 教程 之 JSP 隐式对象 8
JSP隐式对象是预定义的Java对象,如request、response、out等,无需声明即可直接使用。out对象是JspWriter实例,用于向response输出内容,支持print和println方法,可抛出IOException。pageContext对象代表整个JSP页面,提供访问页面信息和不同scope的对象,如request、response、session等,并有removeAttribute()方法管理页面属性。
18 0
|
2月前
|
缓存 Java 开发者
JSP 教程 之 JSP 隐式对象 7
JSP隐式对象是预定义的Java对象,无需声明即可使用。包括9大对象:request、response、out、session、application、config、pageContext、page和Exception。其中,out对象用于输出内容到网页,基于JspWriter,支持print和println方法。config对象是ServletConfig的实例,提供访问Servlet初始化参数的途径,如获取servlet名称。
16 0
|
2月前
|
缓存 Java 开发者
JSP 教程 之 JSP 隐式对象 6
JSP隐式对象是预定义的Java对象,无需声明即可直接使用。包括:request(HttpServletRequest)、response(HttpServletResponse)、out(JspWriter,用于输出到网页)、session(HttpSession)、application(ServletContext)、config(ServletConfig)、pageContext(PageContext)、page(当前页面对象)和Exception。out对象基于JspWriter,用于内容输出,提供print和println方法。
16 0
|
2月前
|
缓存 Java 开发者
JSP 教程 之 JSP 隐式对象 4
JSP隐式对象是预定义的Java对象,无需声明即可直接使用。包括9大对象:request、response、out、session、application、config、pageContext、page和Exception。其中,out对象基于JspWriter,用于向response写入内容,具有缓存管理功能,并扩展了PrintWriter的方法。常用方法有print()、println()用于输出各种类型数据,以及flush()刷新输出流。
20 0