会话跟踪简介课件_第1页
会话跟踪简介课件_第2页
会话跟踪简介课件_第3页
会话跟踪简介课件_第4页
会话跟踪简介课件_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

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

文档简介

会话跟踪简介,回顾,Servlet使用户可以在服务器上运行Java代码和生成动态内容HTTPServlet发送HTTP请求和接受HTTP响应Servlet生命周期由三种方法组成,即init()、service()和destroy()ServletAPI包含于两个包中,分别为javax.servlet和javax.servlet.httpServlet继承GenericServlet类或HttpServlet类。利用JBuilder2005开发Servlet,2,PPT学习交流,目标,定义会话跟踪创建会话标识会话跟踪技术讲解Servlet通信方法描述Servlet上下文状态创建程序以访问上下文状态开发程序以修改上下文状态,3,PPT学习交流,会话跟踪,请求1,请求2,请求n,.,服务器将唯一的会话ID分配给客户端以跟踪用户,4,PPT学习交流,会话跟踪,HttpServletRequest的getSession()方法用于创建会话,其语法如下:,publicHttpSessiongetSession();publicHttpSessiongetSession(booleanvalue);,如果没有与当前请求关联的会话,则getSession()方法用于创建会话。,如果布尔值为true且当前没有与请求关联的会话,则使用getSession(booleanvalue)创建会话。如果布尔值为false,如果没有与当前请求关联的会话,返回null。,5,PPT学习交流,会话跟踪技术,会话跟踪技术,用户授权,隐藏表单域,URL重写,Cookie,以下是各种会话跟踪技术:,6,PPT学习交流,用户授权,会话跟踪的用户授权方法在用户登录之后跟踪用户。用户授权技术不允许未经授权的用户访问网站上的某些资源,已授权用户,未授权用户,请求,请求,7,PPT学习交流,隐藏表单域,将会话跟踪字段的隐藏表单域添加到HTML页面,但是不会显示在客户端浏览器中,在GET和POST方法中指定用于存储有关会话消息的名称和值。,8,PPT学习交流,URL重写,URL(统一资源定位)重写技术将一个唯一的会话ID添加到URL结尾,以标识该会话。例如,重写以下URL传递会话ID10,原始URL:用附加信息重写的URL:用添加的参数重写的URL:用自定义修改重写的URL:;$sessionid$10,9,PPT学习交流,Cookie2-1,Cookie用于存储Web服务器发送给客户端的信息。服务器通过设置响应标题中的Set-Cookie方法来发送cookie。其语法如下:,Set-Cookie:Name=VALUE;Comment=COMMENT;Domain=DOMAINNAME;Max-age=SECONDS;Path=PATH;secure;,Name指定Cookie的名称,VALUE指定Cookie名称的值,Max-age指定Cookie的生命周期(以秒表示),Domain指定Cookie有效的URL,secureHTTP指定Cookie是否可以在HTTP上交换,10,PPT学习交流,Cookie2-2,javax.servlet.http.cookies包提供由Cookie类实现的多种方法,publicintgetMaxAge();,返回Cookie的最大保存时间,publicvoidsetMaxAge(intage);,设置cookie的最大生命周期(以秒表示),11,PPT学习交流,演示URL和Cookie的示例2-1,演示:示例5,以下示例讲解URL重写和Cookie的概念,response.setContentType(CONTENT_TYPE);PrintWriterout=response.getWriter();out.println();out.println(UrlRedirectServlet);out.println();StringcontextPath=request.getContextPath();StringencodedUrl=response.encodeURL(contextPath+/cookiereader);out.println(此页面将使用URL重写(如有必要));out.println(转至default.jsp页面单击此处.);,getContextPath()返回上下文路径,encodeURL()将字符串转换为URL路径,12,PPT学习交流,演示URL和Cookie的示例2-2,Cookiecookie=null;Cookiecookies=request.getCookies();booleanhasCookies=false;if(cookies!=null)hasCookies=true;if(hasCookies)out.println(“找到的每个cookie的名称和值);for(inti=0;icookies.length;i+)cookie=cookiesi;cookie.getName();cookie.getValue();,如果请求的URL包含Cookie,则显示名称和值,演示:示例6,13,PPT学习交流,会话跟踪示例,此示例演示会话跟踪的概念,演示:示例7,PrintWriterout=response.getWriter();HttpSessionsession=request.getSession();response.setContentType(CONTENT_TYPE);if(session.isNew()out.println(“新建的会话.);elseout.println(“已有会话.);out.println(“会话ID:+session.getId();out.println(创建时间:);out.println(newDate(session.getCreationTime();out.println(最后访问日期:);out.println(newDate(session.getLastAccessedTime();,此示例将各种会话属性作为输出结果显示出来。,14,PPT学习交流,Servlet通信方法,publicvoidinclude(ServletRequestreq,ServletResponseres);,Servlet访问网络资源以满足客户端请求Servlet使用RequestDispatcher接口的forward()和include()方法访问网络资源,将请求从一个Servlet转送到同一个服务器上的另一个Servlet,publicvoidforward(ServletRequestreq,ServletResponseres);,在一个Servlet中包含另一个Servlet的内容,15,PPT学习交流,Servlet间通信2-1,以下示例演示Servlet间通信,Stringuid=request.getParameter(txtuserid);response.setContentType(CONTENT_TYPE);PrintWriterout=response.getWriter();ServletContextcontext=getServletContext();context.setAttribute(userid,uid);RequestDispatcherdispatcher=getServletContext().getRequestDispatcher(/usersServlet2);if(dispatcher=null)response.sendError(response.SC_NO_CONTENT);dispatcher.forward(request,response);out.close();,演示:示例9,使用getServletContext()方法创建RequestDispatcher对象,用于访问另一个Servlet的内容,16,PPT学习交流,Servlet间通信2-2,Class.forName(sun.jdbc.odbc.JdbcOdbcDriver);Connectioncon=DriverManager.getConnection(jdbc:odbc:petclinicapps,sa,“sa);Statements=con.createStatement();ResultSetrs=s.executeQuery(Select*fromCustomerRegistrationwhereUserId=+obj.toString()+);booleanflag=rs.next();if(flag=true)password=rs.getString(2);confirm=rs.getString(3);firstname=rs.getString(4);lastname=rs.getString(5);gender=rs.getString(6);age=rs.getString(7);,调用第一个Servlet时,此Servlet创建与jdbc:odbc驱动程序的连接,并获取用户的详细信息,17,PPT学习交流,Servlet上下文,将所有Servlet所共有的属性和资源存储于ServletContext接口对象。处理上下文属性的方法为:,publicObjectgetAttribute(Stringname);,返回Servlet容器属性名称。如果该名称没有属性则返回null,publicvoidsetAttribute(Stringname,Objectobject);,将对象绑定到Servlet上下文中给定的属性名称,publicvoidremoveAttribute(Stringname);,删除给定名称的属性,18,PPT学习交流,聊天程序的业务,要求使用Servlet编写聊天程序完成如下功能:用户输入一个昵称后,可以参加聊天,该昵称用于聊天应用程序的用户名用户通过在一个文本框中输入发送的消息后点击命令按钮参与聊天用户应看见所有参与聊天的人和他们的全部聊天记录。没有其他的权限控制用户应能够使用中文聊天,19,PPT学习交流,总结,可以使用会话跟踪对客户端发出的一系列请求进行

温馨提示

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

评论

0/150

提交评论