JSPChapter4JSP内置对象.ppt_第1页
JSPChapter4JSP内置对象.ppt_第2页
JSPChapter4JSP内置对象.ppt_第3页
JSPChapter4JSP内置对象.ppt_第4页
JSPChapter4JSP内置对象.ppt_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

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

文档简介

JSP内置对象,主讲:索望 成都信息工程学院 网络工程系,2,Chapter 4 JSP中的内置对象,什么是内置对象,JSP中有哪些内置对象; 内置对象的说明,包括来自哪个类或接口,主要功能等; 内置对象的常用方法及使用 参看API文档 结合示例程序,3,JSP内置对象概述,JSP根据Servlet API提供了一些内置对象。在JSP页面中无需声明而直接使用的对象,又称为隐含对象(Implicit Object)。 out对象 request对象 response对象 application对象 session对象 pageContext对象 page对象 config对象 exception对象,与Input/Output 有关的内置对象,JSP执行时,与Context有关的内置对象,与Servlet有关的内置对象,与Error有关的内置对象,4,JSP内置对象概述,5,属性(Attribute)与范围(Scope),request、session、application和pageContext对象可以借助setAttribute()和getAttribute()方法来实现数据分享。 但是,四者的区别在于数据分享的范围不同。 JSP有四种范围,分别是 Page Request Session Application,page1.jsp CH5 - Page1.jsp ,page2.jsp CH5 - Page2.jsp ,6,Page范围,Page范围:单单一页JSP页面的范围,用pageContext对象设定和读取属性。,PageScope1.jsp CH5 - Page1.jsp ,PageScope2.jsp CH5 - Page2.jsp ,PageScope3.jsp CH5 - PageScope3.jsp Page 范围 - pageContext ,7,Request范围,Request范围指在一JSP网页发出请求到另一个JSP网页之间,随后这个属性就失效。,RequestScope1.jsp CH5 - RequestScope1.jsp Request 范围 - request ,RequestScope2.jsp CH5 - RequestScope2.jsp Request 范围 - request ,8,Session、Application范围,Session范围: 为一段用户持续和服务器所连接的时间,但与服务器短线后,属性就无效。 数据存入session对象 Application范围: 从服务器一开始运行服务到服务器关闭为止。 数据存入application对象,9,HTTP协议的Get和Post方法,Get和Post是HTTP协议中网页之间传递参数或信息的方法 Get方式是把传送的信息附加在URL之后,所以客户端能清楚的看到传送的信息。 Get方法传送的信息数据的长度有限,受限于浏览器对URL的最大长度限制-1024字节, 用户名: 密码: , 用户名: 密码: ,10,request对象,request对象是javax.servlet.HttpServletRequest类型的对象,当客户端请求一个JSP页面时,JSP容器会将客户端的请求信息封装在这个request对象中。 请求信息的内容包括请求的头信息(Header)、系统信息(比如:编码方式)、请求的方式(比如:GET或POST)、请求的参数名称和参数值等信息 。,11,request对象,解决一个实际应用的题目:实现用户登录,即从页面通过表单Form提交登录信息给服务器处理。 解决思路,两个部分: 1、在客户端设计表单,让用户填写登录信息,并提交给服务器 2、服务器接收来自客户端的信息,由服务器来验证登录信息。,Login.jsp 用户名: 密码: ,LoginCheck.jsp 姓名: 密码: ,12,request对象, “); out.println(“参数值: “ + request.getParameter(current_param) + “); %,13,request对象的方法,14,汉字问题两种解决方法,当利用request.getParameter得到Form种元素的时候,默认的情况字符编码为ISO-8859-1,这种编码不能正确的显示汉字。 目前有两种解决方法, 一种是在执行操作之前,设置request的编码格式,语法是:request.setCharacterEncoding(”UTF-8“);” 另一种方法是转换字符编码,15,获取Cookie,Cookie为Web应用程序保存用户相关信息提供了一种有用的方法。Cookie是一小段文本信息,伴随着用户请求和页面在Web服务器和浏览器之间传递。 用户每次访问站点时,Web应用程序都可以读取Cookie包含的信息。例如,当用户访问站点时,可以利用Cookie保存用户首选项或其他信息,这样当用户下次再访问站点时,应用程序就可以检索以前保存的信息。 在JSP中,可以通过request对象中的getCookies()方法获取Cookie中的数据。获取Cookie的方法如下: Cookie cookie = request.getCookies();,16, Request对象演示 Request 请求信息 JSP 请求方法: 请求 URI: 请求协议: Servlet 路径 远程用户: 远程地址: 远程主机: 路径信息: 内容长度: 内容类型: 服务器名: 服务器端口: 您使用的浏览器是: ,17,reponse对象,response 对象代表服务器对客户端的响应,可以说是通过response对象来组织发送到客户端的信息。 response对象是实现javax.servlet.http.HttpServletResponse 接口的类的对象 一般不建议使用,需要向客户端发送数据时直接用out对象,18,reponse对象的部分方法,19,改变HTTP文件头,利用response对象,可以动态地改变Http文件头的值,也就改变了客户端的响应。 方法: setHeader(String name,String Value) 比如让客户端自动每隔10秒刷新一次,, 定时刷新页面 response对象演示 当前时间为: ,20,网页重定位,对于response对象,最常用到的是sendRedirect()方法,可以使用这个方法将当前客户端的请求转到其它页面去。 代码格式为:response.sendRedirect(“URL地址“); 和指令的最大区别: 使用只能在本网站内跳转,但使用response.sendRedirect跳转到任何一个地址的页面; sendRedirect会改变地址栏的地址; sendRedirect将导致request、response对象生命周期结束。,21,session对象,session对象是实现了java.servlet.http.HttpSession接口的类的对象,它表示当前的用户会话信息。 用户在Web应用程序中访问同一页面时,session变量始终存在,当用户在应用程序的页之间跳转时,存储在session对象中的变量也不会清除,当然也可以使用session方法显式地结束一个会话和设置空闲会话的超时期限。,22,session对象,session对象,实际上就是服务器与客户端之间的“会话” session可以用来储存访问者的一些特定信息。主机服务器就是根据session来跟踪这些信息的。 session可以创建访问者信息容器。 session可以用来跟踪访问者的访问路径,从中挖掘有用的信息,如访问者的兴趣爱好、访问目的。,23,session对象,对于session对象中,经常用到的方法是setAttribute()、getAttribute()和removeAttribute()。分别可以对session中的属性进行存取和删除操作。 session对象的主要用途也是保存信息,当用户第一次到达网站时,系统为其分配一个session。session和application一样也使用自己的自定义属性 注销session对象:session.invalidate();,24,继续解决实际问题:用户成功登录以后,跳转到会员页面,并且让用户以会员身份浏览网站。 思路: HTTP是一种无状态协议,所以需要对用户的状态进行保存。 用session对象,但如何实现呢?,LoginCheck.jsp ,Member.jsp ,25,session示例,session1.jsp 你的session ID: ,26,application对象,application对象是实现javax.servlet.ServletContext接口的类的对象。 application对象保存了一个Web应用中的一些公用的数据。与session对象相比,application对象是所有客户共享的,而session对象则是每个客户专用的。 站点所有的用户公用一个application对象,当站点服务器开启的时候,application就被创建,直到网站关闭。利用application这一特性,可以方便地创建聊天室和网站计数器等常用站点应用程序。,27,application对象方法,28,application读取初始化参数,见示例程序,29,application的自定义属性,public void setAttribute(String key, Object obj),将对象obj添加到application对象中,并为添加的对象添加一个索引关键字key。 public Object getAttribute(String key),获取application对象中含有关键字key的对象。由于任何对象都可以添加到application中,因此用此方法取回对象的时候,需要强制转化为原来的类型。,30,out对象,当JSP转换为Servlet后,out对象转换为javax.servlet.jsp.JspWriter类的对象 out对象用print()和println()方法将信息传送到客户端浏览器。其他一些常用的方法是: newLine()的功能是输出一个换行符, out.flush()的功能是输出缓冲的内容。 out.close()的功能是关闭输出流。 out对象的生命周期是当前页面。因此对于每一个JSP页面,都有一个out对象,31,out对象,使用 page 指令元素的 autoFlush 来设定 JSP 页面是否使用缓冲区功能。设定 autoFlush 的值为 false 则必须在程序中明确的使用flush()输出资,否则缓冲区满的话,会发生IOException的异常: JSP Buffer overflow,32,out对象,在缓冲区还没有满之前,信息会真正被送出至客户端,在这之前,还有机会重设送出的信息,如果缓冲区满,信息将会被清出(flush)并送至客户端。 out.clear()与out.clearBuffer()都是清空缓冲区,也不会把数据送出到客户端,区别是clear()方法在缓冲区满了时会抛出异常,而clearBuffer()方法不会。, “); out.flush();/输出缓冲区数据 out.println(“你看到这段文字了吗?“); out.clearBuffer();/清除缓冲区数据 out.println(“你这段看到了吧!“); %,33,out对象, out对象演示 out对象演示 “); out.println(“信息二 “); out.flush(); out.println(“剩余缓冲区大小为:“+ out.getRemaining()+ “字节“); out.println(“默认缓冲区大小为:“+ out.getBufferSize()+ “字节“); out.println(“是否设置AutoFlush:“+ out.isAutoFlush(); % ,/out.flush();,34,pageContext对象,pageContext对象存储了本JSP页面的相关信息、属性。 提供对JSP页面内所有的对象及名字空间的访问,也就是说它可以访问到本页所在的Session,也可以取本页面所在的application的某一属性值 pageContext对象实现了pageContext类。,35,pageContext对象,程序示例, pageContext 对象演示 pageContext 对象演示 “); % ,36,网页重定向的多种方式, response.sendRedirect(“target.jsp”); response.setHeader(“Refresh”,”1;URL=target.jsp”); request.getRequestDispatcher(“target.jsp“).forward(request, response); pageContext.forward(“target.jsp”);,37,page对象和config对象,page对象代表JSP本身,更准确地说,它代表JSP被转译后的Servlet,因此,它可以调用Servlet类所定义的方法。 config 对象里存放着一些 Servlet 初始的数据结构。config对象实现于javax.servlet.ServletConfig 接口 config 对象和 page

温馨提示

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

评论

0/150

提交评论