栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

会话验证过滤器,当会话过期时注销用户

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

会话验证过滤器,当会话过期时注销用户

我有一个会话验证过滤器,当会话过期时该过滤器注销用户。

老实说,这完全没有道理。如果将已登录用户存储为会话的属性,并基于会话中已登录用户的存在来拦截“已登录”状态,则在任何时候都不需要手动注销该用户。会话已过期。当会话到期时,无论如何它的所有属性都将丢失,因此用户将被“自动”注销。

这是一个示例,说明如何

doPost()
使用servlet登录用户,该servlet由登录表单JSP的POST提交调用。

String username = request.getParameter("username");String password = request.getParameter("password");User user = userService.find(username, password);if (user != null) {    request.getSession().setAttribute("user", user); // Login user.    response.sendRedirect("userhome"); // Redirect to user home page.} else {    request.setAttribute("errormessage", "Unknown login, try again"); // Set error message.    request.getRequestDispatcher("/WEB-INF/login.jsp").forward(request, response); // Redisplay login form.}

您会看到,当登录有效时,用户将存储为会话属性。您的代码残留可以只检查它是否为空,或者确定用户是否已登录。只要会话过期,它就会自动变为空。


即使会话期满,这也不会重定向到登录页面

我不知道您要做什么,因为最初的功能要求没有意义。但是,存在两个与会话到期和登录页面相关的常见功能要求。我想您 实际上 需要其中之一:

  1. “当访问者请求一个仅限登录用户的页面时,如何将其重定向到登录页面?”

您需要创建一个过滤器,并将其映射到受限页面的(通用)URL模式上。在过滤器中,只需检查用户是否在会话中,然后继续链接,否则将重定向到登录页面。

    @Overridepublic void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException {    HttpServletRequest request = (HttpServletRequest) req;    HttpServletResponse response = (HttpServletResponse) res;    HttpSession session = request.getSession(false);    if (session == null || session.getAttribute("user") == null) {        response.sendRedirect("login"); // No logged-in user found, so redirect to login page.    } else {        chain.doFilter(req, res); // Logged-in user found, so just continue request.    }}

  1. “会话期满后,如何自动将当前打开的页面重定向到登录页面?”

<meta>
结合使用刷新
HttpSession#getMaxInactiveInterval()

    <meta http-equiv="refresh" content="${pageContext.session.maxInactiveInterval};url=sessionexpired.jsp">

url
每当会话过期时,它将自动将当前页面重定向到给定页面。该
${pageContext.session.maxInactiveInterval}
表达式将内联会话到期时间(以秒为单位),这恰好是该
content
属性所需的时间。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/470193.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号