第4章 内置对象
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第4章 内置对象
JSP内置对象,也称为隐含对象(Implicit Objec t),由JSP容器自动为JSP页面提供。这些对象不需 要预先声明就可以直接在脚本程序中进行使用。JSP 容器提供了以下几个内置对象,它们是:request、r esponse、out、session、application、config、pag eContext、page、exception和cookie,本章将对它 们进行详细介绍。
15
4.5.1 session简介
session对象的类型为HttpSession。session对 象提供了一些常用方法,通过这些方法可以维护客 户端与服务器端的会话状态。
方法
setAttribute(String,Object) getAttribute(String) getId( ) getAttributeNames( ) removeAttribute(String) long getCrertionTime( ) getLastAccessedTime( ) setMaxInactiveInterval(int) getMaxInactiveInterval( ) getld( ) isNew( ) invalidate( ) getServletContext( )
用法
< http-equiv="Content-Type" Content="text/html; Charset=gb2312"> < http-equiv="Content-Language" Content="zh-CN"> <Meta http-equiv="Refresh" Content="30"> <Meta http-equiv="Refresh" Content="5; Url="> <Meta http-equiv="Expires" Content="0"> <Meta http-equiv="Expires" Content="Wed, 26 Feb 2007 08:21:57 GMT">必须使用GMT的时间 格式,或直接设为0(数字表示多少时间后过期) < http-equiv="Pragma" Content="No-cach"> < http-equiv="Set-Cookie" Content="cookievalue=xxx; expires=Wednesday,21-Oct-07 15:14:21 GMT; path=/"> <meta http-equiv="Pics-label" contect="">
11
4.4 pageContext对象
• pageContext对象被封装成javax.servlet.jsp.Pag eContext接口,它代表当前运行页面的一些属性。p ageContext对象的创建和初始化都是由容器来完成 ,在JSP页面中可以直接使用pageContext对象。
12
4.4.1 pageContext简介
16
4.5.2 session对象应用
在实际使用中,我们经常用session对象来判断该 用户是否具有访问某个页面的权限,防止无权限用户 访问用户本不能访问的页面。我们可以单独的编写一 个名为check.jsp文件,将它用include指令包含到每一 个JSP页面中,这样当用户非法访问时,check.jsp文 件会从用户的session对象中取出用户的用户名,该用 户名是在通过了身份验证后写入的。所以只要读出的 值为空,就可判断当前用户无访问权限.这时会利用 response对象重定向到登录界面进行身份验证,并提 示错误信息。
Refresh
Expires
Pragma Set-Cookie
禁止浏览器从本地机的缓存中调阅页面内 容 设定cookie,如果网页过期,存储的cookie 也被删除。需要注意的也是必须使用GMT 时间 设置网页的评定等级。在IE的internet选项 中有一项内容设置,可以防止浏览一些受 限制的网站,而网站的限制级别就是通过 该参数来设置的 强制页面在当前窗口中以独立页面显示, 可以防止网页被别人当作一个frame页调用
14
4.5 session会话对象
• session对象是JSP中一个很重要的内置对 象,类型为javax.servlet.http.HttpSession。当用 户与服务器连接时,服务器为每个用户创建一个s ession对象,并设定其中内容。默认情况下,ses sion对象在用户第一次连接到服务器时由Web服务 器自动创建并设定session对象的属性值,然后被 关联到request对象。Web开发人员主要使用sessi on对象来维护会话状态。
说明
将value对象以name名称绑定到会话,变成其name属性。如果name属性已经 存在,其对应的对象被转换为value对象。 从会话session对象中取得name属性,如果name属性不存在,则返回null。 此方法返回会话的标识。 返回session对象中存储的每一个对象,结果为Enumeration类实例 从会话中删除name属性。如果name属性不存在,则这不会执行其他操作, 也不会抛出异常。 返回创建时间,单位为毫秒,从1970年1月1目算起 返回在会话创建的时间内Web容器接收到客户最后一次发出请求的时间。 设定允许客户请求之间的最长时间间隔。如果请求之间超过这个时间,JSP 容器则会认为请求属于两个不同的会话 返回在会话期间内客户请求的最长时间间隔,以秒为单位 返回会话标识sessionID 检查当前客户是否属于新的会话 使会话失效,同时删除其属性对象 返回当前会话所在的上下文环境,ServletContext对象可以使Servlet与Web容 器进行通信。
方法
newLine() flush() close() clearBuffer( ) clear() getBufferSi ze() isAutoFlush () getRemaini ng() 获得缓冲区没有使用的空间的大小 设置 返回布尔值,若是auto flush则返回true,否则返回false 清除缓冲区里的数据,而不把数据写到客户端 获得缓冲区的大小,缓冲区的大小可用<%@ page buffer=”Size”%>
4
4.1.2 request对象应用
• request对象中常用方法有getParameter()、ge tRemoteUser和getRealPath()等方法。通过这些方 法可以获得客户端的数据。在本节通过几个实例说 明如何使用这些方法。
5
4.2 response响应对象
• response对象是javax.servlet.ServletResponse 接口中一个针对HTTP协议和实现的子类。respons e对象是表示服务器对请求的响应的HttpServletRes ponse对象,包含服务器向客户机做出信息的应答 信息。response对象响应信息包含的内容包括:MI ME类型的定义、保存的Cookie、连接到Web资源 的URL等。
1
本章知识要点:
• • • • • 掌握请求对象request 掌握响应对象response 掌握输出对象out和页面上下文对象pageContext 掌握会话对象session 掌握全局应用程序对象application
2
4.1 request请求对象
request对象是HttpServletRequest接口的一个 实例,因此它可使用HttpServletRequest接口的方 法,可以很方便地取得客户端的各种信息。 request对象的生命周期是由JSP容器自动控制。当 客户端通过HTTP协议请求一个JSP页面时,JSP 容器就会创建request对象并将请求信息包装到 ቤተ መጻሕፍቲ ባይዱequest对象中;当JSP容器处理完请求后, request对象就会被销毁。
13
4.4.2 pageContext对象应用
• 虽然pageContext对象可以访问HttpSession和S ervletContext对象,但是通常情况下,JSP容器已 经为我们HttpSession和ServletContext的实例,即s ession和application内置对象。
Pics-label
windows-Target
<meta contect="_top">
http-equiv="windows-Target"
8
4.3 out输出对象
• out对象是向客户端输出流进行写操作的对象。在 JSP页面中,可以使用out对象将所需的信息发送到客户 端浏览器。在JSP容器对JSP页面进行编译时,out对象 会被转换成java.io.PrintWriter对象。
9
4.3.1 out简介
out对象的基类是JspWriter。out对象主要的方 法是:print()方法和println()方法。两者区别在于 print()方法输出完后,并不结束当前行,而println() 方法在输出完毕后,会结束当前行。上述两种方法 在化JSP页面设计中是经常用到的,它们可以输出 各种格式的数据类型,如字符型、整型、浮点型、 布尔型甚至可以是一个对象,还可以是字符串与变 量的混合型以及表达式。
3
4.1.1 request简介
Servlet容器将客户端信息封装在一个代表客 户端的request对象中,该对象是 javax.servlet.ServletRequest的子类型。封装到 HttpServletRequest对象中的客户端信息包括请 求头(Header)、系统信息(比如编码方式)、 请求方式(比如GET或POST)、请求参数信息 、cookie和其他信息。
• pageContext对象在JSP容器执行jspService()方 法之前就已经被初始化了,它的主要功能是让JSP容 器控制其他隐含对象。例如,对象的生成与初始化、 释放对象本身。pageContext对象提供了对JSP默认 的隐含对象,以及其他可用对象进行操作的基本方法 。这样,通过pageContext对象就能够实现可用对象 的属性信息在Servlet与JSP页面之间互相传递。
17
4.6 application对象
• application对象保存了一个Web应用系统中一些 公用的数据,与session对象相比,application对象 所保存的数据可以被所有用户共享,而session对象 则是每个用户专用。当Web服务器中的任一个JSP页 面开始执行时,将产生一个application对象。当服务 器关闭时,则产生的application对象也随之消失。
6
4.2.1 response简介
• 当服务器处理完客户请求时,往往需要发送一 些信息给客户端浏览器,或者需要重定向到其他页 面。和request对象一样,response对象由容器生成 ,作为jspService()方法的参数被传入JSP。因为输 出流是缓冲的,所以可以设置Http状态码和 response头。内部对象response也是一个 HttpServletResponse对象,它提供了几个用于设置 送回浏览器的响应方法(例如,Cookies信息)。
7
4.2.2 response对象应用
response对象主要用来响应用户请求。
类型
Content-Type Content-Language
说明
设定页面使用的字符集,用以说明页面制 作所使用的语言,以指示浏览器调用相应 的字符集显示页面内容 设置网页的刷新时间,或转移到另外的网 页。单位为秒 指定网页在缓存中的有效时间,一旦网页 过期,必须到服务器上重新下载
说明
输出一个换行符号 输出缓冲的数据 关闭输出流,从而可以强制终止当前页面的剩余部分向浏览器输出 清除缓冲区里的数据,并把数据写到客户端
10
4.3.2 out对象应用
• 在JSP中,out对象主要用来向客户端输出数据 。在使用out对象时会自动转换为java.io.PrintWriter 对象,我们实际上使用的是PrintWriter对象,它是属 于javax.servlet.JspWriter类实例。JspWriter对象提 供了几个将内容写入响应缓冲区的方法。由于JspWri ter是从java.io.Writer派生而来的,java.io.Writer提供 了一系列的写方法。因此,JspWriter本身也提供了 一系列print方法。
JSP内置对象,也称为隐含对象(Implicit Objec t),由JSP容器自动为JSP页面提供。这些对象不需 要预先声明就可以直接在脚本程序中进行使用。JSP 容器提供了以下几个内置对象,它们是:request、r esponse、out、session、application、config、pag eContext、page、exception和cookie,本章将对它 们进行详细介绍。
15
4.5.1 session简介
session对象的类型为HttpSession。session对 象提供了一些常用方法,通过这些方法可以维护客 户端与服务器端的会话状态。
方法
setAttribute(String,Object) getAttribute(String) getId( ) getAttributeNames( ) removeAttribute(String) long getCrertionTime( ) getLastAccessedTime( ) setMaxInactiveInterval(int) getMaxInactiveInterval( ) getld( ) isNew( ) invalidate( ) getServletContext( )
用法
< http-equiv="Content-Type" Content="text/html; Charset=gb2312"> < http-equiv="Content-Language" Content="zh-CN"> <Meta http-equiv="Refresh" Content="30"> <Meta http-equiv="Refresh" Content="5; Url="> <Meta http-equiv="Expires" Content="0"> <Meta http-equiv="Expires" Content="Wed, 26 Feb 2007 08:21:57 GMT">必须使用GMT的时间 格式,或直接设为0(数字表示多少时间后过期) < http-equiv="Pragma" Content="No-cach"> < http-equiv="Set-Cookie" Content="cookievalue=xxx; expires=Wednesday,21-Oct-07 15:14:21 GMT; path=/"> <meta http-equiv="Pics-label" contect="">
11
4.4 pageContext对象
• pageContext对象被封装成javax.servlet.jsp.Pag eContext接口,它代表当前运行页面的一些属性。p ageContext对象的创建和初始化都是由容器来完成 ,在JSP页面中可以直接使用pageContext对象。
12
4.4.1 pageContext简介
16
4.5.2 session对象应用
在实际使用中,我们经常用session对象来判断该 用户是否具有访问某个页面的权限,防止无权限用户 访问用户本不能访问的页面。我们可以单独的编写一 个名为check.jsp文件,将它用include指令包含到每一 个JSP页面中,这样当用户非法访问时,check.jsp文 件会从用户的session对象中取出用户的用户名,该用 户名是在通过了身份验证后写入的。所以只要读出的 值为空,就可判断当前用户无访问权限.这时会利用 response对象重定向到登录界面进行身份验证,并提 示错误信息。
Refresh
Expires
Pragma Set-Cookie
禁止浏览器从本地机的缓存中调阅页面内 容 设定cookie,如果网页过期,存储的cookie 也被删除。需要注意的也是必须使用GMT 时间 设置网页的评定等级。在IE的internet选项 中有一项内容设置,可以防止浏览一些受 限制的网站,而网站的限制级别就是通过 该参数来设置的 强制页面在当前窗口中以独立页面显示, 可以防止网页被别人当作一个frame页调用
14
4.5 session会话对象
• session对象是JSP中一个很重要的内置对 象,类型为javax.servlet.http.HttpSession。当用 户与服务器连接时,服务器为每个用户创建一个s ession对象,并设定其中内容。默认情况下,ses sion对象在用户第一次连接到服务器时由Web服务 器自动创建并设定session对象的属性值,然后被 关联到request对象。Web开发人员主要使用sessi on对象来维护会话状态。
说明
将value对象以name名称绑定到会话,变成其name属性。如果name属性已经 存在,其对应的对象被转换为value对象。 从会话session对象中取得name属性,如果name属性不存在,则返回null。 此方法返回会话的标识。 返回session对象中存储的每一个对象,结果为Enumeration类实例 从会话中删除name属性。如果name属性不存在,则这不会执行其他操作, 也不会抛出异常。 返回创建时间,单位为毫秒,从1970年1月1目算起 返回在会话创建的时间内Web容器接收到客户最后一次发出请求的时间。 设定允许客户请求之间的最长时间间隔。如果请求之间超过这个时间,JSP 容器则会认为请求属于两个不同的会话 返回在会话期间内客户请求的最长时间间隔,以秒为单位 返回会话标识sessionID 检查当前客户是否属于新的会话 使会话失效,同时删除其属性对象 返回当前会话所在的上下文环境,ServletContext对象可以使Servlet与Web容 器进行通信。
方法
newLine() flush() close() clearBuffer( ) clear() getBufferSi ze() isAutoFlush () getRemaini ng() 获得缓冲区没有使用的空间的大小 设置 返回布尔值,若是auto flush则返回true,否则返回false 清除缓冲区里的数据,而不把数据写到客户端 获得缓冲区的大小,缓冲区的大小可用<%@ page buffer=”Size”%>
4
4.1.2 request对象应用
• request对象中常用方法有getParameter()、ge tRemoteUser和getRealPath()等方法。通过这些方 法可以获得客户端的数据。在本节通过几个实例说 明如何使用这些方法。
5
4.2 response响应对象
• response对象是javax.servlet.ServletResponse 接口中一个针对HTTP协议和实现的子类。respons e对象是表示服务器对请求的响应的HttpServletRes ponse对象,包含服务器向客户机做出信息的应答 信息。response对象响应信息包含的内容包括:MI ME类型的定义、保存的Cookie、连接到Web资源 的URL等。
1
本章知识要点:
• • • • • 掌握请求对象request 掌握响应对象response 掌握输出对象out和页面上下文对象pageContext 掌握会话对象session 掌握全局应用程序对象application
2
4.1 request请求对象
request对象是HttpServletRequest接口的一个 实例,因此它可使用HttpServletRequest接口的方 法,可以很方便地取得客户端的各种信息。 request对象的生命周期是由JSP容器自动控制。当 客户端通过HTTP协议请求一个JSP页面时,JSP 容器就会创建request对象并将请求信息包装到 ቤተ መጻሕፍቲ ባይዱequest对象中;当JSP容器处理完请求后, request对象就会被销毁。
13
4.4.2 pageContext对象应用
• 虽然pageContext对象可以访问HttpSession和S ervletContext对象,但是通常情况下,JSP容器已 经为我们HttpSession和ServletContext的实例,即s ession和application内置对象。
Pics-label
windows-Target
<meta contect="_top">
http-equiv="windows-Target"
8
4.3 out输出对象
• out对象是向客户端输出流进行写操作的对象。在 JSP页面中,可以使用out对象将所需的信息发送到客户 端浏览器。在JSP容器对JSP页面进行编译时,out对象 会被转换成java.io.PrintWriter对象。
9
4.3.1 out简介
out对象的基类是JspWriter。out对象主要的方 法是:print()方法和println()方法。两者区别在于 print()方法输出完后,并不结束当前行,而println() 方法在输出完毕后,会结束当前行。上述两种方法 在化JSP页面设计中是经常用到的,它们可以输出 各种格式的数据类型,如字符型、整型、浮点型、 布尔型甚至可以是一个对象,还可以是字符串与变 量的混合型以及表达式。
3
4.1.1 request简介
Servlet容器将客户端信息封装在一个代表客 户端的request对象中,该对象是 javax.servlet.ServletRequest的子类型。封装到 HttpServletRequest对象中的客户端信息包括请 求头(Header)、系统信息(比如编码方式)、 请求方式(比如GET或POST)、请求参数信息 、cookie和其他信息。
• pageContext对象在JSP容器执行jspService()方 法之前就已经被初始化了,它的主要功能是让JSP容 器控制其他隐含对象。例如,对象的生成与初始化、 释放对象本身。pageContext对象提供了对JSP默认 的隐含对象,以及其他可用对象进行操作的基本方法 。这样,通过pageContext对象就能够实现可用对象 的属性信息在Servlet与JSP页面之间互相传递。
17
4.6 application对象
• application对象保存了一个Web应用系统中一些 公用的数据,与session对象相比,application对象 所保存的数据可以被所有用户共享,而session对象 则是每个用户专用。当Web服务器中的任一个JSP页 面开始执行时,将产生一个application对象。当服务 器关闭时,则产生的application对象也随之消失。
6
4.2.1 response简介
• 当服务器处理完客户请求时,往往需要发送一 些信息给客户端浏览器,或者需要重定向到其他页 面。和request对象一样,response对象由容器生成 ,作为jspService()方法的参数被传入JSP。因为输 出流是缓冲的,所以可以设置Http状态码和 response头。内部对象response也是一个 HttpServletResponse对象,它提供了几个用于设置 送回浏览器的响应方法(例如,Cookies信息)。
7
4.2.2 response对象应用
response对象主要用来响应用户请求。
类型
Content-Type Content-Language
说明
设定页面使用的字符集,用以说明页面制 作所使用的语言,以指示浏览器调用相应 的字符集显示页面内容 设置网页的刷新时间,或转移到另外的网 页。单位为秒 指定网页在缓存中的有效时间,一旦网页 过期,必须到服务器上重新下载
说明
输出一个换行符号 输出缓冲的数据 关闭输出流,从而可以强制终止当前页面的剩余部分向浏览器输出 清除缓冲区里的数据,并把数据写到客户端
10
4.3.2 out对象应用
• 在JSP中,out对象主要用来向客户端输出数据 。在使用out对象时会自动转换为java.io.PrintWriter 对象,我们实际上使用的是PrintWriter对象,它是属 于javax.servlet.JspWriter类实例。JspWriter对象提 供了几个将内容写入响应缓冲区的方法。由于JspWri ter是从java.io.Writer派生而来的,java.io.Writer提供 了一系列的写方法。因此,JspWriter本身也提供了 一系列print方法。