You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JSP未手动创建Session却已存在,Filter判断异常求助

问题原因及解决方案

核心原因:JSP默认自动创建Session

你访问home.jsp时,尽管没手动写代码创建Session,但JSP的page指令默认开启了session="true",容器在渲染该JSP时会自动创建Session并将对应的JSESSIONID Cookie返回给浏览器。当你提交表单到/login路径时,浏览器会携带这个Cookie,因此Filter里调用req.getSession(false)能拿到之前自动创建的Session。

解决步骤

  1. 修改home.jsp,禁用自动创建Session
    在home.jsp的page指令中添加session="false",让容器不再自动生成Session:

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8" session="false"%>
    
  2. 修正LoginFilter的语法错误
    你提供的LoginFilter.java存在类名错误、重复import等语法问题,修正后的完整代码如下:

    package com.linuxx;
    
    import java.io.IOException;
    import javax.servlet.Filter;
    import javax.servlet.FilterChain;
    import javax.servlet.FilterConfig;
    import javax.servlet.ServletException;
    import javax.servlet.ServletRequest;
    import javax.servlet.ServletResponse;
    import javax.servlet.annotation.WebFilter;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpSession;
    
    @WebFilter("/login")
    public class LoginFilter implements Filter {
    
        @Override
        public void init(FilterConfig filterConfig) throws ServletException {
            // 初始化逻辑(按需添加)
        }
    
        @Override
        public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
            HttpServletRequest req = (HttpServletRequest) request;
            HttpSession session = req.getSession(false);
            System.out.println(session == null); // 此时应输出true
            // 必须调用此方法,否则请求会被拦截终止,无法到达后续处理逻辑
            chain.doFilter(request, response);
        }
    
        @Override
        public void destroy() {
            // 销毁逻辑(按需添加)
        }
    }
    
  3. 清理浏览器Cookie
    重启服务器后,清理浏览器中的JSESSIONID Cookie,避免旧的Session标识干扰测试结果。

内容的提问来源于stack exchange,提问作者Chad_Manoj

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 02:54:30