版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、会话跟踪、审查,Servlet实际上是一个运行在服务器端的小应用程序;Servlet容器负责调度servlet并控制它们的生命周期。Servlet通常是通过继承HttpServlet来实现的。根据客户要求的方式,只需重写doGet或doPost方法;为了使容器正确识别Servlet,配置文件web.xml必须填写。网络应用程序必须遵循标准的目录结构才能正确运行。本章的目的,了解会话和会话跟踪技术,了解和掌握Cookie对象,了解和掌握请求对象servlet request/Httpseritresponse了解和掌握响应对象servlet response/Httpseritresponse了
2、解和掌握会话对象HttpSession了解和掌握上下文对象(ServletContext)。会话跟踪,超文本传输协议是一种无状态通信协议。当客户端发送请求时,服务器将建立连接,一旦请求结束,服务器将中断连接;这种机制使得服务器无法判断当前连接的客户端是否与先前连接的客户端相同。在某些情况下,有必要找到一种方法来维护服务器上的客户端状态。这种维护客户端状态的技术称为会话跟踪技术;会话跟踪技术可以通过以下四种方式实现:使用Cookie对象:客户端会话使用请求对象(servletRequest或HttpServletRequest)使用会话对象(HttpSession)使用上下文对象(Servlet
3、上下文);5、Cookie 2-1,Cookie用于存储网络服务器发送给客户端的信息。服务器通过在响应头中设置设置Cookie方法来发送Cookie。其语法如下:Set-Cookie:名称=值;Comment=COMMENTDomain=DOMAINNAME最大年龄=秒;Path=路径;安全;Name指定Cookie的名称,VALUE指定Cookie名称的值,Max-age指定Cookie的生命周期(以秒为单位),Domain指定Cookie的有效网址,secure HTTP指定Cookie是否可以在HTTP,6,Cookie 2-2上交换。返回Cookie的最大存储时间,公共void Set
4、MaxAge(int age);设置cookies的最大生存期(以秒为单位),7,演示网址和cookie示例2-1,演示:示例5,设置Cookie,8,8,演示网址和Cookie示例2-2,0)HasCookies=true;/仅当有cookie时,才运行if(hasCookies) out.println(找到的每个cookie的名称和值);/循环迭代,打印COOKIE(int I=0;I cookie . GetVaLue();%,如果请求的网址包含Cookie,将显示名称和值。演示:例6,请求对象,当客户端浏览器向服务器发送请求时,服务器将接收到来自客户端的请求消息;网络容器解析请求消息
5、,并将其封装,以将请求对象传递给Servlet;因此,在Servlet中,如果您想从客户端获取数据并处理它,您需要操作请求对象;javax . servlet . http . httpservletrequest扩展了javax.servlet.ServletRequest接口;您可以通过HttpServletRequest操作客户端的请求。http servlet请求的通用方法1,http servlet请求的通用方法2,http servlet请求的其他方法,案例1:index.html,输入,案例1:RequestTestServlet.java,公共void doGet(HttpSe
6、rvletRequest请求,HttpServletResponse响应)抛出ServletException,IOException request . SetCharacterEncodeing(UTF-8);response . SetContentType(text/html;字符集=UTF-8);printWriter out=response . GetWriter();out . println();out . println();out . println(ShowRequestServletdemo);out . println();out . println();out .
7、 println(request . GetParameter(name): request . GetParameter(name);out . println(request . GetParameter(age): request . GetParameter(age);out . println(request . GetContextPath(): request . GetContextPath();out . println(request . GetMethod(): request . GetMethod();out . println(request . GetRemote
8、AddR(): request . GetRemoteAddR();out . println(request . GetRemoteHost(): request . GetRemoteHost();out . println(request . GetRemotePort(): request . GetRemotePort();out . println();out . println();out . close();例1操作效果,响应对象,当服务器响应客户端的请求时,它向客户端发送响应消息;响应对象用于处理响应消息,其中包含一些要发送给客户端的数据;在Servlet中,如果您需要处理响
9、应,您需要操作响应对象。javax . servlet . http . httpservletresponse扩展了javax.servlet.ServletResponse接口;对客户端的响应可以通过HttpServletResponse操作。HttpServletResponse的常用方法,HttpServletResponse的其他方法,案例2:响应testservlet.java,公共void doget(HttpServletResponse请求请求,Httpservletresponse响应)抛出ServletException,IOException request . Set
10、CharacterEncodeing(UTF-8);response . SetContentType(text/html;字符集=UTF-8);printWriter out=response . GetWriter();现在日期=新日期();/添加刷新标题,并将其设置为每5秒自动刷新一次。/它相当于:response.setintheader(刷新,5);out . println();out . println();out . println(ShowResponseServletDemo);out . println();out . println();Out.println(当前时间
11、为:);out . println(now . ToString();out . println();out . println();out . close();案例二,运行效果,会话对象,所谓会话是指客户端和服务器在一段时间内的一系列请求和响应;会话对象使用户能够在访问网站的多个页面时共享信息。Javax.servlet.http.HttpSession接口用于提供会话对象,如果我们需要在程序中操作会话,可以使用它。您可以通过HttpSession方法获取(或创建)HttpSession对象。22,会话跟踪,请求1,请求2,请求n,服务器为客户端分配一个唯一的会话id来跟踪用户。会话机制,当
12、程序需要为客户的请求创建一个会话时,服务器首先检查客户的请求是否已经包含一个会话标识称为会话标识。如果包含会话id,则表示之前已经为此客户端创建了会话,服务器将根据会话id检索此会话以供使用(如果无法检索,可能会创建一个新会话)。如果客户端请求不包括会话id,则为此客户端创建一个会话,并生成与此会话相关联的会话id。会话id的值应该是一个不会重复的字符串,并且不容易被模仿。此会话id将返回给客户端,以便在此响应中保存。服务器为每个客户端创建一个会话对象,每个对象都有一个会话标识。服务器会将会话标识传递给客户端,并在每次响应时将其写入网址地址栏的Cookie信息中。23,24,Session,h
13、ttp servlet请求的getSession()方法用于创建会话,其语法如下:公共HttpSession getSession(布尔值);如果没有与当前请求相关联的会话,则使用getSession()方法创建会话。如果布尔值为真,并且当前没有与请求相关联的会话,请使用getSession(布尔值)创建会话。如果布尔值为假,则如果没有与当前请求相关联的会话,则返回空值。会话跟踪的用户授权方法在用户登录后跟踪用户。用户授权技术不允许未经授权的用户访问网站上的某些资源。授权用户、未授权用户、请求、请求、HttpSession的常用方法、HttpSession的其他方法,28。会话跟踪示例,该示例
14、演示了会话跟踪的概念。演示:示例7,打印输出=响应。HttpSession会话=request . GetSession();response . SetContentType(CONTENT _ TYPE);如果(会话. isNew()输出. println(“新会话.);Else out.println(现有会话.”;out . println( session id : session . GetId();Out.println(创建时间:);out.println(新日期(会话. GetCreationTime();Out.println(上次访问日期:);out.println(新日
15、期(会话)。本示例将各种会话属性显示为输出结果。HttpSession对象的生命周期,当客户端第一次请求时,创建一个会话。如果会话对象的空闲时间大于服务器设置的会话空闲次数,会话对象将被销毁。服务器调用会话. invalidate(),会话对象将被强制销毁。对应于每个浏览器进程的会话对象是独立的吗?30,上下文对象(ServletContext),每个Web应用程序只能有一个ServletContext,他定义了一个Servlet环境对象Servlet容器将在启动时加载Web应用程序,并为每个Web应用程序(虚拟机)创建一个唯一的ServletContext对象。只有当网络应用程序关闭时,服务
16、上下文对象才会被销毁。ServletContext可以被视为网络应用程序的服务器端组件的共享内存,网络应用程序的共享数据可以存储在其中。ServletContext提供了不同的方法来读取和设置网络应用程序的共享数据。ServletContext有自己的获取上下文对象的方法:在GenericServlet及其扩展类中使用getServletContext()方法;在ServletConfig对象中使用getServletContext()方法。ServletContext对象应该只存储可以在网络应用程序启动时加载的数据,不会被更改(或更改较少),并且需要在所有Servlet之间共享(例如网络应用程序的所有权限信息等)。),ServletContext、summary、HTTP协议的常用方法是无状态的。不同的会话跟踪技术包括会话和Cookie Cookie是一种有状态的实现技术,由服务器生成并发送
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 防火阻燃材料的应用与测评
- 电子商务平台销售合同
- 寄卖合同范本模板
- 泥工劳务分包合同
- 沙石材料运输合同范本
- 物业管理中的环境保护措施
- 房地产开发投资合同
- 输尿管镜项目可行性研究报告
- 平头式塔式起重机臂架轻量化设计研究
- 委托合同中的利益冲突及其救济
- 三年级上册竖式计算练习300题及答案
- 点亮生命-大学生职业生涯发展与就业指导全套教学课件
- 旅居管家策划方案
- 车间消防安全知识培训课件
- 华为经营管理-华为的研发管理(6版)
- 锂离子电池生产工艺流程图
- 平衡计分卡-化战略为行动
- 幼儿园小班下学期期末家长会PPT模板
- 矿山安全培训课件-地下矿山开采安全技术
- GB/T 6417.1-2005金属熔化焊接头缺欠分类及说明
- 《社会主义市场经济理论(第三版)》第七章社会主义市场经济规则论
评论
0/150
提交评论