java - JSP 登录页面 session 超时

标签 java spring jsp servlets mybatis

我已经创建了一个模拟酒店管理员的登录页面。现在我想给它添加 session 时间功能。换句话说,假设用户离开计算机(他仍然登录到管理网页)大约 10 分钟。然后当他回来的时候,我想结束当前 session ,然后重定向到登录页面(这样更安全,他的个人信息永远不会丢失!)。

我该如何实现?

public class LoginServlet extends SpringInjectedServlet {
@Autowired
private LoginService loginService;


@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
        throws ServletException, IOException {

    String id = req.getParameter("id");
    String password = req.getParameter("password");

    String error = null;

    //code for checking correct input
}

// mock
private boolean check(String id, String password) {
    return loginService.authenticate(id, password);
}

@Override
public void init() throws ServletException {
    System.out.println("LoginServlet");
}
}

最佳答案

使用身份验证过滤器检查每个请求中的 session

 HttpSession session = request.getSession();
 if (session == null || session.getAttribute("username") == null) {
        // Forward the control to login.jsp if authentication fails or session expires
        request.getRequestDispatcher("/login.jsp").forward(request,
            response);
 }

这将为每个请求检查来自 session 的登录用户名,如果它为空或 session 已过期,它将重定向到登录页面。

在 web.xml 中添加这个

<session-config>
  <session-timeout>5</session-timeout>
</session-config>

查一下here .

关于java - JSP 登录页面 session 超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20383513/

相关文章:

java - 没有文件所有者的 S3 HDFS - AccessControlException

java - Spring 每 15 分钟执行一次方法

eclipse - 如何检测用户是否在 Eclipse/Tomcat 中的本地主机上?

java - 自定义 JSP 标记文件 <%@ variable ..> 不起作用?

java Spring REST Controller 全局安全注释

java - int循环的计​​算和比较?

java - 以编程方式更改 Android 中的 DatePicker 日历大小

spring - 如何在没有 web.xml 的情况下将 Struts2 添加到 Web 应用程序?

java - Spring Boot - Thymeleaf 和 Json 模板

java - 是否可以在不覆盖 JSP 处理的情况下将 servlet 映射到/*