Javaweb用过滤器写防跳墙功能和退出登录
创始人
2024-11-11 13:09:27
0

一、什么是防跳墙功能:

        防跳墙功能通常指的是防止用户在未完成认证的情况下直接访问受保护资源的功能。在 Web 开发中,这种功能通常被称为“登录拦截”或“身份验证拦截”。

        在 Spring MVC 中,实现这种功能通常使用的是“拦截器”(Interceptor)。拦截器可以用来执行预处理或后处理任务,比如身份验证、权限控制等。

二、如何与过滤器结合:

将防跳墙功能写进过滤器中,就相当于所有跳转都要经过过滤器这一层,这样我们就只需要写一次防跳墙就能控制整个项目的跳转。

三、具体操作: 

首先我们要创建一个过滤器,具体的写法在这篇文章:https://blog.csdn.net/daibadetianshi/article/details/140869629?spm=1001.2014.3001.5501icon-default.png?t=N7T8https://blog.csdn.net/daibadetianshi/article/details/140869629?spm=1001.2014.3001.5501

 创建完过滤器就要开始写防跳墙功能:

我们的防跳墙功能建立在session的基础上,先获取用户的session值再根据这个值进行判断;

 //获取已有的session会话,即使没有也不自动创建         HttpSession session = ((HttpServletRequest) servletRequest).getSession(false);         //获取浏览器导航的地址         String requestURI = ((HttpServletRequest) servletRequest).getRequestURI();         //对网址经行判断

上面的代码完成了过滤器获取session的值和浏览器跳转的网址;

 拿到这两个值,我们先对网址进行区分把不需要权限的页面放出来,让用户不会被卡。

先判断是否为不用卡的跳转直接放行:

 不会被卡的跳转一般都是登录跳转,验证码跳转,退出登录跳转,登陆失败跳转,登录界面等等。

 if (requestURI.endsWith("/huanying.jsp")||requestURI.endsWith("/code")||requestURI.endsWith("/usererror")||requestURI.endsWith("/showlist")                 ||requestURI.endsWith("/httpuser")         ){             //放行             filterChain.doFilter(servletRequest,servletResponse);                     }

 再判断session的值是否够访问的权限:

else if (session==null||session.getAttribute("user")==null){             //初始化write             PrintWriter writer = servletResponse.getWriter();             //被拦截时的弹窗,将跳转到登陆界面             writer.write("");         }

如果session为空或不存在,则可以判断用户是非法跳转,没有访问权限。用弹窗告知并跳转到登陆界面。 

当session存在且有值时,就说明有权限,是正常登录,过滤器放行。

else if (session !=null &&session.getAttribute("user")!=null){             //放行             filterChain.doFilter(servletRequest,servletResponse);         }

 四、退出登录:

退出登录就是取消相应的权限,也就是将session变为空。

 //获取session         HttpSession session = req.getSession();         //将session消除         session.invalidate();

这样我们的session会话就被销毁了。 

 PrintWriter writer = resp.getWriter();         writer.write(                 ""         );     }

这样就成功退出了。 

相关内容

热门资讯

绝活儿辅助!广西老友玩老是输怎... 绝活儿辅助!广西老友玩老是输怎么办(辅助挂)都是真的有辅助app(讲解有挂)在进入广西老友玩老是输怎...
法门辅助!福建13水插件(辅助... 法门辅助!福建13水插件(辅助挂)一贯是有辅助技巧(有挂技术)1、许多玩家不知道福建13水插件辅助怎...
办法辅助!潮友会app下载官方... 办法辅助!潮友会app下载官方辅助器(辅助挂)真是真的是有辅助app(有挂教程)该软件可以轻松地帮助...
妙招辅助!邯郸胡乐挂辅助(辅助... 妙招辅助!邯郸胡乐挂辅助(辅助挂)好像存在有辅助插件(有挂方略)1、上手简单,内置详细流程视频教学,...
教程书辅助!乐酷辅助(辅助挂)... 教程书辅助!乐酷辅助(辅助挂)其实存在有辅助脚本(有挂细节)乐酷辅助能透视中分为三种模型:乐酷辅助模...
学习辅助!决战卡五星辅助(辅助... 学习辅助!决战卡五星辅助(辅助挂)本来真的是有辅助软件(有人有挂)学习辅助!决战卡五星辅助(辅助挂)...
绝活辅助!边锋嘉兴麻将辅助器(... 绝活辅助!边锋嘉兴麻将辅助器(辅助挂)真是真的有辅助神器(新版有挂)1、边锋嘉兴麻将辅助器公共底牌简...
举措辅助!枫叶辅助器(辅助挂)... 举措辅助!枫叶辅助器(辅助挂)本来存在有辅助技巧(竟然有挂)1、下载好枫叶辅助器正确养号方法之后点击...
讲义辅助!点我达辅助(辅助挂)... 讲义辅助!点我达辅助(辅助挂)一直存在有辅助技巧(有人有挂)1、点我达辅助辅助器安装包、点我达辅助辅...
模块辅助!威信茶馆有挂的吗(辅... 模块辅助!威信茶馆有挂的吗(辅助挂)一直真的是有辅助脚本(揭秘有挂)1、玩家可以在威信茶馆有挂的吗线...