企业🤖AI Agent构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
# JSP内置对象 [TOC] ## 概述 在之前的学习中,我们接触到一些特殊的代码,比如`out.println()`和`request.xxx()`,在这些代码里面我们直接可以使用`out`和`request`这两个对象,而无需去实例化它们。 这是因为在JSP页面中,已经提前设置了九个内置对象。分别是`request`、`response`、`session`、`application`、`out`、`pagecontext`、`config`、`page`、`exception` >[info]内置对象,又叫做隐含对象,不需要预先声明就可以在脚本代码和表达式中随意使用 1. 由JSP规范提供,不用编写者实例化。  2. 通过Web容器实现和管理  3. 所有JSP页面均可使用  4. 只有在脚本元素的表达式或代码段中才可使用 接下来,我们就来看看这九大内置对象中几个重要的对象的常用方法与作用域(指内置对象的影响范围) >[warning]作用域(有小到大) 1. pageContext 当前页面有效(页面跳转后无效) 2. request 同一次请求有效(请求转发后有效,重定向后无效) 3. session 同一次对话有效(同一个浏览器在退出关闭之前都有效) 4. application 全局有效(整个项目) ## 几个重要内置对象 ### request request 对象是 javax.servlet.httpServletRequest类型的对象。 该对象代表了客户端的请求信息,主要用于接受通过HTTP协议传送到服务器的数据。request 对象的生命周期只在一次请求中。 所谓的一次请求,是指请求的发生到结束的整个过程,也就是指从http请求发起,到服务器处理结束,返回响应的整个过程。在这个过程中可能使用forward的方式跳转了多个jsp页面,在这些页面里你都可以使用这个变量。 * request.getParameter(String key) 从客户端发送请求到服务器端是,服务器端接收客户端的参数,POST/GET 方式都可以。 * request.setAttribute(String key, Object value) 在服务器内部进行页面跳转(业务逻辑处理和页面展现分离)进行数据**对象**的传递使用,在接收的页面使用 request.getAttribute(String key) 获取对象。 * request.setCharacterEncoding("UTF-8") 设置请求参数时的编码 ### session session 对象是由服务器自动创建的与用户请求相关的对象。服务器为每个用户都生成一个session对象,用于保存该用户的信息,跟踪用户的操作状态,服务器创建的每个session对象互不干涉。session是会话级别的变量,我们一般使用 session 处理用户的登陆信息。 简单的理解,打开一个浏览器,无论你打开多少标签页, 用 session 存储的变量都会存在,除非使用 session.removeAttribute() 将其显式销毁。 但是要注意一下,session对象本身是存在时间限制的,一般而言超过30分钟会自动销毁。 ### application 服务器级别的变量,主要服务启动未关闭,用 application 存储的变量都会存在,除非显式销毁。 ## 其他 1. `response`:对客户端的响应,主要是将JSP容器处理过的对象传回到客户端 2. `pageContext`:作用是取得任何范围的参数,通过它可以获取 JSP页面的一些其他对象 3. `out`:用于在Web浏览器内输出信息 4. `config`:作用是取得服务器的配置信息 5. `page`:代表JSP本身,只有在JSP页面内才是合法的 6. `exception`:作用是显示异常信息 ## 总结 | 对象名 | 功能 | 类型 | 作用域 | | --- | --- | --- | --- | | `request` | 向客户端请求数据 | javax.servlet.ServletRequest | Request | | `response` | 封装了jsp产生的响应,然后被发送到客户端以响应客户的请求 | javax.servlet.SrvletResponse | Page | | `pageContext` | 为JSP页面包装页面的上下文。管理对属于JSP中特殊可见部分中己经命名对象的该问 | javax.servlet.jsp.PageContext | Page | | `session` | 用来保存每个用户的信息,以便跟踪每个用户的操作状态 | javax.servlet.http.HttpSession | Session | | `application` | 应用程序对象 | javax.servlet.ServletContext | Application | | `out` | 向客户端输出数据 | javax.servlet.jsp.JspWriter | Page | | `config` | 表示Servlet的配置,当一个Servlet初始化时,容器把某些信息通过此对象传递给这个Servlet | javax.servlet.ServletConfig | Page | | `page` | Jsp实现类的实例,它是jsp本身,通过这个可以对它进行访问 | javax.lang.Object | Page | | `exception` | 反映运行的异常 | javax.lang.Throwable | Page |