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

下载本文档

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

文档简介

第四讲JSP主要内置对象,管理学院李长仪2010.4.27,主要内容,request对象response对象session对象out对象pageContext对象application对象config对象exception对象,5.1Request对象,1、Request对象的方法Request内置对象代表了客户端的请求信息,主要用于接受客户端通过HTTP协议传送给服务器端的数据。在客户端的请求中如果有参数,则该对象就有一个参数列表。它通常是HttpServletRequest的子类,其作用域就是一次Request请求。Request对象包括很多方法,主要有:getCookies():返回客户端的cookie对象,结果是一个cookie数组。getSession(booleancreate):返回和当前客户端请求相关联的HttpSession对象,如果当前客户端请求没有和任何HttpSession对象关联,那么如果create变量为true,则创建一个HttpSession对象并返回;反之,返回null。,getHeader(Stringname):获得http协议定义的传送文件头信息。getAttribute(Stringname):返回name指定的属性值,若不存在指定的属性,就返回null。getattributeNames():返回request对象所有属性的名字,结果集是一个Enumeration(枚举)类的实例。getHeaderNames():返回所有requestheader的名字,结果集是一个Enumeration(枚举)类的实例。getHeaders(Stringname):返回指定名字的requestheader的所有值,结果集是一个Enumeration(枚举)类的实例。getMethod():返回客户端向服务器端传送数据的方法,一般方法有GET、POST、PUT等类型。,getParameter(Stringname):以字符串的形式返回客户端传来的某一个请求参数的值,该参数名由name指定。当传递给此方法的参数名没有实际参数与之对应时,返回null。另外,当一个参数含有多个值时最好不要使用这个方法。getparameterNames():返回客户端传送给服务器端的所有的参数名,结果集是一个Enumeration(枚举)类的实例。当传递给此方法的参数名没有实际参数与之对应时,返回null。getParameterValues(Stringname):以字符串数组的形式返回指定参数所有值。getQueryString():返回查询字符串,该字符串由客户端以GET方法向服务器端传送。,getRequestURI():获得发出请求字符串的客户端地址。getServletPath():获得客户端所请求的脚本文件的文件路径。setAttribute(Stringname,Java.lang.Objecto):设定名字为name的request参数值,该值由Object类型的o指定。getServerName():获得服务器的名字,如果没有设定服务器名,则返回服务器IP地址。getServerPort():获得服务器的端口号。getRemoteAddr():获得客户端的IP地址。,getRemoteHost():获得客户端主机的名字,若失败,则返回客户端电脑的IP地址。getProtocol():获取客户端向服务器端传送数据所依据的协议名称,如http/1.1。getContentLength():以字节为单位返回客户端请求的大小。如果无法得到该请求的大小,则返回-1。getContentType():获取客户端请求的MIME类型。如果无法得到该请求的MIME类型,那么返回-1。getInputStream():以二进制的形式将客户端的请求以一个ServletInputStream的形式返回。使用此方法可以获得客户端的multipart/form-data数据,可以实现文件上传。isSecure():如果客户机是通过一个安全的访问方式访问的,就返回true;反之,返回false.,getDateHeader():返回一个long类型的数据,表示客户端发送到服务器的头信息中的时间信息。getInitHeader():获取客户端发送到服务器端的头信息中的某一个特定的信息,并转换为int类型。getContextPath():返回环境路径。对于JSP来说,一般是当前Web应用程序的根目录。isRequestedSessionIdValid():返回一个指示客户端请求发送SessionID是否仍然有效的布尔值。isRequestedSessionIdFromCookie():返回一个指示客户端请求发送SessionID是否存在于Cookie中的布尔值。isRequestedSessionIdFromURL():返回一个指示客户端请求发送SessionID是否存在于URL中的布尔值。,2、Request对象的示例(1)获取客户端属性实例该实例是在一个页面request01.jsp中,通过setAttribute()方法设置属性admin和password的值,然后使用重定向到request02.jsp中,在request02.jsp,命名用getAttribute()方法获取相关的值,并显示在页面上。,15程序request02.jsp清单如下:1345新闻管理系统678,9当前登录的用户名为:1011121314当前登录的密码为:15161718,(2)有一个用户登录的页面request03.jsp,其action值为request04.jsp,在request04.jsp中,获取登录的用户名和密码。程序request03.jsp清单如下:,1345新闻发布系统678,91011用户名:12密码131415161718,程序request04.jsp清单如下:1345新闻发布系统678当前登录的用户名为:9当前登录的密码为:1011,Attribute是属性get前必须先setparameter是参数由地址栏或表单控件提供getParameter是获取页面元素的值和url中的值,只能取到字符串,getAttribute是获取保存在相应范围内的值,可以是对象集合等,包括request,session等。HttpServletRequest类有setAttribute()方法,而没有setParameter()方法,3.客户端信息获取实例(实例20、21)这是一个综合应用getProtocol()、getServletPath()、getContentLength()、getMethod()、getRemoteAddr()、getRemoteHost()、getServerName()、getParameterName()等Request对象方法的例子,实现了对一些系统信息的简单的输出显示。,5.2Response对象,Response对象实现HttpServletResponse接口,可对客户的请求做出动态的响应,向客户端发送数据,如Cookie、HTTP文件头信息等,一般是HttpServletResponse类或其子类的一个对象。,1、Response对象的方法addCookie(Cookiecookie):添加一个Cookie对象,用来保存客户端的用户信息,用request的getCookies()方法可以获得这个Cookie。addHeader(Stringname,Stringvalue):添加HTTP文件头,该header将会传到客户端去,如果有同名的header存在,那么原来的header将会被覆盖掉。containsHeader(Stringname):判断指定名字的HTTP文件头是否存在,并返回布尔值。,sendError(intsc):向客户端发送错误信息,例如,505指示服务器内部错误;404指示网页找不到的错误。setHeader(Stringname,Stringvalue):设定指定名字的HTTP文件头的值,如果该值存在,那么它会被新的值覆盖。setContenType(Stringtype):响应设置内容类型头。sendRedirect(URL):可以将用户重定向到一个不同的页面(URL)。(实例22),用response.sendRedirect做转向的原理,它其实是向浏览器发送一个特殊的Header,然后由浏览器来做转向,转到指定的页面,所以用sendRedirect时,浏览器的地址栏上可以看到地址的变化。用则不同,它是直接在server做的,浏览器并不知道,也不和浏览器打交道,这从浏览器的地址并不变化可以看出。,关于CookieCookie是服务器发送给客户端浏览器的体积较小的纯文本信息,以后当用户访问同一个Web服务器时,浏览器会把它们发送给服务器。通过让服务器读取原先保存在客户端的信息,为浏览者提供一系列的方便。例如在线交易过程中标识用户身份,在安全要求不高的场合可避免用户重复输入名字和密码、门户网站的主页定制、有针对性地投放广告等。Cookie存放在客户端,首先要新建一个Cookie,然后设置其属性,再通过response对象的addCookie()方法将其放入客户端,获取Cookie对象可调用request对象的getcookies()方法。,2、Response对象程序应用示例(1)定时页面刷新实例(实例23)这是一个定时刷新页面的例子,例子中指定页面每隔3秒钟刷新一次,服务器重新执行这个程序,产生新的当前时间,然后输出到客户端。第10行利用response.setHeader()方法可以让网页在一定时间内自动更新或者连接到其它网页,这种方式常见于一些必须提供实时信息的网页,如新闻更新系统,第3行使用setHeader方法,当“refresh”的值为“3”时就表示网页每3秒就要刷新一次。实例效果如图所示。,13456新闻发布系统7891213欢迎admin光临,当前时间是:141516新闻发布系统1718,HTTP头的说明Allow服务器支持哪些请求方法(如GET、POST等)。Content-Encoding文档的编码(Encode)方法。Content-Length表示内容长度。Content-Type表示后面的文档属于什么MIME类型。Date当前的GMT时间。Last-Modified文档的最后改动时间。Refresh表示浏览器应该在多少时间之后刷新文档,以秒计。注意Refresh的意义是“N秒之后刷新本页面或访问指定页面”,而不是“每隔N秒刷新本页面或访问指定页面”。,(2)页面嵌入word实例这是一个应用setContenType的例子。这里在第9行使用setCotentType方法设置其值为application/msword,实例效果如图所示。,1345新闻发布系统67811随着计算机技术的发展,数据库起着越来越大的作用。是微软公司的重要产品,是一个全面的数据库平台。数据库引擎为关系型数据和结构化数据提供了更安全可靠的存储功能。1213,(3)页面链接实例(实例22)这是一个应用sendRedirect的例子,重定位到另外一个页面。第9行中,如果选择中的是163,则重定向到;选中sina,则重定向到;如选中sohu,则重定向到。实例效果如图所示。,134友情链接56,18友情链接:192021网易16322sohu23新浪242526,5.3session对象,Session是一种服务器个别处理与记录用户端上网使用者信息的技术。当使用者与服务器联机时,服务器可以给每一个上网的使用者一个Session并设定其中的内容,这些Session都是个别独立的,服务器端可以借此来辨别使用者信息进而提供个别的服务。Session对象用来保存一下需要在与每个用户会话期间保持的数据信息。当用户关闭了所有某个Web服务器上的网页时,则此服务器与客户机的session对象及其变量会自动消失。,getAttribute(Stringname):获得指定名字的属性,如果该属性不存在,将会返回null。getAttributeNames():返回Session对象中存储的每个属性对象,结果集是一个Enumeration类的实例。getCreationTime():返回Session对象被创建的时间,时间的单位为毫秒。getId():返回Session对象在服务器端的编号。每生成一个Session对象,服务器都会给它一个编号,并且该编号不会重复,这样服务器才能根据编号来识别Session,并且正确的处理某一特定的Session及其提供的服务。getLastAccessedTime():返回当前Session对象最后一次被操作的时间,时间的单位为毫秒。,getMaxInactiveInterval():获取Session对象的生存时间,时间的单位为秒。setMaxInactiveInterval(intinterval):设置Session的有效时间(也叫超时时间),时间的单位为秒。removeAttribute(Stringname):删除指定的属性(包含属性名、属性值)。setAttribute(Stringname,java.lang.Objectvalue):设定指定名字的属性值,并且把它存储在Session对象中。isNew():判断目前Session是否为新的Session,若是则返回ture,否则返回false。,实例24、25(1)页面访问人数统计实例这是一个获取访问页面人数的例子。1345新闻发布系统67,8,2324当前访问人数:252627,(2)设置页面有效时间实例效果和代码如下:1345新闻发布系统6,789当前session的有效时间:101112131617更改后session的有效时间:18192021,5.4out对象,Out对象指的是在服务器中向客户端打开的OutputStream,主要用来向客户端输出各种数据类型的内容,并且管理应用服务器上的输出缓冲区,其基类是JspWriter。Out对象的主要方法为:out.print(类型)或out.println(类型)out.newLine():输出一个换行符号。out.clearBuffer():清除缓冲区里的数据,并且把数据写到客户端去。out.clear():清除缓冲区里的数据,但不把数据写到客户端去。,out.flush():输出缓冲区里的数据。out.flush()方法也会清除缓冲区中的数据,但是此方法会先将之前缓冲区中的数据输出至客户端,然后再清除缓冲区中的数据。out.getRemaining():获取缓冲区中没有被占用的空间的大小。out.getBufferSize():获得缓冲区的大小,缓冲区的大小可以用来设置。out.isAutoFlush():返回布尔值,如果autoflush,那么返回true,反之返回false。是否autofush可以用来设置。out.close():关闭输出流,从而可以强制终止当前页面的剩余部分向浏览器输出。,这是一个简单的输出数据的例子,在页面上显示新闻发布系统。效果如图5.12所示。1345新闻发布系统678新闻发布系统);10%1112,2、out对象程序应用示例(实例27),5.5PageContext对象,PageContext对象是PageContext()类的一个实例。该类提供对几种页面属性的访问,并且允许向其他应用组件转发request对象,或者从其他应用组件包含request对象。其主要方法为:getAttribute()返回与指定范围内名称有关的变量或null,findAttribute()用来按照页面请求、会话以及应用程序范围的顺序实现对某个已经命名属性的搜索。setAttribute()用来设置默认页面的范围或指定范围之中的已命名对象,removeAttribute()用来删除默认页面范围或指定范围之中已命名的对象。,5.6Application对象,Application是一个十分重要的对象,一旦创建了Application对象,除非服务器关闭,那么Application对象将一直保持下去。有些服务器还支持global.jsa文件,在global.jsa文件中完成Application、Session对象的构造和注销工作。在服务器启动或者JSP程序创建了Application、Session对象的时候,服务器会自动执行该文件,并完成Application、Session对象的初始化工作,在服务器关闭或者程序中删除了Application、Session对象的注销工作。,Application对象和Session对象相比,含义更加广泛。在使用Session对象时,各个客户端共享一个Session对象,而使用Application对象时,在同一个服务器中的JSP文件共享一个Application对象。,getAttribute(Stringname):返回由name指定名字的Application对象属性的值,这是个Object对象,如果没有,就返回null。getAttributeNames():返回所有Application对象的属性的名字,结果集是一个Enumeration(枚举)类的实例。getInitParameter(Stringname):返回由name指定的名字的application对象的某个属性的初始值,如果没有参数,就返回null。getServerInfo():返回servlet编译器当前版本信息。setAttribute(Stringname,Objectobject):将参数Object指定的对象obj添加到application对象中,并为添加的对象指定一个属性。,1、Application对象的方法,2、Application对象的示例(1)页面计数器的例子这是一个简单的页面计数器的例子,每访问一次该页面,就记一次数。1345新闻发布系统6,7820application对象中的21Num值为222324252627,(2)获取本系统的名称实例通过application对象getInitParameter方法获取应用程序的名称,该名称设置在web.xml中。例子的运行效果如图5.14所示。,1456Application实例78910本系统名称为:1112,5.7config对象,Config对象是JSP页面通过JSPcontainer进行初始化时被传递的对象。Config对象具有Web服务器所需的多种环境设定值,简单点说,Config对象就是提供对初始化JSP的配置数据的访问。使用Config对象的优点是在修改需要在web服务器中处理的变量时,没有必要逐一修改JSP文件、只要修改相应属性文件的内容就可以了,这样不但网络维护工作变的简单,而且能够避免由于忘记修改一些文件而造成的错误。,config对象的主要方

温馨提示

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

评论

0/150

提交评论