会话跟踪简介.ppt
- 文档编号:1423694
- 上传时间:2022-10-22
- 格式:PPT
- 页数:20
- 大小:940KB
会话跟踪简介.ppt
《会话跟踪简介.ppt》由会员分享,可在线阅读,更多相关《会话跟踪简介.ppt(20页珍藏版)》请在冰豆网上搜索。
会话跟踪简介,回顾,Servlet使用户可以在服务器上运行Java代码和生成动态内容HTTPServlet发送HTTP请求和接受HTTP响应Servlet生命周期由三种方法组成,即init()、service()和destroy()ServletAPI包含于两个包中,分别为javax.servlet和javax.servlet.httpServlet继承GenericServlet类或HttpServlet类。
利用JBuilder2005开发Servlet,2,目标,定义会话跟踪创建会话标识会话跟踪技术讲解Servlet通信方法描述Servlet上下文状态创建程序以访问上下文状态开发程序以修改上下文状态,3,会话跟踪,请求1,请求2,请求n,.,服务器将唯一的会话ID分配给客户端以跟踪用户,4,会话跟踪,HttpServletRequest的getSession()方法用于创建会话,其语法如下:
publicHttpSessiongetSession();publicHttpSessiongetSession(booleanvalue);,如果没有与当前请求关联的会话,则getSession()方法用于创建会话。
如果布尔值为true且当前没有与请求关联的会话,则使用getSession(booleanvalue)创建会话。
如果布尔值为false,如果没有与当前请求关联的会话,返回null。
5,会话跟踪技术,会话跟踪技术,用户授权,隐藏表单域,URL重写,Cookie,以下是各种会话跟踪技术:
6,用户授权,会话跟踪的用户授权方法在用户登录之后跟踪用户。
用户授权技术不允许未经授权的用户访问网站上的某些资源,已授权用户,未授权用户,请求,请求,7,隐藏表单域,将会话跟踪字段的隐藏表单域添加到HTML页面,但是不会显示在客户端浏览器中,在GET和POST方法中指定用于存储有关会话消息的名称和值。
8,URL重写,URL(统一资源定位)重写技术将一个唯一的会话ID添加到URL结尾,以标识该会话。
例如,重写以下URL传递会话ID10,原始URL:
http:
/server:
post/servlet/Rewritten用附加信息重写的URL:
http:
/server:
post/servlet/Rewritten/10用添加的参数重写的URL:
http:
/server:
post/servlet/Rewritten?
sessionid=10用自定义修改重写的URL:
http:
/server:
post/servlet/Rewritten;$sessionid$10,9,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,Cookie2-2,javax.servlet.http.cookies包提供由Cookie类实现的多种方法,publicintgetMaxAge();,返回Cookie的最大保存时间,publicvoidsetMaxAge(intage);,设置cookie的最大生命周期(以秒表示),11,演示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,演示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,会话跟踪示例,此示例演示会话跟踪的概念,演示:
示例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,Servlet通信方法,publicvoidinclude(ServletRequestreq,ServletResponseres);,Servlet访问网络资源以满足客户端请求Servlet使用RequestDispatcher接口的forward()和include()方法访问网络资源,将请求从一个Servlet转送到同一个服务器上的另一个Servlet,publicvoidforward(ServletRequestreq,ServletResponseres);,在一个Servlet中包含另一个Servlet的内容,15,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,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,Servlet上下文,将所有Servlet所共有的属性和资源存储于ServletContext接口对象。
处理上下文属性的方法为:
publicObjectgetAttribute(Stringname);,返回Servlet容器属性名称。
如果该名称没有属性则返回null,publicvoidsetAttribute(Stringname,Objectobject);,将对象绑定到Servlet上下文中给定的属性名称,publicvoidremoveAttribute(Stringname);,删除给定名称的属性,18,聊天程序的业务,要求使用Servlet编写聊天程序完成如下功能:
用户输入一个昵称后,可以参加聊天,该昵称用于聊天应用程序的用户名用户通过在一个文本框中输入发送的消息后点击命令按钮参与聊天用户应看见所有参与聊天的人和他们的全部聊天记录。
没有其他的权限控制用户应能够使用中文聊天,19,总结,可以使用会话跟踪对客户端发出的一系列请求进行跟踪不同的会话跟踪技术包括用户授权、隐藏表单字段、URL重写和CookieServlet使用RequestDispatcher接口的forward()和include()方法进行通信Servlet上下文用于存储不同Servlet的信息ServletConfig接口的getServletContext()方法用于配置Servlet上下文,20,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 会话 跟踪 简介