Java - 在jsp页面上检查Cookie

时间:2016-01-03 15:43:11

标签: java jsp servlets cookies servlet-filters

我正在制作一个需要登录身份验证的网络应用程序,并且我正在使用Cookie来执行此操作。登录时,会创建一个cookie。当您访问任何jsp页面时,我有这段代码来检查cookie是否存在:

<%
String userName = null;

Cookie[] cookies = request.getCookies();
if(cookies !=null){
    for(Cookie cookie : cookies){
        if(cookie.getName().equals("ADMIN")) userName = cookie.getValue();
    }
}
if(userName == null) response.sendRedirect("login.jsp");
%>

它有效,但我不想把它放在我所有的jsp页面上,因为它没有效果。如果我必须对其中任何一个进行更改,我希望将代码放在类/ servlet / filter中。我已经尝试将它放在过滤器和servlet中,但我没有运气让它工作。有没有人有任何建议?

2 个答案:

答案 0 :(得分:3)

有两种选择:

  1. 过滤器中的所有内容

  2. 将您的代码放在单独的文件中并将其包含在每个页面中

    <%@ include file="relative url" >
    

答案 1 :(得分:0)

您可以编写处理这些请求的过滤器。以下是编写过滤器时需要考虑的几个步骤

  • 检查是否已存在会话。然后,不需要身份验证。如果现有会话在那里,则代码返回

    request.getSession();
    
  • 如果不是会话,则检查用户是否存在cookie。如果是,则将用户转发到索引页面。

  • 如果cookie也不存在,则将用户重定向到登录页面 提供身份验证凭据。