java未登录访问页面_Java筛选器将未登录的用户重定向到登录页面

我试图制作一个过滤器来阻止未登录的用户访问某些页面。为此,我使用以下doFilter方法制作了一个过滤器类

HttpServletRequest request = (HttpServletRequest) req;

HttpServletResponse response = (HttpServletResponse) res;

String url = request.getRequestURI();

boolean allowedRequest = false;

System.out.println(url);

if(urlList.contains(url)) {

allowedRequest = true;

System.out.println("in list");

}

if (!allowedRequest) {

Object o = request.getSession().getAttribute("UserInfo");

if (null == o) {

System.out.println("Hey i am in");

response.sendRedirect("/login.jsp");

}

}

chain.doFilter(req, res);

} // end of doFilter

为了允许不需要用户登录的页面,我在init()中创建了一个arraylist url-list。

现在发生了一件非常奇怪的愚蠢的事情。假设我有两个页面home.jsp和dcr.jsp。当我尝试不登录而访问home.jsp时,我已成功重定向至login.jsp,但是当我尝试访问dcr.jsp时,尽管它进入了循环if(null

== o),但它并未重定向,我可以理解因为我正在console.This中打印该行,这是我在服务器中获得的输出这是我在服务器中获得的输出

/dcrmaintenance.jsp

Hey i am in

这告诉我null == o是正确的。

页面dcr.jsp访问一个会话对象,并且由于用户未登录,它正按预期方式获取java.lang.NullPointerException,但我不明白为什么即使进入循环后重定向仍未发生。我犯了一个错误,将不胜感激。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值