会话:
客户端打开与服务器的连接发出请求到服务器响应客户端请求的全过程称之为会话 ;
会话跟踪:
对同一个用户对服务器的连续的请求和接受响应的监视 ;
会话跟踪技术的特点,应用场景:
1> URL重写:URL(统一资源定位符)是Web上特定页面的地址,URL重写的技术就是在URL结尾添加一个附加数据以标识该会话,把会话ID通过URL的信息传递过去,以便在服务器端进行识别不同的用户
(url?参数名=值&参数名=值)
<div class="menu_title">博客标题:
<a href="showarticle.jsp?articletitle=<%=articletitle%>">
2>隐藏表单域:将会话ID添加到HTML表单元素中提交到服务器,此表单元素并不在客户端显示 ;(但是要和form表单一起使用
隐藏表单域,<input text="hidden" name="username" value="Tom">来传递值,用名字来取出
String userName=request.getParameter("username");
<input type="hidden" name="userid" value="<%=userid%>">
c) Cookie:
保存在客户端:
setMaxAge(int expiry) 以秒为单位
setValue(String )放入数据
永久性的cookie 设置有效时间就是永久性,会以文件的形式保存在浏览器的临时文件里面
临时性的cookie 客户关掉浏览器就没了 ,存储在浏览器的缓存里面(内存)
//创建Cookie对象,准 备实现自动登录(只能存字符串) Cookie cookiename=new Cookie("userName",userName); cookiename.setMaxAge(60*60); Cookie cookiepwd=new Cookie("userPwd",userPwd); cookiepwd.setMaxAge(60*60); //把对象响应出去给(浏览 器)客户端 response.addCookie(cookiename); response.addCookie(cookiepwd);
d) session:
每一个用户都有一个不同的session,各个用户之间是不能共享的,是每个用户所独享的,在session中可以存放信息。
在服务器端会创建一个session对象,产生一个sessionID来标识这个session对象,然后将这个sessionID放入到Cookie中发送到客户端,下一次访问时,sessionID会发送到服务器,在服务器端进行识别不同的用户
Session是依赖Cookie的,如果Cookie被禁用,那么session也将失效 ;
Cookie与Session的区别:
Cookie是存在浏览器中的;
Session是存在服务器中的;
Cookie的安全性要低于Session;
Cookie可能会被用户禁用;
Session的数据是存在服务器内存中,关掉浏览器,会清空Session;
临时性Cookie存在浏览器的缓存中,关掉浏览器,会清空;
永久性Cookie是存在临时文件中,到达有效期前,一直存在;