Javaweb|Filter过滤网页登录状态时的无限循环问题
问题描述一个网页的页面判断用户登录的逻辑是必不可少的,网站一般只在规定的登录页面进行登录跳转进入下一个页面,故判断用户是否登录是每一个页面所必须要进行的一个必要逻辑;这个时候就会使用filter在jsp与servlet之间的所有网页来进行拦截,判断是否处于登录状态,然而也会出现一个问题:当我们进入登录界面时,发现页面将会一直处在登录界面,无法跳转至其他界面。

图1.1 登录前

图1.2 登陆后对上述描述的情况进行分析后,发现是由于当进入到登录界面所处的jsp当中时,登录信息也会被拦截下来,无法进入到登录界面的逻辑当中进行登录信息的存储;故判断用户未登录,就会返回登陆界面,这个时候需要解决的问题就是如何避免在我们的登录逻辑界面不被filter拦截。解决方案解决这个问题,首先在web文件夹下新建一个home文件夹,然后将所需拦截的jsp页面单独放在home文件夹下,而将登录jsp放在其他文件夹下即可,我们让filter的拦截变为拦截home下的所有jsp页面,如下图;

图2.1 创建一个home文件夹WebFilter修改拦截路径;将@WebFilter("/*")修改为@WebFilter("/home/*")即可完成对home文件夹下的jsp页面跳转的拦截。@WebFilter("/home/*") // 将拦截的路径变为home文件夹下的jsp。结语该博客主要讲述了在做javaweb页面登录项目时,使用WebFilter进行页面拦截时所遇的逻辑登陆界面被拦截的问题,导致无法进入登录的逻辑处理界面此问题,希望对读者有所帮助。实习编辑:刘凤莲责编 :WZY能力越强,责任越大。实事求是,严谨细致。(where2go团队)微信号:算法与编程之美
赞 (0)
