第4章 内置对象_第1页
第4章 内置对象_第2页
第4章 内置对象_第3页
第4章 内置对象_第4页
第4章 内置对象_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1第4章

内置对象

JSP内置对象,也称为隐含对象(ImplicitObject),由JSP容器自动为JSP页面提供。这些对象不需要预先声明就可以直接在脚本程序中进行使用。JSP容器提供了以下几个内置对象,它们是:request、response、out、session、application、config、pageContext、page、exception和cookie,本章将对它们进行详细介绍。2本章知识要点:

掌握请求对象request掌握响应对象response掌握输出对象out和页面上下文对象pageContext掌握会话对象session掌握全局应用程序对象application34.1request请求对象 request对象是HttpServletRequest接口的一个实例,因此它可使用HttpServletRequest接口的方法,可以很方便地取得客户端的各种信息。request对象的生命周期是由JSP容器自动控制。当客户端通过HTTP协议请求一个JSP页面时,JSP容器就会创建request对象并将请求信息包装到request对象中;当JSP容器处理完请求后,request对象就会被销毁。4.1.1request简介 Servlet容器将客户端信息封装在一个代表客户端的request对象中,该对象是javax.servlet.ServletRequest的子类型。封装到HttpServletRequest对象中的客户端信息包括请求头(Header)、系统信息(比如编码方式)、请求方式(比如GET或POST)、请求参数信息、cookie和其他信息。44.1.2request对象应用 request对象中常用方法有getParameter()、getRemoteUser和getRealPath()等方法。通过这些方法可以获得客户端的数据。在本节通过几个实例说明如何使用这些方法。5客户端使用协议为:

<%

String

protocol=request.getProtocol();

out.println(protocol);

%>

获得接收客户端提交信息的页面:

<%

String

path=request.getServletPath();

out.println(path);

%>

接收客户端提交信息的长度:

<%

int

length=request.getContentLength();

out.println(length);

%>

客户提交信息的方式:

<%

String

method=request.getMethod();

out.println(method);

%>

HTTP文件头中User-Agent的值:

<%

String

header1=request.getHeader("User-Agent");

out.println(header1);

%>

HTTP文件头中accept的值:

<%

String

header2=request.getHeader("accept");

out.println(header2);

%>

HTTP文件头中Host的值:

<%

String

header3=request.getHeader("Host");

out.println(header3);

%>

HTTP文件头中accept-encoding的值:

<%

String

header4=request.getHeader("accept-encoding");

out.println(header4);

%>

服务器名称:

<%

String

serverName=request.getServerName();

out.println(serverName);

%>

服务器端口号:

<%

int

serverPort=request.getServerPort();

out.println(serverPort);

%>

客户端的IP地址:

<%

String

IP=request.getRemoteAddr();

out.println(IP);

%>

客户端主机的名称:

<%

String

clientName=request.getRemoteHost();

out.println(clientName);

%>

4.2response响应对象response对象是javax.servlet.ServletResponse接口中一个针对HTTP协议和实现的子类。response对象是表示服务器对请求的响应的HttpServletResponse对象,包含服务器向客户机做出信息的应答信息。response对象响应信息包含的内容包括:MIME类型的定义、保存的Cookie、连接到Web资源的URL等。104.2.1response简介

当服务器处理完客户请求时,往往需要发送一些信息给客户端浏览器,或者需要重定向到其他页面。和request对象一样,response对象由容器生成,作为jspService()方法的参数被传入JSP。因为输出流是缓冲的,所以可以设置Http状态码和response头。内部对象response也是一个HttpServletResponse对象,它提供了几个用于设置送回浏览器的响应方法(例如,Cookies信息)。114.2.2response对象应用 response对象主要用来响应用户请求。12类型说明用法Content-TypeContent-Language设定页面使用的字符集,用以说明页面制作所使用的语言,以指示浏览器调用相应的字符集显示页面内容<http-equiv="Content-Type"Content="text/html;Charset=gb2312"><http-equiv="Content-Language"Content="zh-CN">Refresh设置网页的刷新时间,或转移到另外的网页。单位为秒<Metahttp-equiv="Refresh"Content="30"><Metahttp-equiv="Refresh"Content="5;Url=">Expires指定网页在缓存中的有效时间,一旦网页过期,必须到服务器上重新下载<Metahttp-equiv="Expires"Content="0"><Metahttp-equiv="Expires"Content="Wed,26Feb200708:21:57GMT">必须使用GMT的时间格式,或直接设为0(数字表示多少时间后过期)Pragma禁止浏览器从本地机的缓存中调阅页面内容<http-equiv="Pragma"Content="No-cach">Set-Cookie设定cookie,如果网页过期,存储的cookie也被删除。需要注意的也是必须使用GMT时间<http-equiv="Set-Cookie"Content="cookievalue=xxx;expires=Wednesday,21-Oct-0715:14:21GMT;path=/">Pics-label设置网页的评定等级。在IE的internet选项中有一项内容设置,可以防止浏览一些受限制的网站,而网站的限制级别就是通过该参数来设置的<metahttp-equiv="Pics-label"contect="">windows-Target强制页面在当前窗口中以独立页面显示,可以防止网页被别人当作一个frame页调用<metahttp-equiv="windows-Target"contect="_top">4.3out输出对象 out对象是向客户端输出流进行写操作的对象。在JSP页面中,可以使用out对象将所需的信息发送到客户端浏览器。在JSP容器对JSP页面进行编译时,out对象会被转换成java.io.PrintWriter对象。134.3.1out简介

out对象的基类是JspWriter。out对象主要的方法是:print()方法和println()方法。两者区别在于print()方法输出完后,并不结束当前行,而println()方法在输出完毕后,会结束当前行。上述两种方法在化JSP页面设计中是经常用到的,它们可以输出各种格式的数据类型,如字符型、整型、浮点型、布尔型甚至可以是一个对象,还可以是字符串与变量的混合型以及表达式。14方法说明newLine()输出一个换行符号flush()输出缓冲的数据close()关闭输出流,从而可以强制终止当前页面的剩余部分向浏览器输出clearBuffer()清除缓冲区里的数据,并把数据写到客户端clear()清除缓冲区里的数据,而不把数据写到客户端getBufferSize()获得缓冲区的大小,缓冲区的大小可用<%@pagebuffer=”Size”%>设置isAutoFlush()返回布尔值,若是autoflush则返回true,否则返回falsegetRemaining()获得缓冲区没有使用的空间的大小154.3.2out对象应用

在JSP中,out对象主要用来向客户端输出数据。在使用out对象时会自动转换为java.io.PrintWriter对象,我们实际上使用的是PrintWriter对象,它是属于javax.servlet.JspWriter类实例。JspWriter对象提供了几个将内容写入响应缓冲区的方法。由于JspWriter是从java.io.Writer派生而来的,java.io.Writer提供了一系列的写方法。因此,JspWriter本身也提供了一系列print方法。164.4pageContext对象 pageContext对象被封装成javax.servlet.jsp.PageContext接口,它代表当前运行页面的一些属性。pageContext对象的创建和初始化都是由容器来完成,在JSP页面中可以直接使用pageContext对象。4.4.1pageContext简介 pageContext对象在JSP容器执行jspService()方法之前就已经被初始化了,它的主要功能是让JSP容器控制其他隐含对象。例如,对象的生成与初始化、释放对象本身。pageContext对象提供了对JSP默认的隐含对象,以及其他可用对象进行操作的基本方法。这样,通过pageContext对象就能够实现可用对象的属性信息在Servlet与JSP页面之间互相传递。174.4.2pageContext对象应用

虽然pageContext对象可以访问HttpSession和ServletContext对象,但是通常情况下,JSP容器已经为我们HttpSession和ServletContext的实例,即session和application内置对象。184.5session会话对象 session对象是JSP中一个很重要的内置对象,类型为javax.servlet.http.HttpSession。当用户与服务器连接时,服务器为每个用户创建一个session对象,并设定其中内容。默认情况下,session对象在用户第一次连接到服务器时由Web服务器自动创建并设定session对象的属性值,然后被关联到request对象。Web开发人员主要使用session对象来维护会话状态。194.5.1session简介

session对象的类型为HttpSession。session对象提供了一些常用方法,通过这些方法可以维护客户端与服务器端的会话状态。20方法说明setAttribute(String,Object)将value对象以name名称绑定到会话,变成其name属性。如果name属性已经存在,其对应的对象被转换为value对象。getAttribute(String)从会话session对象中取得name属性,如果name属性不存在,则返回null。getId()此方法返回会话的标识。getAttributeNames()返回session对象中存储的每一个对象,结果为Enumeration类实例removeAttribute(String)从会话中删除name属性。如果name属性不存在,则这不会执行其他操作,也不会抛出异常。longgetCrertionTime()返回创建时间,单位为毫秒,从1970年1月1目算起getLastAccessedTime()返回在会话创建的时间内Web容器接收到客户最后一次发出请求的时间。setMaxInactiveInterval(int)设定允许客户请求之间的最长时间间隔。如果请求之间超过这个时间,JSP容器则会认为请求属于两个不同的会话getMaxInactiveInterval()返回在会话期间内客户请求的最长时间间隔,以秒为单位getld()返回会话标识sessionIDisNew()检查当前客户是否属于新的会话invalidate()使会话失效,同时删除其属性对象getServletContext()返回当前会话所在的上下文环境,ServletContext对象可以使Servlet与Web容器进行通信。214.5.2session对象应用

在实际使用中,我们经常用session对象来判断该用户是否具有访问某个页面的权限,防止无权限用户访问用户本不能访问的页面。我们可以单独的编写一个名为check.jsp文件,将它用include指令包含到每一个JSP页面中,这样当用户非法访问时,check.jsp文件会从用户的session对象中取出用户的用户名,该用户名是在通过了身份验证后写入的。所以只要读出的值为空,就可判断当前用户无访问权限.这时会利用response对象重定向到登录界面进行身份验证,并提示错误信息。224.6application对象 application对象保存了一个Web应用系统中一些

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论