第9章使用会话追踪(sessiontracking)9
1会话与会话追踪Internet通信协议可以分为两大类:有连接协议和无连接协议,两者的最大差别在于客户端和服务器端之间维持联机上的不同
session的引入:鉴于http是无状态的协议,当完成客户端和服务器的传递信息后,就断开之间的联系,这样就造成了怎么样在几个页面之间传递信息的问题
我们Jsp程序中很多参数需要从数据库中读取,有的参数实际读取一次就可以,如果设计成每个用户每产生一个页面都要读取数据库,很显然,数据库的负载很大,同时也浪费时间,虽然可能有数据库连接池优化,但是尽量少使用数据库是我们编程的原则
Session,中文经常翻译为“会话”
sessiontracking(会话追踪)是指一类用来客户端与服务器之间保持状态的解决方案,简单地说,当一个客户在多个页面间切换时,服务器会保存该用户的信息
2实现会话追踪的4种方式(1)使用持续Cookies(PersistentCookie)(2)使用包含额外参数的URL(URLRewriting)
(3)建立含有数据的隐藏表单字段(HiddenFormField)
(4)使用内建session对象
相对于安全级别来说第四种最高了,session是指在一段时间内客户端和服务器之间的一连串的相关的交互过程
下面这段代码先将会话信息记录在HashMap中,保存在服务器端,并用sessionID标识,然后把sessionID保存在名为“JSESSIONID”的Cookie中
用户请求到达服务器后,先从Cookie中取出sessionID,然后从HashMap中取出会话信息
这样就实现了会话追踪
虽然Cookie强大且持续性高,但是由于有些用户因为担心Cookie对个人隐私的威胁,会关闭Cookie,一旦如此,便无法利用Cookie来达到会话追踪的功