会话跟踪技术允许服务器确定访问站点的用户、用户访问站点的次数和用户停留站点的时间段
客户端和服务器之间的会话ID和状态信息,通常有四种方法:
1.使用Servlet API中的Session会话机制(存储在Web服务器)
①.当客户端第一次请求会话对象时,服务器会创建一个 Session 对象,并为该 Session 对象分配一个唯一的 SessionID(用来标识这个 Session 对象)。
②.服务器将 SessionID 以 cookie(cookie 名称为:“JSESSIONID”,值为 SessionID 的值)的形式发送给客户端浏览器。然后客户端浏览器再次发送 HTTP 请求时,会将携带 SessionID 的 cookie 随请求一起发送给服务器,服务器从请求中读取 SessionID,然后根据 SessionID 找到对应的 Session 对象。
③.Session 对象在如下 3 种情况下会被销毁:
Session 过期;
调用 session.invalidate() 方法,手动销毁 Session;
服务器关闭或者应用被卸载。
//获取session对象 HttpSession session=request.getSession(); //设置会话的过期时间 request.getSession().setMaxInactiveInterval(100);
2.使用cookie (存储在客户端浏览器)
cookie c1=new cookie( "name" , name) ;
cookie c2=new cookie( "pwd", pwd);
//设置cookie得保存时间
c1.setMaxAge(60*60);
c2.setMaxAge(60*60);
//写入cookie
response.addcookie(c1);
response.addcookie(c2);
request.getRequestDispatcher("sccuess.jsp").forward(request,response);
3.URL重写:URL可以在后面附加参数,和服务器的请求一 起发送,这些参数为 名字/值 对
<%
HttpSession session1=request.getSession();
String url=request.getContextPath();
String newurl=response.encodeURL(url+"aa.jsp");
if(newur1.endswith(session1.getId())){
out . print ( "cookie被禁用,只能用url重写得方式了");
out. print (newurl);
}else{
out. print ( "cookie没有被禁用");out. print(newurl);
}
%>
4.隐藏表单域: ,非常适合步需要大量数据存储的会话应用



