>>>ses-6ren">
gpt4 book ai didi

java session - session 何时实际创建?

转载 作者:行者123 更新时间:2023-12-01 13:09:10 26 4
gpt4 key购买 nike

我的代码,

        HttpSession session = request.getSession(false);
// Details.l.info(" 1>>>>session ID is : " + session.getId());

Details.l.info("["+this.getClass()+"]"+"request from "+request.getRemoteHost());

if(session==null){
session = request.getSession(true);
Details.l.info("["+this.getClass()+"]"+"Session Created!!!!!!!!!!!!!!!!!!!#####$@@@@");
Details.l.info(" 2>>>>>session ID is : " + session.getId());
}

Details.l.info(" 3>>>>>session ID is : " + session.getId());
// System.out.println("session ID is : " + session.getId());
Details DTO = new Details(request);
String loc = DTO.findMyLocation();
session.invalidate();

这里,我在 servlet 的最开始创建一个 session ,其逻辑是,如果 session 已经存在,则为该特定用户提供 session ID,或者如果该特定用户不存在 session ,请创建一个新的 session ,然后给出新的 session ID,这里新的 session 是在 IF 条件内创建的,我已经以所有可能的方式进行了测试(我使用了两个不同的系统,并尝试在一个系统上访问 servlet),但是控制永远不会进入创建 session 的循环。但我看到每次我访问 servlet 时都会得到一个新的 session ID!有人可以解释一下我的 servlet 的这种行为吗?我对 session 和 servlet 非常陌生!提前致谢..

最佳答案

JSP 隐式创建 session ,除非在页面指令中将 session 设置为 false:

<%@ page session="false" %>

这就是为什么您的 servlet 总是看到已经存在的 session 。只需在浏览器地址栏中输入 servlet 的地址(前提是您发布的代码在 doGet() 方法中),而不是通过 JSP 来调用它,您就应该看到 servlet创建一个新 session 。

编辑:请注意,规范中提到此 session 属性,它可用于指定 JSP 不参与 session 。没有什么可以保证调用 JSP 时不会创建任何 session 。只是,如果您尝试从此 JSP 访问 session ,则会出现异常。

关于java session - session 何时实际创建?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23030622/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com