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(                 ""         );     }

这样就成功退出了。 

相关内容

热门资讯

透视手筋!wpk安卓下载辅助,... 透视手筋!wpk安卓下载辅助,wpk软件是正规的吗(透视)一直存在有透视教程(哔哩哔哩)1、wpk软...
透视经验!pokemmo脚本辅... 透视经验!pokemmo脚本辅助下载,拱趴大菠萝辅助神器(透视)一直真的有脚本攻略(哔哩哔哩);拱趴...
透视技法!wpk辅助器是真的吗... 透视技法!wpk辅助器是真的吗,有哪些免费的wpk作必弊码(透视)竟然有透视软件(哔哩哔哩)暗藏猫腻...
透视手筋!德普之星怎么开辅助,... 透视手筋!德普之星怎么开辅助,德普辅助器怎么用(透视)本来真的是有透视教程(哔哩哔哩)1.德普之星怎...
透视手段!德扑之心免费透视,德... 透视手段!德扑之心免费透视,德普之星私人局透视(透视)本来真的有脚本教程(哔哩哔哩)1、用户打开应用...
透视办法!wpk软件是正规的吗... 透视办法!wpk软件是正规的吗,如何判断wpk辅助软件的真假(透视)原来有脚本工具(哔哩哔哩)一、如...
透视教材!aapoker万能辅... 透视教材!aapoker万能辅助器,aapoker真的假的(透视)原来真的有脚本方法(哔哩哔哩)aa...
透视经验!wepoker透视是... 透视经验!wepoker透视是真的吗,wejoker内置辅助(透视)本来是有脚本攻略(哔哩哔哩)we...
透视手册!hhpoker软件安... 透视手册!hhpoker软件安装包,hhpoker智能辅助插件(透视)本来是有脚本攻略(哔哩哔哩)1...
透视策略!aapoker辅助软... 透视策略!aapoker辅助软件合法吗,aapoker插件下载(透视)果然有透视工具(哔哩哔哩)aa...