第9章 使用会话追踪(session tracking).ppt
《第9章 使用会话追踪(session tracking).ppt》由会员分享,可在线阅读,更多相关《第9章 使用会话追踪(session tracking).ppt(24页珍藏版)》请在三一办公上搜索。
1、第9章 使用会话追踪(session tracking),9.1 会话与会话追踪,Internet通信协议可以分为两大类:有连接协议和无连接协议,两者的最大差别在于客户端和服务器端之间维持联机上的不同。session的引入:鉴于http是无状态的协议,当完成客户端和服务器的传递信息后,就断开之间的联系,这样就造成了怎么样在几个页面之间传递信息的问题.我们Jsp程序中很多参数需要从数据库中读取,有的参数实际读取一次就可以,如果设计成每个用户每产生一个页面都要读取数据库,很显然,数据库的负载很大,同时也浪费时间,虽然可能有数据库连接池优化,但是尽量少使用数据库是我们编程的原则.Session,中文
2、经常翻译为“会话”。session tracking(会话追踪)是指一类用来客户端与服务器之间保持状态的解决方案,简单地说,当一个客户在多个页面间切换时,服务器会保存该用户的信息。,9.2 实现会话追踪的4种方式,(1)使用持续Cookies(Persistent Cookie)(2)使用包含额外参数的URL(URL Rewriting)。(3)建立含有数据的隐藏表单字段(Hidden Form Field)。(4)使用内建session 对象。相对于安全级别来说第四种最高了,session是指在一段时间内客户端和服务器之间的一连串的相关的交互过程。,下面这段代码先将会话信息记录在HashMa
3、p中,保存在服务器端,并用sessionID标识,然后把sessionID保存在名为“JSESSIONID”的Cookie中。用户请求到达服务器后,先从Cookie中取出sessionID,然后从HashMap中取出会话信息。这样就实现了会话追踪。虽然Cookie强大且持续性高,但是由于有些用户因为担心Cookie对个人隐私的威胁,会关闭Cookie,一旦如此,便无法利用Cookie来达到会话追踪的功能。,9.2.1 使用Cookie,Cookie是一个小小的文本文件,它是将会话信息记录在这个文本文件内,每个页面都去Cookie中提取以前的会话信息String sessionID=makeUn
4、iqueString();/是用来产生唯一的 session id HashMap sessionInfo=new HashMap();HashMap globaTable=findTableStoringSessions();globeTable.put(sessionID,sessionInfo);Cookie sessionCookie=new Cookie(JSESSION,sessionID);sessionCookie setPath(“/”);response.addCookie(sessionCookie);,9.2.2 URL重写,URL重写是利用GET的方法,在URL的尾部
5、添加一些额外的参数来达到会话追踪(session tracking)的目的,服务器将这个标识符与它所存储的有关会话的数据关联起来。URL看起来如下:http:/host/path/file.html;jsessionid=1234,使用URL重写的优点是Cookie被禁用或者根本不支持的情况下依旧能够工作。但也有很多缺点:必须对所有指向您的网站的URL进行编码。所有页面必须动态生成。不能使用预先记录下来的URL进行访问,或者从其他网站链接进行访问。,9.2.3 隐藏表单字段,隐藏表单字段的方法,是利用HTML内Hidden的属性,把客户端的信息,在用户不察觉的情形下,偷偷地随着请求一起传送给到
6、服务器处理,这样一来,就可以进行会话跟踪的任务了。可以下列的方法来做隐藏表单字段的会话追踪。,9.2.4 使用内建session对象,传统的会话追踪方式使用比较麻烦,JSP使用内建的session对象可以非常方便地实现会话追踪,JSP的会话机制基于Cookie或URL重写技术,融合了这两种技术的优点,当客户端允许使用Cookie时,内建session对象使用Cookie进行会话追踪,如果客户端禁用Cookie,则选择使用URL重写。,(1)获取session对象例如把购物车作为属性存储在session中,在其他JSP页面中可以通过session再获得购物车。/在JSP页面中可以直接使用sess
7、ionShoppingCart cart=(ShoppingCart)session.getAttribute(cart);内建的session对象是javax.servlet.http.HttpSession类的实例,如果在JavaBean或者Servlet中使用session就需要先从当前的request对象中取得,例如:/得到用户session和购物篮HttpSession session=request.getSession();ShoppingCart cart=(ShoppingCart)session.getAttribute(cart);,(2)读写session中的数据向se
8、ssion中存入对象使用setAttribute方法,通过getAttribute方法读取对象。从session返回的值注意要转换成合适的类型,要注意检查结果是否为null。例如下面一段代码:HttpSession session=request.getSession();SomeClass value=(SomeClass)session.getAttribute(someID);if(value=null)value=new SomeClass(.);session.setAttribute(someID,value);doSomethingWith(value);,(3)废弃sessio
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第9章 使用会话追踪session tracking 使用 会话 追踪 session tracking
![提示](https://www.31ppt.com/images/bang_tan.gif)
链接地址:https://www.31ppt.com/p-6111876.html