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时它没有重定向,虽然它进入循环如果(null == o)我能理解因为我在控制台中打印该行.THis是我在服务器中获得的输出

这是我在服务器中获得的输出

/dcrmaintenance.jsp

Hey i am in

这告诉我null == o是真的.

页面dcr.jsp访问一个会话对象,由于用户没有登录,它正在按预期获得java.lang.NullPointerException但我无法理解为什么即使进入循环后重定向也没有发生.如果有人可以在哪里我犯了一个错误,我将不胜感激.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值