gpt4 book ai didi

java - 我的 Java EE 应用程序中的 session ID 不同

转载 作者:行者123 更新时间:2023-12-03 18:07:30 25 4
gpt4 key购买 nike

我编写了一个带有自定义登录系统的应用程序。然后为它编写了我自己的安全过滤器,它设置了可以访问的区域。然而,我总是被重定向到登录页面,然后是登录主页的索引页面。我发现 session ID 与我尝试使用受限内容时登录时的 session ID 不同。这是我的代码:

public class securtityFilter implements Filter {

public void init(FilterConfig filterConfig) throws ServletException {
//To change body of implemented methods use File | Settings | File Templates.
}

public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
HttpServletRequest req = (HttpServletRequest) servletRequest;
// if there is no userBean, then they have not gone through
// the login, so kick them to the login page
if(null==req.getSession().getAttribute("username"))
{
((HttpServletResponse)servletResponse).sendRedirect("../Login.jsp");
System.out.println("Redirected - No session");

}
// otherwise, let them go to the page/resource they want
filterChain.doFilter(servletRequest, servletResponse);
System.out.println("Gone through Filter");

// System.out.println("In Filter Servlet: "+ req.getSession().getId());

}

public void destroy() {
//To change body of implemented methods use File | Settings | File Templates.
}
}

这是我的 web.xml 文件:

  <filter>
<filter-name>SecurityFilter</filter-name>
<filter-class>filters.securtityFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>SecurityFilter</filter-name>
<url-pattern>/add/*</url-pattern>
</filter-mapping>

最佳答案

在您的登录 servlet 中

while (rs.next())
{
HttpSession session = request.getSession(true);
String tmp = rs.getString(1);
System.out.println(tmp);
session.setAttribute("username", tmp);
count++;
}

所以如果你的 session 中没有用户名属性,那是因为这个代码块没有被执行。我假设您正在遍历数据库查询的结果,因此请检查您正在执行的实际查询是否返回任何结果。

关于java - 我的 Java EE 应用程序中的 session ID 不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1182038/

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