我正在制作一个需要登录身份验证的网络应用程序,并且我正在使用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中,但我没有运气让它工作。有没有人有任何建议?
答案 0 :(得分:3)
有两种选择:
过滤器中的所有内容
将您的代码放在单独的文件中并将其包含在每个页面中
<%@ include file="relative url" >
答案 1 :(得分:0)
您可以编写处理这些请求的过滤器。以下是编写过滤器时需要考虑的几个步骤
检查是否已存在会话。然后,不需要身份验证。如果现有会话在那里,则代码返回
request.getSession();
如果不是会话,则检查用户是否存在cookie。如果是,则将用户转发到索引页面。
如果cookie也不存在,则将用户重定向到登录页面 提供身份验证凭据。