-
1 知识链接
-
2 任务实现
-
3 同步实训
【问题引入】
JSP的一个重要特征就是它自带了功能强大的内置对象,这些内置对象在Web项目中被广泛用于获取客户端数据、输出信息、保存数据等场景中。
那么有哪些内置对象呢?它们的功能又是如何的?
【实现思路】
JSP的内置对象包括request、response、out、session、pageContext、application、config、page和exception。比较常用的有out、request、response、session和application。通过学习JSP内置对象的概念、分类、可见范围及功能这些知识点来帮助我们了解JSP的内置对象。
【知识链接】
微课:
1. JSP内置对象概述
Java是面向对象的,由于JSP是使用Java作为脚本语言,所以JSP具有强大的对象处理能力。在Java语法中使用一个对象前,需要先实例化这个对象,这其实是一件比较繁琐的事。为了简化开发,JSP提供了一些内置对象,这些内置对象在使用时不需要实例化,直接使用即可。内置对象也称为隐含对象或固有对象。内置对象是被JSP容器自动定义的对象变量,可以在JSP页面的jspService()方法中自动实例化这些隐含对象。JSP内置对象大致可分为如下四类:
与输入输出有关的内置对象:out、request、response对象。
与上下文(Context)有关的内置对象:session、application、pageContext对象。
与Servlet有关的内置对象:page、config对象。
与错误(Error)处理有关的内置对象:exception对象。
2. JSP内置对象的范围
表2-3列出了JSP的9个内置对象的可见范围及其功能描述。
表2-3 JSP的内置对象
| 对象名 | 对象类型 | 可见范围 | 描述 |
| out | javax.servlet.jsp.JspWriter | page | 提供对输出流的访问 |
| request | javax.servlet.http.HttpServletRequest | request | 提供对HTTP请求数据的访问,同时还提供用于加入特定请求数据的上下文 |
| response | javax.servlet.http.HttpServletResponse | page | 允许直接访问HttpServletResponse对象,可用来向客户端输入数据 |
| session | javax.servlet.http.HttpSession | session | 可用来保存在服务器与一个客户端之间需要保存的数据,当客户端关闭网站的所有网页时,session变量会自动消失 |
| application | javax.servlet.ServletContext | application | 代表应用程序上下文,它允许JSP页面与包括在同一应用程序中的任何Web组件共享信息 |
| pageContext | javax.servlet.jsp.PageContext | page | 是JSP页面本身的上下文,它提供了唯一一组方法来管理具有不同作用域的属性,这些API在实现JSP自定义标签处理程序时非常有用 |
| page | java.lang.Object,即HttpJspBase | page | 代表JSP页面对应的Servlet类实例 |
| config | javax.servlet.ServletConfig | page | 允许将初始化数据传递给一个JSP页面 |
| exception | java.lang.Throwable,即Exception | page | 含有只能由指定的JSP“错误处理页面”访问的异常数据 |
在选择范围时,应遵循如下原则:
如果数据只在一个页面用到,就用page范围。
如果数据在多个页面用到,就用session范围。
如果数据在多个请求中用到,就用request范围。
如果数据在多个session中用到,就用application范围。

