临淄网站建设公司,wordpress 禁用插件,做网站要空间还是服务器,深圳网站定制深圳网站建设公司一、什么是防跳墙功能#xff1a; 防跳墙功能通常指的是防止用户在未完成认证的情况下直接访问受保护资源的功能。在 Web 开发中#xff0c;这种功能通常被称为“登录拦截”或“身份验证拦截”。 在 Spring MVC 中#xff0c;实现这种功能通常使用的是“拦截器”#xff08…一、什么是防跳墙功能 防跳墙功能通常指的是防止用户在未完成认证的情况下直接访问受保护资源的功能。在 Web 开发中这种功能通常被称为“登录拦截”或“身份验证拦截”。 在 Spring MVC 中实现这种功能通常使用的是“拦截器”Interceptor。拦截器可以用来执行预处理或后处理任务比如身份验证、权限控制等。
二、如何与过滤器结合
将防跳墙功能写进过滤器中就相当于所有跳转都要经过过滤器这一层这样我们就只需要写一次防跳墙就能控制整个项目的跳转。
三、具体操作
首先我们要创建一个过滤器具体的写法在这篇文章https://blog.csdn.net/daibadetianshi/article/details/140869629?spm1001.2014.3001.5501https://blog.csdn.net/daibadetianshi/article/details/140869629?spm1001.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 (sessionnull||session.getAttribute(user)null){//初始化writePrintWriter writer servletResponse.getWriter();//被拦截时的弹窗,将跳转到登陆界面writer.write(scriptalert(请登录);window.location.hrefhuanying.jsp/script);}
如果session为空或不存在则可以判断用户是非法跳转没有访问权限。用弹窗告知并跳转到登陆界面。
当session存在且有值时就说明有权限是正常登录过滤器放行。
else if (session !null session.getAttribute(user)!null){//放行filterChain.doFilter(servletRequest,servletResponse);} 四、退出登录
退出登录就是取消相应的权限也就是将session变为空。 //获取sessionHttpSession session req.getSession();//将session消除session.invalidate();
这样我们的session会话就被销毁了。 PrintWriter writer resp.getWriter();writer.write(scriptalert(退出成功);window.location.hrefhuanying.jsp/script);}
这样就成功退出了。