1. 什么是会话跟踪
一旦客户端第一次请求服务器,则会开始同服务器的会话。在会话持续期间,可以发出多次请求,进行操作。对于服务器端来说,需要把用户的一些重要操作或选择记录并保存,以区分不同用户的操作以及在会话持续期内的一些选择。 2. 常见的会话跟踪技术
a) 使用HttpSession对象 setAttribute(String,Object) b) 使用隐藏表单域
c) 使用URL重写: http://localhost:8080/app/doXX.jsp?name=aa&pwd=bb d) Cookie
3. 各种会话跟踪技术详解
HttpSession(会话): 由Web容器负责管理和给会话分配一个唯一的会话ID,并且在服务器端给每个Session对象分配空间,以存储会话期间的信息。缺点是当同时开启的会话过多时占用服务器端资源,并且session的维护依赖于服务器,具有易失性。优点是不占用网络带宽,可以存储大量信息
Cookie:它是一种利用网络带宽向客户端磁盘写入信息以实现会话跟踪的一种技术。提取Cookie要使用请求对象request,写入cookie要使用响应对象response。即每次客户端请求服务器时,会自动把本机默认存储位置中的Cookie信息附加于request,发送到服务器端。当服务器端要向客户端写入cookie时,只需要创建Cookie对象,指定cookie的名和值,以及有效时间,并把cookie对象附加在响应对象response中。随着服务器对于客户端的响应,就会把cookie信息写入客户端。
优点:不占用服务器端资源,可以实现永久存储,利用客户端的磁盘空间
缺点:只能存储String类型的信息,且存储数据量较少,一般在4k以内。它会随着请求和响应在Internet上传输,所以占用网络带宽,并且安全性差,及易被人窃取并利用cookie传播病毒,在cookie中不要保存如密码等重要信息。所以通常浏览器中会禁用Cookie,使得这种会话跟踪方式失效。
隐藏表单域:利用在页面之间传递内容,以到达较简单的会话跟踪。利用request.getParameter(“名”)来取得值。优点:简单 缺点:只适合于在2-3个页面之间传递信息。如果信息传递的页面过多,则需要重复的创建 ,使得页面代码复杂。另外,它value属性也是只能保存String类型值。
URL重写:是指在进行页面转向时,在url地址后使用?附加请求参数,以达到向另一页面或servlet传递信息的目的,实现简单的会话跟踪。注意,在servlet中,如果要使用URL重写技术,需要使用response.encodeUrl()或者response.encodeRedirectUrl()方法先对URL进行编码,以确保准确性,然后再进行页面转向(超链接)或重定向。优点:简单易实现。缺点:只能传递String类型信息,且利用url传递,不安全,会暴露在地址栏中,不能传输密码类的重要信息,且数据量会在255个字符之内。
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- niushuan.com 版权所有 赣ICP备2024042780号-2
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务