JSP有九个内置对象(又叫隐含对象),不需要预先声明就可以在脚本代码和表达式中随意使用


1.总结介绍

#对象名称对象介绍
1out用于向客户端,浏览器输出数据。
2request封装了来自客户端、浏览器的各种信息。
3response封装了服务器的响应信息。
4exception封装了jsp程序执行过程中发生的异常和错误信息。
5config封装了应用程序的配置信息。
6page指向了当前jsp程序本身。
7session来保存会话信息。也就是说,可以实现在同- -用户的不同请求之间共享数
8application代表了当前应用程序的上下文。可以在不同的用户之间共享信息。
9pageContext提供了对jsp页面所有对象以及命名空间的访问。


JSP九大内置对象分为四类:

  • 输入输出对象:out对象、response对象、request对象

  • 通信控制对象:pageContext对象、session对象、application对象

  • Servlet对象:page对象、config对象

  • 错误处理对象:exception对象


2.详解

1、request对象

   request 对象是 javax.servlet.httpServletRequest类型的对象。 该对象代表了客户端的请求信息,主要用于接受通过HTTP协议传送到服务器的数据。(包括头信息、系统信息、请求方式以及请求参数等)。request对象的作用域为一次请求。

request对象封装了从客户端到服务器发出的请求信息。

request对象方法介绍:

#方法名方法解释
1isUserInRole判断认证后的用户是否属于某一成员组
2getAttribute获取指定属性的值,如该属性值不存在返回Null
3getAttributeNames获取所有属性名的集合
4getCookies获取所有Cookie对象
5getCharacterEncoding获取请求的字符编码方式
6getContentLength返回请求正文的长度,如不确定返回-1
7getHeader获取指定名字报头值
8getHeaders获取指定名字报头的所有值,一个枚举
9getHeaderNames获取所有报头的名字,一个枚举
10getInputStream返回请求输入流,获取请求中的数据
11getMethod获取客户端向服务端传送数据的方法
12getParameter获取指定名字参数值,主要是表单
13getParameterNames获取所有参数的名字,一个枚举
14getParameterValues获取指定名字参数的所有值
15getProtocol获取客户端向服务器端传送数据的协议名称
16getQueryString获取以get方法向服务器传送的查询字符串
17getRequestURI获取发出请求字符串的客户端地址
18getRemoteAddr获取客户端的IP地址
19getRemoteHost获取客户端的名字
20getSession获取和请求相关的会话
21getServerName获取服务器的名字
22getServerPath获取客户端请求文件的路径
23getServerPort获取服务器的端口号
24removeAttribute删除请求中的一个属性
25setAttribute设置指定名字参数值

2、response对象

   response 代表的是对客户端的响应,主要是将JSP容器处理过的对象传回到客户端。response对象也具有作用域,它只在JSP页面内有效。


#方法名方法解释
1addCookie添加一个Cookie对象
2addHeader添加Http文件指定名字头信息
3containsHeader判断指定名字Http文件头信息是否存在
4encodeURL使用sessionid封装URL
5flushBuffer强制把当前缓冲区内容发送到客户端
6getBufferSize返回缓冲区大小
7getOutputStream返回到客户端的输出流对象
8sendError向客户端发送错误信息
9sendRedirect把响应发送到另一个位置进行处理
10setContentType设置响应的MIME类型
11setHeader设置指定名字的Http文件头信息


3、session对象

   session 对象是由服务器自动创建的与用户请求相关的对象。服务器为每个用户都生成一个session对象,用于保存该用户的信息,跟踪用户的操作状态。session对象内部使用Map类来保存数据,因此保存数据的格式为 “Key/value”。 session对象的value可以使复杂的对象类型,而不仅仅局限于字符串类型。

session对象:是一个jsp内置对象,它在第一个jsp被装载时自动创建,完成会话期管理。从一个客户打开浏览器并连接到服务器开始,到客户关闭浏览器离  开这个服务器结束(或者超时),被称为一个会话。当一个客户访问一个服务器时,可能会在这个服务器的几个页面之间切换,服务器应当通过某种办法知道这是一个客户,就需要创建session对象。

http是无状态的连接协议,需要使用session来存放用户每次的登陆信息

session对象方法:

#方法名方法解释
1getAttribute获取指定名字的属性
2getAttributeNames获取session中全部属性名字,一个枚举
3getCreationTime返回session的创建时间
4getId获取会话标识符
5getLastAccessedTime返回最后发送请求的时间
6getMaxInactiveInterval返回session对象的生存时间单位千分之一秒
7invalidate销毁session对象
8isNew每个请求是否会产生新的session对象
9removeAttribute删除指定名字的属性
10setAttribute设定指定名字的属性值

4、application对象

 application 对象可将信息保存在服务器中,直到服务器关闭,否则application对象中保存的信息会在整个应用中都有效。与session对象相比,application对象生命周期更长,类似于系统的“全局变量”。

application对象代表当前的应用程序。存在于服务器的内存空间中。应用一旦启动便会自动生成一个application对象。如果应用没有被关闭,此application对象便一直会存在。直到应用被关闭application的生命周期比session更长。应用:为多个用户共享全局信息。比如当前的在线人数等。

application对象方法:

#方法名方法解释
1getAttribute获取应用对象中指定名字的属性值
2getAttributeNames获取应用对象中所有属性的名字,一个枚举
3getInitParameter返回应用对象中指定名字的初始参数值
4getServletInfo返回Servlet编译器中当前版本信息
5setAttribute设置应用对象中指定名字的属性值

5、out 对象

out 对象用于在Web浏览器内输出信息,并且管理应用服务器上的输出缓冲区。在使用 out 对象输出数据时,可以对数据缓冲区进行操作,及时清除缓冲区中的残余数据,为其他的输出让出缓冲空间。待数据输出完毕后,要及时关闭输出流。

out对象是一个输出流,用来向浏览器输出信息,除了输出各种信息外还负责对缓冲区进行管理。

常用方法:

#方法名方法解释
1print或println输出数据
2newLine输出换行字符
3flush
输出缓冲区数据
4close关闭输入流
5clear清除缓冲区数据,但不输出到客户端
6clearBuffer
清除缓冲区数据,输出到客户端
7getBufferSize获得缓冲区域大小
8getRemaining获得缓冲区中没有被占用的空间
9isAutoFlush是否为自动输出

6、pageContext 对象

pageContext 对象的作用是取得任何范围的参数,通过它可以获取 JSP页面的out、request、reponse、session、application 等对象。pageContext对象的创建和初始化都是由容器来完成的,在JSP页面中可以直接使用 pageContext对象。

pageContetx对象是jsp页面中所有对象功能的最大集成着。使用他可以访问所有的jsp内置对象。

pageContext对象方法:

#方法名方法解释
1forward重定向到另一页面或Servlet组件
2getAttribute获取某范围中指定名字的属性值
3findAttribute按范围搜索指定名字的属性
4removeAttribute删除某范围中指定名字的属性
5setAttribute设定某范围中指定名字的属性值
6getException返回当前异常对象
7getRequest返回当前请求对象
8getResponse返回当前响应对象
9getServletConfig返回当前页面的ServletConfig对象
10getServletContext返回所有页面共享的ServletContext对象
11getSession返回当前页面的会话对象

7、config 对象

config 对象的主要作用是取得服务器的配置信息。通过 pageConext对象的 getServletConfig() 方法可以获取一个config对象。当一个Servlet 初始化时,容器把某些信息通过 config对象传递给这个 Servlet。 开发者可以在web.xml 文件中为应用程序环境中的Servlet程序和JSP页面提供初始化参数。

config对象表示当前jsp程序的配置信息一般项目中,jsp被用作模版技术,也就是位于表示层而位于表示层的jsp文件一般是不需要配置信息的所以此对象在jsp程序中其实很少使用config对象是servletConfig类的一个实例。

config对象方法:

#方法名方法解释
1getServletContext返回所执行的Servlet的环境对象
2getServletName返回所执行的Servlet的名字
3getInitParameter返回指定名字的初始参数值
4getInitParameterNames返回该JSP中所有的初始参数名,一个枚举

8、page 对象

page 对象代表JSP本身,只有在JSP页面内才是合法的。 page隐含对象本质上包含当前 Servlet接口引用的变量,类似于Java编程中的 this 指针。

page对象有点类似与java编程中的this指针,他指向了当前jsp页面本身。page对象是java.lang.object类的一个实例page对象拥有一个toString方法,下面是官方定义的方法介绍:

public String toString() {
    return getClass().getName() + "@" + Integer.toHexString(hashCode());
}
包名+类名+@+hashcode值

page对象的方法:

#方法名方法解释
1toString将当前项目的信息打印出来
2getClass返回当前的object类
3hashCode返回page对象的hashCode值
4equals用于比较对象是否与当前对象相同

9、exception 对象

exception 对象的作用是显示异常信息,只有在包含 isErrorPage="true" 的页面中才可以被使用,在一般的JSP页面中使用该对象将无法编译JSP文件。excepation对象和Java的所有对象一样,都具有系统提供的继承结构。exception 对象几乎定义了所有异常情况。在Java程序中,可以使用try/catch关键字来处理异常情况; 如果在JSP页面中出现没有捕获到的异常,就会生成 exception 对象,并把 exception 对象传送到在page指令中设定的错误页面中,然后在错误页面中处理相应的 exception 对象。

exception对象表示jsp引擎在执行代码时抛出的异常如果想要使用exception对象,那么需要配置编译指令的isErrorPage属性为true即在页面指令中设置:<%@page isErrorPage=“true”%>


3.总结

域对象:

其中域对象有   requestresponsesessionapplication,   pageContext  五个

我们不难发现,域对象都会存在两个方法(getAttribute()setAttribute()),域对象可以在自己的作用域内实现数据的存储与获取。可以在不同程度上实现数据共享