Java Web过滤器详解

  

<>强过滤器是什么玩意?

  

所谓过滤器,其实就是一个服务端组件,用来截取用户端的请求与响应信息。

  

过滤器的应用场景:
  1 .对用户请求进行统一认证,保证不会出现用户账户安全性问题

  

2。编码转换,可在服务端的过滤器中设置统一的编码格式,避免出现乱码

  

3。对用户发送的数据进行过滤替换

  

4。转换图像格式

  

5。对响应的内容进行压缩

  

其中,第1、2场景经常涉及。

  

 Java Web过滤器详解

  

        % @ & lt;页面语言=癹ava”=癹ava.util进口。*”contentType=" text/html;charset=utf - 8”%比;   & lt; %   字符串路径=request.getContextPath ();   字符串basePath=request.getScheme () +”://? request.getServerName () +“:”+ request.getServerPort() +路径“/?   %比;      & lt; !DOCTYPE HTML公共”——//W3C//DTD HTML 4.01过渡//EN”比;   & lt; html>   & lt; head>   & lt;基地href=" https://www.yisu.com/zixun/"比;      & lt; title>我的JSP登录。jsp的起始page      & lt;元http-equiv=霸幼ⅰ蹦谌?皀o - cache”比;   & lt;元http-equiv=癱ache - control”内容=皀o - cache”比;   & lt;元http-equiv=暗狡凇蹦谌?" 0 "比;   & lt;元http-equiv=肮丶省蹦谌?発eyword1、keyword2 keyword3”比;   & lt;元http-equiv=懊枋觥蹦谌?罢馐俏业囊趁妗北?   & lt; !   & lt;链接rel="样式表" type=" text/css " href=" https://www.yisu.com/zixun/styles.css "比;   ——比;      & lt;/head>      & lt; body>   & lt;形式行动=" & lt; % %=路径祝辞/servlet/LoginServlet”方法=皃ost”比;   用户名:& lt; input type=" text " name="用户名"/比;   密码:& lt;输入type="密码" name="密码"/比;   & lt;输入类型="提交" value=" https://www.yisu.com/zixun/登录”/比;   & lt;/form>   & lt;/body>   & lt;/html>      之前      


  

        % @ & lt;页面语言=癹ava”=癹ava.util进口。*”pageEncoding=" utf - 8 " contentType=" text/html;charset=utf - 8”%比;   & lt; %   字符串路径=request.getContextPath ();   字符串basePath=request.getScheme () +”://? request.getServerName () +“:”+ request.getServerPort() +路径“/?   %比;      & lt; !DOCTYPE HTML公共”——//W3C//DTD HTML 4.01过渡//EN”比;   & lt; html>   & lt; head>   & lt;基地href=" https://www.yisu.com/zixun/"比;      & lt; title> JSP的指数。jsp的起始page   & lt;元http-equiv=霸幼ⅰ蹦谌?皀o - cache”比;   & lt;元http-equiv=癱ache - control”内容=皀o - cache”比;   & lt;元http-equiv=暗狡凇蹦谌?" 0 "比;   & lt;元http-equiv=肮丶省蹦谌?発eyword1、keyword2 keyword3”比;   & lt;元http-equiv=懊枋觥蹦谌?罢馐俏业囊趁妗北?   & lt; !   & lt;链接rel="样式表" type=" text/css " href=" https://www.yisu.com/zixun/styles.css "比;   ——比;   & lt;/head>      & lt; body>      & lt;/body>   & lt;/html>      之前      

        % @ & lt;页面语言=癹ava”=癹ava.util进口。*”contentType=" text/html;charset=utf - 8”%比;   & lt; %   字符串路径=request.getContextPath ();   字符串basePath=request.getScheme () +”://? request.getServerName () +“:”+ request.getServerPort() +路径“/?   %比;      & lt; !DOCTYPE HTML公共”——//W3C//DTD HTML 4.01过渡//EN”比;   & lt; html>   & lt; head>   & lt;基地href=" https://www.yisu.com/zixun/"比;      & lt; title>我的JSP登录。jsp的起始page      & lt;元http-equiv=霸幼ⅰ蹦谌?皀o - cache”比;   & lt;元http-equiv=癱ache - control”内容=皀o - cache”比;   & lt;元http-equiv=暗狡凇蹦谌?" 0 "比;   & lt;元http-equiv=肮丶省蹦谌?発eyword1、keyword2 keyword3”比;   & lt;元http-equiv=懊枋觥蹦谌?罢馐俏业囊趁妗北?   & lt; !   & lt;链接rel="样式表" type=" text/css " href=" https://www.yisu.com/zixun/styles.css "比;   ——比;      & lt;/head>      & lt; body>   登录失败,请检查用户名或密码!   & lt;/body>   & lt;/html>      之前      

        包com.cityhuntshou.filter;      进口java.io.IOException;      进口javax.servlet.Filter;   进口javax.servlet.FilterChain;   进口javax.servlet.FilterConfig;   进口javax.servlet.ServletException;   与javax . servlet . servletrequest进口;   进口javax.servlet.ServletResponse;   进口javax.servlet.http.HttpServletRequest;   进口javax.servlet.http.HttpServletResponse;   进口javax.servlet.http.HttpSession;      公共类LoginFilter实现滤波器{   私人FilterConfig配置;   公共空间摧毁(){         }      doFilter (ServletRequest arg0,公共空间ServletResponse __arg1、   FilterChain最长)抛出IOException ServletException {   HttpServletRequest请求=(HttpServletRequest arg0);   __arg1 HttpServletResponse响应=(HttpServletResponse);   HttpSession会话=request.getSession ();//过滤器实际应用场景之二——编码转换      字符串charset=config.getInitParameter(“字符集”);      如果(charset==null)   {   charset=皍tf - 8”;   }      request.setCharacterEncoding(字符集);      字符串noLoginPaths=config.getInitParameter (“noLoginPaths”);            如果(noLoginPaths !=null)   {   String [] strArray=noLoginPaths.split (“;”);   for (int i=0;我& lt;strArray.length;我+ +)   {//空元素,放行   如果(strArray[我]==null | |”“.equals (strArray[我]))   继续;      如果(request.getRequestURI () .indexOf (strArray[我])!=1)   {   最长。doFilter (arg0, __arg1);   返回;   }   }   }   如果(request.getRequestURI () .indexOf (login . jsp””) !=1   | | request.getRequestURI () .indexOf (“LoginServlet”) !=1)   {   最长。doFilter (arg0, __arg1);   返回;   }      如果(session.getAttribute(“用户名”)!=null)   {   最长。doFilter (arg0, __arg1);   }   其他的   {   login . jsp response.sendRedirect (“”);   }   }      null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null

Java Web过滤器详解