Java 如何实现jsp页面的会话跟踪

Java 如何实现jsp页面的会话跟踪,java,session,jsp,servlets,tracking,Java,Session,Jsp,Servlets,Tracking,我已经在我的项目中使用了jsp技术。我想做会话跟踪 在我的登录表单中。 注销后,当我按下“后退”按钮时,它应该显示 会话已过期。请帮助我。您不需要手动执行。servletcontainer将为您执行此操作。您可以通过访问跟踪的会话。您只需将登录用户作为会话属性 request.getSession().setAttribute("user", user); 让剩下的代码在上面截取。对此,通常使用过滤器 if (request.getSession().getAttribute("user")

我已经在我的项目中使用了jsp技术。我想做会话跟踪 在我的登录表单中。 注销后,当我按下“后退”按钮时,它应该显示
会话已过期。请帮助我。

您不需要手动执行。servletcontainer将为您执行此操作。您可以通过访问跟踪的会话。您只需将登录用户作为会话属性

request.getSession().setAttribute("user", user);
让剩下的代码在上面截取。对此,通常使用
过滤器

if (request.getSession().getAttribute("user") == null) {
    // Not logged in. Redirect to login page.
    response.sendRedirect("login.jsp");
} else {
    // Logged in. Just continue request.
    chain.doFilter(request, response);
}
当您调用注销时,只需将用户从会话中删除

request.getSession().removeAttribute("user");
servletcontainer还将管理会话到期。当它过期时,
HttpSession
将被丢弃,包括它的所有属性

至于“后退”按钮问题,只需指示客户端不要缓存响应,这样它就会被迫触发一个全新的请求,然后通过
过滤器
。需要通过相应地设置响应头来执行此客户端指令。这也可以在
过滤器中完成

response.setHeader("Cache-Control", "no-cache, no-store, must-revalidate"); // HTTP 1.1.
response.setHeader("Pragma", "no-cache"); // HTTP 1.0.
response.setDateHeader("Expires", 0); // Proxies.

你不需要手动操作。servletcontainer将为您执行此操作。您可以通过访问跟踪的会话。您只需将登录用户作为会话属性

request.getSession().setAttribute("user", user);
让剩下的代码在上面截取。对此,通常使用
过滤器

if (request.getSession().getAttribute("user") == null) {
    // Not logged in. Redirect to login page.
    response.sendRedirect("login.jsp");
} else {
    // Logged in. Just continue request.
    chain.doFilter(request, response);
}
当您调用注销时,只需将用户从会话中删除

request.getSession().removeAttribute("user");
servletcontainer还将管理会话到期。当它过期时,
HttpSession
将被丢弃,包括它的所有属性

至于“后退”按钮问题,只需指示客户端不要缓存响应,这样它就会被迫触发一个全新的请求,然后通过
过滤器
。需要通过相应地设置响应头来执行此客户端指令。这也可以在
过滤器中完成

response.setHeader("Cache-Control", "no-cache, no-store, must-revalidate"); // HTTP 1.1.
response.setHeader("Pragma", "no-cache"); // HTTP 1.0.
response.setDateHeader("Expires", 0); // Proxies.

首先,会话创建和销毁:

使用

实现会话创建(HttpSessionEvent se)
,输出告诉您已创建会话

用一个输出告诉您会话已被破坏,从而实现sessionDestroyed(HttpSessionEvent se)
。也就是说,用户已注销,或者用户的会话已过期


现在,中间部分。对于该过滤器,使用带有相应
web.xml
条目的
*.jsp
。在过滤器内部,使用
doFilter(ServletRequest请求、ServletResponse响应、过滤器链)
。将
ServletRequest
转换为
HttpServletRequest
。使用该请求,您将有许多方法可用于会话跟踪。用户凭证、访问URL、基本上所有可能感兴趣的内容。

首先,会话创建和销毁:

使用

实现会话创建(HttpSessionEvent se)
,输出告诉您已创建会话

用一个输出告诉您会话已被破坏,从而实现sessionDestroyed(HttpSessionEvent se)
。也就是说,用户已注销,或者用户的会话已过期

现在,中间部分。对于该过滤器,使用带有相应
web.xml
条目的
*.jsp
。在过滤器内部,使用
doFilter(ServletRequest请求、ServletResponse响应、过滤器链)
。将
ServletRequest
转换为
HttpServletRequest
。使用该请求,您将有许多方法可用于会话跟踪。用户的凭证,访问URL,基本上所有可能感兴趣的内容