我在我的项目中使用了jsp技术。我想在我的登录表单中进行会话跟踪 。 注销后,当我按回按钮它应该显示 会话已过期。请帮助我。如何实现jsp页面的会话跟踪
1
A
回答
1
您不需要手动执行此操作。 servletcontainer将为你做。您可以通过HttpServletRequest#getSession()
访问跟踪的会话。您只需将登录用户设置为会话属性即可。
request.getSession().setAttribute("user", user);
让其余的代码拦截。您通常使用Filter
。
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
将被简单地删除,包括它的所有属性。
至于后退按钮的问题,只是指示客户端不缓存响应,以便它被迫启动一个全新的请求,然后通过Filter
。这个客户端指令需要通过相应地设置响应头来进行。这也可以在Filter
中完成。
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.
0
首先,会话创建和销毁:
执行sessionCreated(HttpSessionEvent se)
带有输出,告诉您已创建会话。
执行sessionDestroyed(HttpSessionEvent se)
带有输出,告诉您会话已被销毁。也就是说,用户已注销,或者用户的会话已过期。
现在,中间部分。对于该过滤器,使用filter,对应的web.xml
条目为*.jsp
。在过滤器内部,使用doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
。将ServletRequest
转换为HttpServletRequest
。使用该请求,您可以使用许多方法来进行会话跟踪。用户的凭据,访问URL,基本上所有可能感兴趣的内容。
相关问题
- 1. 会话跟踪
- 2. 如何跟踪JSP
- 3. JSP/Servlets会话+ PHP:跟踪会话 - JSON /数据库或HttpSessionListener?
- 4. 会话跟踪Servlet
- 5. SIP会话跟踪
- 6. 错误页面 - 如何在JSP中打印堆栈跟踪
- 7. 跟踪的Oracle会话
- 8. 如何跟踪会话创建
- 9. 如何跟踪Glassfish实例中的会话数量?
- 10. 如何实现的Marketo跟踪代码
- 11. 如何跟踪人们关闭浏览器的页面。会话或日志
- 12. 跟踪信息不会在页面
- 13. Hibernate会话跟踪对象
- 14. 如何实现会话超时页面使用asp.net mvc的
- 15. 如何实现NSLog跟踪CGPoint坐标
- 16. 如何实现对象修改跟踪
- 17. NHibernate如何实现更改跟踪?
- 18. 如何跟踪刷新页面
- 19. 如何跟踪讲话
- 20. 如何跟踪PHP文件callstack用于呈现页面?
- 21. 跟踪Cookie而非JS的跟踪器用户会话Like Google
- 22. 如何跟踪JSP中的网页更改JSF1.2
- 23. Google Analytics - 页面跟踪
- 24. Woocommerce,如何查看当前页面是订单跟踪页面?
- 25. 跟踪Facebook会话的最佳方式
- 26. 其他会话上的Oracle SQL跟踪
- 27. 跟踪会话变量中的语言
- 28. 使用Spring跟踪用户登录和注销会话跟踪
- 29. 如何在会话过期后重定向jsp页面?
- 30. 如何在JSP页面中获取JavaScript会话属性?