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

这样就成功退出了。 

相关内容

热门资讯

相较于以往!wepoker破解... 相较于以往!wepoker破解游戏盒子(透视)本来是有辅助下载(确实有挂)-哔哩哔哩wepoker破...
辅助透视!wepoker正确养... 辅助透视!wepoker正确养号方法!一分钟了解辅助神器(有挂教程)-哔哩哔哩1、wepoker正确...
据了解!wejoker辅助机器... 您好,wejoker辅助机器人这款游戏可以开挂的,确实是有挂的,需要了解加去威信【485275054...
科普透视!wepokerplu... 科普透视!wepokerplus到底是挂了吗!技术分享辅助教程(确实有挂)-哔哩哔哩1、wepoke...
透视透视!wepoker有没有... 透视透视!wepoker有没有透视方法(透视)总是存在有辅助软件(有挂攻略)-哔哩哔哩1、全新机制【...
辅助透视!wepoker透视方... 辅助透视!wepoker透视方法!实测教程辅助工具(有挂技巧)-哔哩哔哩一、wepoker透视方法可...
透视app!wepoker辅助... 透视app!wepoker辅助是真的假的(透视)切实真的有辅助工具(有挂攻略)-哔哩哔哩1、透视ap...
解密透视!wepoker免费脚... 解密透视!wepoker免费脚本咨询!解密关于辅助方法(有挂攻略)-哔哩哔哩1、点击下载安装,wep...
有了最新消息!佛手在线大菠萝为... 有了最新消息!佛手在线大菠萝为什么都输(透视)确实是有辅助安装(有挂秘笈)-哔哩哔哩1.佛手在线大菠...
开挂透视!wepokerplu... 开挂透视!wepokerplus透视脚本免费!一分钟教你辅助挂(有挂解惑)-哔哩哔哩1、很好的工具软...