有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

Java检查jsp页面上的Cookie

我正在制作一个需要登录验证的web应用程序,我正在使用cookies来实现这一点。当您登录时,它会创建一个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页面上,因为它没有效率。如果我必须对其中任何一个进行更改,我希望将代码放在class/servlet/filter中。我试着把它放在过滤器和servlet中,但我没有运气让它工作。有人有什么建议吗


共 (2) 个答案

  1. # 1 楼答案

    有两种选择:

    1. 过滤器中的所有内容

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

      <%@ include file="relative url" >
      
  2. # 2 楼答案

    您可以编写过滤器来处理这些请求。下面是编写过滤器

    时需要考虑的几个步骤
    • 检查会话是否已经存在。那么就不需要身份验证了。如果存在现有会话,下面的代码将返回

      request.getSession();
      
    • 如果会话未启动,则检查用户是否存在cookie。如果是,则将用户身份验证转发到索引页

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