会话跟踪技术

会话跟踪技术允许服务器确定访问站点的用户、用户访问站点的次数和用户停留站点的时间段
客户端和服务器之间的会话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.隐藏表单域: <input type="hidden">,非常适合步需要大量数据存储的会话应用

<form action="registerServlet" method = "post">
邮件地址:<input type="text" name = "email" ><br>
年龄:<input type="text" name = "age"><br>
<!一使用隐藏表单域来传递两个数据-->
<input type="hidden" name="uname" value="张三">
<input type="hidden" name="pwd" value="123">
<input type= "submit" value="提交到服务器">
</form>

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值