您的位置:首页 > 游戏 > 手游 > 天眼查企业入口免费_室内装修设计学校哪里好_百度关键词排名点_企业网站如何优化

天眼查企业入口免费_室内装修设计学校哪里好_百度关键词排名点_企业网站如何优化

2024/12/28 17:18:22 来源:https://blog.csdn.net/m0_75163045/article/details/143477630  浏览:    关键词:天眼查企业入口免费_室内装修设计学校哪里好_百度关键词排名点_企业网站如何优化
天眼查企业入口免费_室内装修设计学校哪里好_百度关键词排名点_企业网站如何优化

过滤器Filter

实现敏感词、只能通过登录进入页面。

原理

        当我们使用过滤器时,过滤器会对游览器的请求进行过滤,过滤器可以动态的分为3个部分,1.放行之前的代码,2.放行,3.放行后的代码,这3个部分分别会发挥不同作用。

        第一部分代码会对游览器 请求进行第一次过滤,然后继续执行
        第二部分代码就是将游览器请求放行,如果还有过滤器,那么就继续交给下一个过滤器
        第三部分代码就是对返回的Web资源再次进行过滤处理

 过滤器创建

eclipse里可以new一个Filter

其中:

@WebFilter("/*")

放着要过滤的资源,如果想拦所有,那就是*


实现过滤

        前面我们知道,web-inf目录下的文件我们无法通过浏览器访问到,因此做项目时,我们把文件放到他的平行文件里。

        这里,我们要实现只能通过登录进入内容管理系统等页面,把只能通过登录才能进的页面放到 web-inf 目录下。

第二步:

        登录成功时,进入过滤器

第三步:过滤器设置

这是放行的语句

可以选择对资源放行还是不放行。

不放行就是空白。

//放行chain.doFilter(request, response);

        想要知道访问哪个资源,用统一资源访问符getRequestURI()  ---->  servlet能用,Filter用不了 (原因:同样都是request,servlet里是HttpServletRequest, 而filter里是ServletRequest, 所以filter是父类 ,servlet是子类。 子类能调用子类的方法,能调用父类的方法。而父类不能调用子类---> 解决办法:强制类型转换。 把父类的强制转换成子类的。)

String requestURI=((HttpServletRequest)request).getRequestURI();

$ 判断访问的资源

如果是不经过登录就能访问的资源,直接放行

如果是需要经过登录才能放行的资源,且有登陆资源

        登陆了:session传来的账号有,不为空 即为登录进来的

                放行

        没登录

                不放行(重定向到登录页面)

 在登录后端设置session传账号

//		设置后端给前端返回的数据为json格式response.setContentType("text/json;charset=utf-8");//获取前端传过来的参数String code=request.getParameter("code");HttpSession session = request.getSession(false);if(session!=null) {String savedcode=(String) session.getAttribute("verifycode");if(savedcode!=null) {if(savedcode.equalsIgnoreCase(code)) {String acc=request.getParameter("account");String pss=request.getParameter("password");//拼接sqlString sql="select count(*) from login where account=\""+acc+"\" and password=\""+pss+"\"";//查找int num=MysqlUtil.getCount(sql);//返回的数据String res="{\"code\":0,\"message\":\"登陆失败\"}";if(num>0) {res="{\"code\":1,\"message\":\" 登陆成功\"}";//登陆成功session.setAttribute("account", acc);}//返回数据response.getWriter().write(res);}else {String res="{\"code\":-1,\"message\":\"验证码错误,请重新输入\"}";response.getWriter().write(res);}}}}
if(requestURI.equals("/Lojarro22/")||requestURI.contains("hbu")||requestURI.contains("img")||requestURI.contains("jquery")||requestURI.contains("Hbu")||requestURI.contains("login")||requestURI.contains("Login")||requestURI.contains("CaptchaServlet")||requestURI.contains("upload")) {//不经过登录就能访问的资源//放行chain.doFilter(request, response);}else if(((HttpServletRequest)request).getSession().getAttribute("account")!=null){//需要经过登录才能访问的资源,有登录资源//session中的account不为空,即登录进来的//放行chain.doFilter(request, response);}else {//不放行((HttpServletResponse)response).sendRedirect("login.html");}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com