Java - 检查 jsp 页面上的 Cookie
Posted
技术标签:
【中文标题】Java - 检查 jsp 页面上的 Cookie【英文标题】:Java - Checking for Cookies on jsp pages 【发布时间】:2016-04-07 07:25:32 【问题描述】:我正在制作一个需要登录身份验证的 Web 应用程序,并且我正在使用 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 中,但我没有让它工作。有人有什么建议吗?
【问题讨论】:
使用过滤器,并修复代码。如果您不发布代码并且不说出问题所在,我们无法判断您的代码存在什么问题以及如何解决它。 对于初学者:这种方法非常不安全。不要那样做。 你能解决这个问题吗? 是的,我设法解决了,稍后会发布我的代码 【参考方案1】:有两种选择:
过滤器中的所有内容
Check Cookie in Filter Redirect from filter将您的代码放在一个单独的文件中,并将其包含在每个页面中
<%@ include file="relative url" >
【讨论】:
【参考方案2】:您可以编写过滤器来处理这些请求。以下是编写过滤器时需要考虑的几个步骤
检查是否已经存在会话。然后不需要身份验证。如果存在现有会话,则返回以下代码
request.getSession();
如果没有会话,则检查用户是否存在 cookie。如果是,则验证用户转发到索引页面。
如果 cookie 也不存在,则将用户重定向到登录页面 提供身份验证凭据。
【讨论】:
以上是关于Java - 检查 jsp 页面上的 Cookie的主要内容,如果未能解决你的问题,请参考以下文章