JSP内置对象
一.request对象
(1)定义:request对象是javax.servlet.http.HttpServletRequest 类的实例
(2)作用:1.使用对应的方法获取客户端提交的数据
(eg:getPqrameter(),setPqrameter()[要考虑转码]、setAttribute(),getAttribute()[不用考虑转码])
2.在作用域中管理属性,取名,设值,以名获值
3.请求转发(getRequestiDispatcher("xxx.jsp").forward(request,response))
【我自己都不愿意看的:客户端的请求信息被封装在request对象中(如用户名填写后提交的信息,客户端的IP地址等),再通过request对象与客户端交互,通过request相对应的各种方法来收集客户端的Form Cookies 超连接,或者收集服务器的一些环境变量,主要用来处理客户端浏览器提交的请求中的各项参数和选项。(是HttpServletRequset的实例)】
(3)使用过程描述:服务器通过request对象的相关方法获取到客户端通过HTML表单或网页地址后面提供的参数方法(get或post)提交的数据
(4)常用方法
1.取值和设值
get/setParameter(String name)
setAttribute(String ,Object)
getAttribute(String name)
2.请求相关
getContentType()
getProtocol()
getServerName()
getServerPort()
getContentLength()
getRemoteAddr()
3.编码相关
get/setCharacterEncoding()
4.路径相关
getRealPath(String path)
getContextPath()
/**以上都是对安全信息的访问*/
5.提交相关
get.Method()
二.response对象
(1)定义:response对象是javax.sevlet.HttpServletResPonse接口类的对象,封装了JSP产生的响应
(2)作用:1.重定向(sendRedirect("xxx.jsp"))
2.设置HTTP响应报头
3.缓冲区配置
4.添加或处理响应,例如将响应重定向到另一个资源,发送错误等。
(3)使用过程描述:响应客户端请求,向客户端发送信息。
如回应的 Header,回应本体(HTML 的内容)以及服务器端的状态码等信息,提供给客户端。
请求的信息可以是各种数据类型的,甚至是文件。
三.session对象
(1)使用原因:客户与服务器之间的通信是通过 HTTP 协议完成的。
HTTP 是一种无状态的协议,当客户向服务器发出请求,服务器接收请求并返回响应后,该连接就被关闭了。
此时,服务器端不保留连接的有关信息,要想记住客户的连接信息,可以使用 JSP 提供的 session 对象。
(2)个人理解:一个session对象对应一个用户(一个session对象又称一次对话)
只要访问不断开,服务器与客户端连接也不会断开,session对象一直存在
系统默认30分钟内,若客户不发送请求给服务器,session对象自动消失(session在服务器内存中的生命周期),本次访问一直进行
(3)生命周期作用范围:从用户打开浏览器访问你的servlet开始直到用户关闭了浏览器结束
(4)用途:1.在作用域中管理属性
2.重定向中保存数据
3.从session对象中移除指定对象(removeAttribute(String name))
4.销毁session对象(invalidate())
5.进行关联访问,管理生命周期
6.创建及获取客户会话属性
四.application对象
(1)定义:JSP application 对象是 javax.servlet.ServletContext 类的实例,这有助于查找有关 Servlet 引擎和 Servlet 环境的信息
(2)生命周期:它的生命周期从服务器启动到关闭。在此期间,对象将一直存在。这样,在用户的前后连接或不同用户之间的连接中,可以对此对象的同一属性进行操作
(3)作用范围【作用域】:在任何地方对此对象属性的操作,都会影响到其他用户的访问
每个用户对应一个session对象,所有访问同一个应用程序的共享一个application对象,即一个application对应多个session对象
(4)作用:1.访问应用程序初始化参数
2.在作用域中管理属性
(5)application 对象的常用方法
方法 | 说明 |
---|---|
getAttribute( String arg) | 获取 application 对象中含有关键字的对象 |
getAttributeNames() | 获取 application 对象的所有参数名字 |
getMajorVersion() | 获取服务器支持 Servlet 的主版本号 |
getMinorVersion() | 获取服务器支持 Servlet 的从版本号 |
removeAttribute(java.lang.String name) | 根据名字删除 application 对象的参数 |
setAttribute(String key,Object obj) | 将参数 Object 指定的对象 obj 添加到 application 对象中,并 为添加的对象指定一个索引关键字 |
五.out对象
(1)定义:out 对象是一个继承自抽象类 javax.servlet.jsp.JspWriter 的实例,在实际应用中,out 对象会通过 JSP 容器变换为 java.io.PrintWriter 类的对象
(2) 使用过程:out 对象是一个输出流,用来向客户端输出数据,可以是各种数据类型的内容,同时,它还可以管理应用服务器上的输出缓冲区,缓冲区的默认值是 8KB,可以通过页面指令 page 来改变默认大小
(3)作用:
1.缓冲区管理
在使用 out 对象输出数据时,可以对数据缓冲区进行操作,及时清除缓冲区中的残余数据,为其他的输出让出缓冲空间。数据输出完毕后要及时关闭输出流。下面介绍 out 对象的应用。表 1 列出了 out 对象常用的方法
方法 | 说明 |
---|---|
void print(各种数据类型) | 将指定类型的数据输出到 HTTP 流,不换行 |
void println(各种数据类型) | 将指定类型的数据输出到 HTTP 流,并输出一个换行符 |
void newline | 输出换行字符 |
默认情况下,服务端要输出到客户端的内容不直接写到客户端,而是先写到一个输出缓冲区中。使用 out 对象的 getBufferSize() 方法取得当前缓冲区的大小(单位是 KB),用 getRemaining() 方法取得当前使用后还剩余的缓冲区的大小(单位是 KB)。
JSP 只有在下面三种情况下,才会把缓冲区的内容输出到客户端。
- 该 JSP 网页已完成信息的输出。
- 输出缓冲区己满。
- JSP 中调用了 out.flush() 或 response.flushBuffer()。
另外,调用 out 对象的 clear() 方法,可以清除缓冲区的内容,类似于重置响应流,以便重新开始操作。如果响应已经提交,则会产生 IOException 异常。此外,另一种方法 clearBuffer() 可以清除缓冲区“当前”内容,而且即使内容已经提交给客户端,也能够访问该方法。
【例1】用 out 对象管理输出缓冲区,代码如下:
- <%@ page contentType="text/html;charset=utf-8"%>
- <html>
- <head>
- <title>
- out 对象管理输出缓冲区
- </title>
- </head>
- <body>
- <h2>out对象管理输出缓冲区</h2>
- <%out.println("学习使用out对象管理输出缓冲区:<br>");%> <br>
- 缓冲大小:<%=out.getBufferSize()%> <br>
- 剩余缓存大小:<%=out.getRemaining()%> <br>
- 是否自动刷新:<%=out.isAutoFlush()%> <br>
- </body>
- </html>
运行结果如图 1 所示。

图1 用out对象管理输出缓冲区
2.向客户端输出数据
在使用 print() 或 println() 方法向客户端输出时,由于客户端是浏览器,因此可以使用 HTML 中的一些标记控制输出格式。例如:
- out.println("<font color=red>Hello </font>");
:
六.Exception对象
(1)作用:用来处理JSP文件执行时发生的所有的错误和异常(异常是指在程序执行的过程中不可预料的情况,由潜在的错误机率导致)【错误处理页面】
(2)过程:在JSP页面中如果产生异常,会产生exception对象,exception对象会被传送到page指令中的errorPage属性指定的错误页面,在错误页面中使用exception对象处理异常
在使用exception对象必须在当前页面的page指令中设置isErrorPage=true才能使用
(3)常用方法
getMessage()该方法返回异常消息字符串
getLocalizedMessage()该方法返会本地化语言的异常错误
printStackTrace()显示异常的栈跟踪轨迹
toString()返回关于异常错误的简单信息描述
fillInStackTrace()写异常错误的栈执行轨迹
七.其他内置对象
1.pageContext对象
(1)定义:pageContext对象是javax.servlet.jsp.PageContext类的实例对象,提供了对JSP页面所有的对象及命名的访问,创建和初始化都由容器完成
(2)作用:功能对象集合
2.config对象
(1)定义:config对象属于javax.servlet.ServletConfig,config对象代表对象信息,JSP页面通常无需配置
(2)用途:用于servlet中获取web.xml文件中的参数
(3)常用方法:
1.getServletContext()返回执行者的Servlet上下文
2.getServletParameter()返回Servlet的名字
3.getInitParameter()返回名字位name的初始参数的值
4.getInitParameterNames()返回这个JSP的所有的初始参数的名字
3.page对象
(1)定义:相当于JAVA编程中的this指针,就是指JSP页面本身。page是java.lang.Object类的对象
(3)常用方法:
1.getServletContext()返回执行者的Servlet上下文
2.getServletParameter()返回Servlet的名字
3.getInitParameter()返回名字位name的初始参数的值
4.getInitParameterNames()返回这个JSP的所有的初始参数的名字