java web sessionId 和 JESSIONID的理解

session:一次请求的开始到关闭就是一次会话
比如:访问淘宝,再关闭淘宝,在你这次的访问淘宝的时间段内sesison都是共享的
session的机制:
客户端访问服务器的同时,服务器会产生一个session对象,这个session对象可以用来保存客户的信息,比如用户名和密码
从我理解来看这个对象里有id的属性,服务器会将这个id的属性值复制一份,也就是JESSONID,这个值会自动的和Cookie进行绑定,当响应客户端的同时,cookie会带着JESSIONID放到客户端
总结:本质上来说sessonId和JESSONID就是一个东西,方便客户端和服务器来识别的,判断是否是同一个请求内
验证实例结构图:
在这里插入图片描述

<body>   
 <form action="success.jsp">
  用户名:<input type="text" name="uname" ></br>    
密码:<input type="password" name="upwd"></br>     
 <input type="submit" value="登录">
</form>  
</body>

提交表单单登录成功,会在服务器端产生一个sessionId
我们看success,jsp响应页面:

<body>
  <%
  response.setContentType("utf-8");
  String name=request.getParameter("uname");
 String  pwd=request.getParameter("upwd");
if(name.equals("张三")&& pwd.equals("123")){
  session.setAttribute("uname", name);
 session.setAttribute("upwd", pwd);
 //session.setMaxInactiveInterval(10);//设置有效的非活动时间
  /* 服务器会自动产生一个sessionId
  通过getId()方法来得到这个sessionId
将这个sessionId加入到cookie中,客户端带过来的cookie来获取JESSIONID
 */
 //输出看看sessionId的值,看控制台
 System.out.println("sessionId"+session.getId());//第一次请求访问服务端就会产生一个sessionid
 //这是给客户端回传的cookie
 Cookie cookie =new  Cookie("uname",name);
 response.addCookie(cookie);  
 response.sendRedirect("a.jsp");                                      

看我们的客户端页面a.jsp

<body>
    <%
    //这里重新访问a.jsp页面
    /* 在cookie中可以拿到JESSSIONID
     通过getValue();
    最后发现JSESSIONID和sessionid的值的一样的
    服务端的sessionid和客户端的JSESSIONID是一一对应的
    */
      Cookie[] cookies=request.getCookies();
     for(Cookie s: cookies){
    	 if(s.getName().equals("JSESSIONID")){ //请求响应会在响应中把sessionId复制一份成JESSIONID带给客户端
    	   //看控制台
    		 System.out.print("JSESSIONID"+s.getValue());
    	 }
     }
    %>
</body>

现将控制台清掉:
在这里插入图片描述
访问:
在这里插入图片描述
之后看控制台结果一模一样,由此可见服务端的sessionId和控制台的JESSIONID是一样的
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值