在本章中,我们将讨论JSP中的隐式对象.这些对象是JSP容器为每个页面中的开发人员提供的Java对象,开发人员可以直接调用它们而无需显式声明. JSP隐式对象也称为预定义变量.
下表列出了JSP支持的九个隐式对象 :
S.No. | 对象&描述 |
---|---|
1 | 请求 这是与请求关联的 HttpServletRequest 对象. |
2 | 响应 这是与客户端响应相关联的 HttpServletResponse 对象. |
3 | out 这是 PrintWriter 对象,用于将输出发送到客户. |
4 | 会话 这是与之关联的 HttpSession 对象请求. |
5 | 申请 这是与应用程序上下文关联的 ServletContext 对象. |
6 | config 这是与页面关联的 ServletConfig 对象. |
7 | pageContext 这封装了服务器特定功能的使用,例如更高性能 JspWriters . |
8 | page 这只是 this 的同义词,用于调用已翻译的servlet类定义的方法. |
9 | 异常 异常对象允许设计者访问异常数据ed JSP. |
请求对象是 javax.servlet.http.HttpServletRequest 对象的实例.每次客户端请求页面时,JSP引擎都会创建一个新对象来表示该请求.
请求对象提供了获取HTTP头信息的方法,包括表单数据,cookie,HTTP方法等.
我们可以在后续章节中介绍与请求对象相关的一整套方法. JSP - 客户请求.
响应对象是 javax.servlet.http.HttpServletResponse 对象的一个实例.就像服务器创建请求对象一样,它也会创建一个对象来表示对客户端的响应.
响应对象还定义了处理创建新HTTP头的接口.通过这个对象,JSP程序员可以添加新的cookie或日期戳,HTTP状态代码等.
我们将在后续章节中介绍与响应对象相关的一整套方法. JSP - 服务器响应.
out隐式对象是 javax.servlet.jsp.JspWriter 对象的一个实例,用于在响应中发送内容.
初始JspWriter对象的实例化取决于页面是否被缓冲.通过使用page指令的 buffered ='false'属性可以轻松关闭缓冲.
JspWriter对象包含大多数与 java.io.PrintWriter 类.但是,JspWriter还有一些其他方法可用于处理缓冲.与PrintWriter对象不同,JspWriter抛出 IOExceptions .
下表列出了我们将用来编写的重要方法 boolean char,int,double, object,String
等.
S.No. | 方法&描述 |
---|---|
1 | out.print(dataType dt) 打印数据类型值 |
2 | out.println(dataType dt) 打印数据类型值,然后用换行符终止该行. |
3 | out.flush() 冲洗流. |
会话对象是 javax.servlet.http.HttpSession的一个实例并且其行为与会话对象在Java Servlet下的行为完全相同.
会话对象用于跟踪客户端请求之间的客户端会话.我们将在后续章节中介绍会话对象的完整用法. JSP - 会话跟踪.
应用程序对象是生成的Servlet的 ServletContext 对象的直接包装器,实际上是 javax.servlet.ServletContext 对象的实例.
此对象表示JSP页面整个生命周期.初始化JSP页面时会创建此对象,并且当 jspDestroy()方法删除JSP页面时将删除该对象.
通过添加属性应用程序,您可以确保构成Web应用程序的所有JSP文件都可以访问它.
我们将在JSP - Hits Counter 章.
配置对象是一个实例化的实例. javax.servlet.ServletConfig 并且是生成的servlet的 ServletConfig 对象的直接包装.
这个对象允许JSP程序员访问Servlet或JSP引擎初始化参数,例如路径或文件位置等.
以下 config 方法是您可能使用的唯一方法,并且它的用法很简单 : 去;
config.getServletName();
这将返回servlet名称,该名称是< servlet-name> 元素中包含的字符串> WEB-INF\web.xml 文件.
pageContext对象是
此对象用于访问有关页面的信息,同时避免大部分实现细节.
此对象存储对每个请求的请求和响应对象的引用. 应用程序,配置,会话和out对象是通过访问此对象的属性派生的.
pageContext对象还包含有关发布到JSP的指令的信息页面,包括缓冲信息,errorPageURL和页面范围.
PageContext类定义了几个字段,包括 PAGE_SCOPE,REQUEST_SCOPE,SESSION_SCOPE,和 APPLICATION_SCOPE ,用于标识四个范围.它还支持40多种方法,其中大约一半是从 javax.servlet.jsp.JspContext类继承的.
其中一个重要的方法是的removeAttribute 的.此方法接受一个或两个参数.例如, pageContext.removeAttribute("attrName")从所有范围中删除该属性,而以下代码仅从页面范围中删除它 :
pageContext.removeAttribute("attrName",PAGE_SCOPE);
可以在 JSP - 文件上传</>中检查pageContext的使用情况a>章.
此对象是对页面实例的实际引用.它可以被认为是一个表示整个JSP页面的对象.
页面对象实际上是 this 对象的直接同义词.
异常对象是一个包装器,包含从上一页抛出的异常.它通常用于生成对错误条件的适当响应.
我们将在<a href ="https://img01.yuandaxia.cn/Content/img/tutorials/jsp/jsp_exception_handling"中介绍此对象的完整用法. htm"> JSP - 异常处理章节.