为什么每次刷新页面sessionid会变化

为什么每次刷新页面sessionid会变化

不是说关闭窗口再打开新窗口才是新的id嘛

这里我在浏览器中测试的时候要进行这样的设置:

http://img1.sycdn.imooc.com//climg/5c998cb7000153ef06750243.jpg

servlet

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;


@WebServlet("/SessionId")
public class SessionId extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    
    public SessionId() {
        super();
    }
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
	    HttpSession session = request.getSession();
	    String encodeURL = response.encodeURL("b.jsp");
	    //System.out.println(encodeURL);
	    System.out.println(encodeURL.substring(encodeURL.indexOf(";")));
	}

	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		doGet(request, response);
	}

}

jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>

</body>
</html>

http://img1.sycdn.imooc.com//climg/5c998c860001218504570117.jpg

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
慕布斯645313 2019-03-26 14:36:04

每次刷新都会重新发送请求,所以服务器会重新分配一个sessionid。

  • 提问者 乃好 #1
    你只说对了一小半,这里的主要原因是因为我在浏览器屏蔽了cookie,自然也就无法将sid写入本地的cookie中,所以当Cookie随着刷新再次提交请求给服务器时,服务器无法在cookie中找到对应的sid,自然就会重新生成不同的sid。此时若是取消cookie屏蔽,使用session.getid方法查看sid,每次刷新得到的sid时一致的
    2019-03-26 22:13:16
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
从网页搭建入门Java Web2018版
  • 参与学习           人
  • 提交作业       1088    份
  • 解答问题       10205    个

如果你有Java语言基础,又想以后从事Java Web开发,那么本路径是你的不二选择!本路径从网页搭建开始入手,通过大量案例来学习Java Web基础。定能助你完成Java Web小白的蜕变!

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师