JSP内置对象详解_第1页
JSP内置对象详解_第2页
JSP内置对象详解_第3页
JSP内置对象详解_第4页
JSP内置对象详解_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

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

文档简介

第3章JSP内置对象详解JSP基于Java语言,面向对象也是它的一大特色。JSP中包含大量的内置对象和可扩展的组件对象。可以说,对象是JSP编程技术的精髓。在这一章中,我们将介绍JSP中的对象,重点讲述JSP的内置对象,说明它们的功能,并通过示例来介绍它们的使用方法。理论介绍JSP的内置对象技能能灵活应用JSP的内置对象来开发程序要求掌握JSP的内置对象的用法,基本掌握JSP的开发技巧13.1对象与内置对象

对象是典型的具有方法、属性和集合的事物

对象的属性反映了对象的状态,可以读取或设置。对象的集合是由很多不同的与对象有关系的属性和值的配对组成的。

对于一般的对象,要想使用它,必须先声明一个类,再将它实例化,就会得到一个可以使用的对象。

下面我们通过一个例子来讲解一般对象的使用方法。

文件useobject.jsp

JSP程序中8个默认的内置对象

对于它们而言,不用声明就可以直接使用。这8个对象分别是request、response、pageContext、session、application、out、config和page。2内置对象类型代表内容范围Request依赖协议的java.servlet.ServletRequest子类(例如,javax.servlet.HttpServletRequest)触发服务调用的请求requestresponse依赖协议的java.servlet.ServletResponse子类(例如,javax.servlet.HttpServletResponse)对请求的应答pagepageContextJavax.servlet.jsp.PageContext本JSP的页面上下文pagesessionJavax.servlet.http.HttpSession为请求的客户创建的session对象sessionapplicationJavax.servlet.ServletContext从servlet配置对象获得的servlet上下文(如在getServletConfig(),getContext()的调用中)applicationoutJavax.servlet.jsp.JspWriter向输出流写入内容的对象pageconfigjavax.servlet.ServletConfig本JSP的ServletConfigpagepagejava.1ang.Object实现处理本页当前请求的类的实例page33.2request对象

request对象是ServletRequest的一个实例。当客户端请求一个JSP网页时,JSP引擎会将客户端的请求信息包装在这个request对象中,请求信息的内容包括请求的标题头(Header)、信息(如浏览器的版本信息、语言和编码方式等),请求的方式(如HTTP方法:GET、POST、PUT等),请求的参数名称、参数值和客户端的主机名称等,然后将request对象当作jspService方法的HttpServletRequest参数值,所以我们可以通过这个对象来取得有关客户端的请求信息。43.2.1request对象的方法

方法方法描述getAttribute返回请求的给出名字的属性的值getCharacterEncoding返回为请求的输入进行编码的字符集合getContentLength返回请求实体数据的大小getContenType返回请求实体数据的InternetMedia类型getlnputStream返回在请求体中读取二进制数据的输入流getParameter返回包含指定参数的单独值的字符串getParameterName返回本次请求的参数名字getParameterValues返回作为字符串列举的指定参数的值getProtocol返回请求的协议和版本号getReader返回从请求体中读取的文本的缓存数据getRealPath返回运用替换规则从虚拟地址中获得的实际地址getRemoteAddr返回发送请求的接口程序的IP地址getRemoteHost返回发送请求的接口程序的完全限定的主机名getScheme返回发出请求的URL的机制getServerName返回接收请求的服务器的主机名getServerPort返回接收请求的端口5

request对象使用示例

1.request对象获取服务器及客户端的信息

文件request1.jsp

2.用request对象来获取和处理表单传过来的参数值

(1)建立HTML表单

(2)使用GET和POST方法

(3)用request对象处理

用户输入的数据用来存放在request对象里,用javax.servlet.HttpServletRequest来执行,你可以在JSP代码中直接访问request对象。并且处理表单传送过来的数据。

文件request3.htmrequest3.jsp

3.用request对象来获取和处理表单传过来的中文参数值的处理

文件request2.htmrequest2.jsp63.3response对象

response对象的类型是javax.servlet.ServletResponse类的实例,JSP引擎会根据客户端的请求信息建立一个默认的response对象。它用于将浏览器参考信息,如回应的Header、回应本体(HTML的内容)以及服务器端的状态码等信息提供给客户端。73.3.1response对象的方法getCharacterEncoding返回用于MIME编码的字符集合getCharacterEncoding返回用于书写二进制应答数据的输出流getWriter返回用于格式化文本应答的打印程序setContentLength为应答设置内容长度setContentType为应答设置内容类型addCookie添加一个Cookie对象,用来保存客户端的用户信息addHeader添加HTTP文件头(Header),将会传送到客户端containsHeader判断指定的HTTP文件头是否存在sendError向客户端发送错误信息setHeader设定指定名字的HTTP文件头的值sendRedirect重定向客户端的地址83.3.2response对象使用示例

下面的示例程序实现了定时刷新页面的功能

文件refresh.jsp

这个程序指定页面每隔5秒钟自动刷新一遍,服务器重新执行这个程序,产生新的当前时间,然后输出到客户端。所以,页面上显示的时间每隔5秒钟就增加5秒钟,实现了类似时钟的功能。下面的示例程序实现了页面重定向功能

文件request2.htm

输入用户名为admin,进入管理界面;否则,则进入普通用户界面。93.4session对象

session对象是JSP中一个很重要的内部对象,我们使用它来保存某个特定客户端(访问者)一次访问的一些特定信息。

在JSP网络编程中,有多种方法可以保存客户信息,但是最常用、最实用的还是session对象。103.4.1session对象介绍

session对象,实际上就是服务器与客户端之间的“会话”

(1)session可以用来储存访问者的一些特定信息。主机服务器就是根据session来跟踪这些信息的。

(2)session可以创建访问者信息容器。

(3)session可以用来跟踪访问者的访问路径,从中挖掘有用的信息,如访问者的兴趣爱好、访问目的。

用户在Web应用程序中访问同一页面时,session变量始终存在,当用户在应用程序的页之间跳转时,存储在session对象中的变量也不会清除,当然也可以使用session方法显式地结束一个会话和设置空闲会话的超时期限。11

session在JSP程序中是一个内置的对象

每一个客户端都有一个session对象用来存放于这个客户端相关的数据。

在JSP的程序中,通常不用任何代码,就可以直接使用session对象。不过为了确认,可以加入以下代码,以表示需要启动session功能。

<%@pagesession=“true”%>

如果设置上述的session值为false,则说明禁用session功能。

session对象的类为HttpSession,它提供了很多使用的方法。123.4.2session对象的方法

session对象的类是HttpSession。HttpSession由服务器的程序实现,提供HTTP服务器和HTTP客户端之间的会话。会话,就是在给定时间段内持续进行多路连接和请求。会话被用来在多页面请求中保持状态和用户认证。13

session对象的常用方法getCreationTime返回会话创建的时间getId返回会话标识符getLastAccessTime返回客户端上一次发送携带会话账号的时间getSessionContext返回会话相连的上下文getValue返回和应用层数据中指定名字相联系的对象getValueNames返回和会话相连的应用层数据对象的名字invalidate使会话无效,并将其从上下文中移出isNew检查是否客户端参加了会话putValue将指定的对象和使用指定名字的会话应用层数据相连removeValue移去和会话应用层数据中指定名字相连的对象143.4.3session对象使用示例

为说明session对象的具体应用,以用三个页面模拟一个多页面的Web应用为例

(1)第一个页面(q1.html)仅包含一个要求输入用户名字的HTML表单。

文件q1.htm

(2)第二个页面是一个JSP页面(q2.jsp),它通过request对象提取q1.html表单中的thename值,将它存储为name变量,然后将这个name值保存到session对象中。q2.jsp的另外一个任务是询问第二个问题。

(3)第三个页面也是一个JSP页面(q3.jsp),主要任务是显示问答结果,另外一个任务是提取在第二个页面中的用户输入并显示它。

15通常会话管理是通过服务器将SessionID作为一个cookie存储在用户的Web浏览器中来唯一标识每个用户会话

如果浏览器不支持cookie,或者将浏览器设置为不接受cookie,我们可通过URL重写来实现会话管理。

文件hello1.jsp

使用session对象在3个不同的JSP文件中保存信息

文件example0.htm(在accountBalance中必须输入数字)163.5application对象

application对象保存了一个应用系统中一些公用的数据。与session对象相比,application对象是所有客户共享的,而session对象则是每个客户专用的。application对象可以是javax.servlet.ServletContext类型的。ServletContext接口让servlet访问关于其环境的信息。application对象的范围是application。173.5.1application对象的方法方法对象含义getAttribute以Object对象的形式返回对应名称的application对象的属性值getAttributeNames以Enumeration数据形式返回所有application对象的属性名称getInitParameter返回application某个属性的值getServerInfo获得当前版本的Servlet编译器的信息setAttribute设置某个application对象的某个属性值183.5.2application对象的使用示例

一个使用了application对象的计数器

文件appcount.jsp

应用application内建对象,将上面的session例子改为application的例子。

文件application1.htm193.6out对象

out对象用于输出数据,它可以是javax.servlet.jsp.JspWriter的一个实例。out对象的范围是page。

从java.io.Writer拓展而来的公共抽象类JspWriter效仿了java.io.BufferedWriter和java.Io.PrintWriter中的某些功能。但是,不同之处在于它会在打印方法中抛出(throw)java.Io.IOException异常,而PrintWriter不这样做。

JSP中的out对象就是这种类型的。如果page指令选择了autoflush="true",那么当出现由于当前的操作不清空缓存而造成缓冲区溢出的情况时,这个类的所有I/O操作会自动清空缓冲区的内容。如果autoflush="false",那么当操作造成了缓冲区溢出时,这个类的所有的I/O操作将抛出一个IOException。203.6.1out对象的变量

autoFlush

类型为protectedbooleanautoflush

如果变量值为真,则当当前的操作造成缓冲区溢出时,缓冲区会被清空。

如果变量值为假,则如果当前操作造成缓冲区溢出就会抛出一个IOException。

bufferSize

类型为protectedintbufferSize

表示缓冲区目前的大小。初始值根据不同的设备而不同,但是不少于8KB。

DEFAULT_BUFFER

类型为publicstaticfinalintDEFAULT_BUFFER

表示Writer正使用的缺省的缓冲区大小设置。

No_BUFFER

类型为PublicstaticfinalintNO_BUFFER

表示Writer是否处于缓存输出状态。213.6.2Out对象的方法

方法22233.6.3Out对象的使用示例

用out对象输出多种不同类型的数据,包括输出中文

文件out.jsp243.7其他对象

pageContext对象

pageContext对象是javax.servlet.jsp.PageContext类的一个实例。pageContext对象提供了存取所有关于JSP程序执行时所需要用到的属性和方法,如session、application、config、out等对象属性。对于pageContext对象,它的范围是page。

温馨提示

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

评论

0/150

提交评论