gpt4 book ai didi

java - 为什么 session 不为空

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:36:07 24 4
gpt4 key购买 nike

我使用以下代码将用户传送到欢迎页面(如果他们已经登录),或者如果他们没有登录则返回登录页面。

        HttpSession session = request.getSession(false);

if(session == null){
request.getRequestDispatcher("/WEB-INF/login.jsp").forward(request, response);
}else{
//User already logged in. Send to home.
response.sendRedirect("Welcome");
}

第一次,它工作正常,但是如果我重新加载页面,即使它把用户发送到欢迎页面并且不可避免地给我发回 500 错误,因为该页面上有一些元素无法加载,因为用户登录in代码还没有被执行。

即使在重新加载页面时未声明 request.getSession(true), session 是否会自动启动?有办法避免这种情况吗?

最佳答案

可能 session 是在转发到 login.jsp 时创建的。这是必要的,因为必须将用户分配给未经身份验证的请求,然后 对其进行身份验证。如果您想根据用户是否登录进行重定向,请使用 SessionContextgetCallerPrincipal

更多信息,查看this (somewhat old, but still relevant) article

关于java - 为什么 session 不为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7642647/

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