zoukankan      html  css  js  c++  java
  • 过滤器

    JavaWeb三大组件

    1、都需要在web.xml中进行配置
    Servlet
    Listener(2个感知监听器不需要配置)
    Filter

    2.过滤器
    它会在一组资源(jsp、servlet、.css、.html)的前面执行!
    它可以让请求得到目标资源,也可以不让请求达到!
    * 过滤器有拦截请求的能力!

    登录:
    允许访问AServlet、BServlet、CServlet

    ----------------------

    过滤器如何编写
    1、写一个类实现Filter接口
    2、在web.xml中进行配置

    Filter

    void init(FilterConfig)
    *创建之后,马上执行;Filter会在服务器启动时就创建
    void destory()
    *销毁之前执行!在服务器关闭时销毁
    void doFilter(ServletRequest,ServletResponse,FilterChain)
    *每次过滤时都会执行

    Filter是单例的!

    web.xml
    <filter>
    <filter-name>xxx</filter-name>
    <filter-calss>cn.itcast.web.filter.AFilter</filter-class>
    </filter>
    <filter-mapping>
    <filter-name>xxx</filter-name>
    <url-pattern>/*</url-pattern>
    </filter-mapping>

    指定servlet-name:点名过滤,可以过滤多个

    ---------------------------

    FilterConfig-->与ServletConfig相似
    *获取初始化参数:getInitParameter()
    *获取过滤器名称:getFilterName()
    *获取application:getServletContext()

    FilterChain
    *doFilter(ServletRequest,ServletResponse):放行!
    放行就相当于调用了目标servlet的service方法,执行完了还要执行我们后面的方法

    ---------------------------

    ---------------------------
    多过滤器
    FilterChain#doFilter()方法:
    执行目标资源或者执行下一个过滤器!如果没有下一个过滤器那么就执行目标资源,如果有那么执行下一个过滤器!

    ---------------------------

    过滤器的四种拦截方式

    *请求 DISPATCHER
    *转发 FORWAED
    *包含 INCLUDE
    *错误 ERROR

    在filter-mapping中配置
    <dispatcher>REQUEST</dispatcher>
    <dispatcher>FORWARD</dispatcher>
    <dispatcher>INCLUDE</dispatcher>
    <dispatcher>ERROR</dispatcher>

    ERROR是拦截什么呢?就是web.xml中配置了错误页面然后自动进入了错误的页面的请求
    <error-page>
    <error-code>500</error-code>
    <location>/error.jsp</location>
    </error-page>

    ------------------------
    多个过滤器的执行顺序
    说是在<filter-mapping>的配置顺序决定了过滤器的执行顺序

    ------------------------
    过滤器的应用场景:
    *执行目标资源之前做预处理工作,例如设置编码,这种通常都会放行,只是在目标资源执行之前做一些准备操作
    *通过条件判断是否放行,例如教研当前用户是否已经登录,或者用户IP是否已经被禁用
    *在目标资源执行之后,做一些后续的特殊处理工作,例如把目标资源输出的数据进行处理

    几个例子:

    1、分ip统计访问次数:

    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
    <%
    String path = request.getContextPath();
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
    %>
    
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
        <base href="<%=basePath%>">
        
        <title>My JSP 'a.jsp' starting page</title>
        
        <meta http-equiv="pragma" content="no-cache">
        <meta http-equiv="cache-control" content="no-cache">
        <meta http-equiv="expires" content="0">    
        <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
        <meta http-equiv="description" content="This is my page">
        <!--
        <link rel="stylesheet" type="text/css" href="styles.css">
        -->
    
      </head>
      
      <body>
        <h1>去</h1>
      </body>
    </html>
    
    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
    <%
    String path = request.getContextPath();
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
    %>
    
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
        <base href="<%=basePath%>">
        
        <title>My JSP 'b.jsp' starting page</title>
        
        <meta http-equiv="pragma" content="no-cache">
        <meta http-equiv="cache-control" content="no-cache">
        <meta http-equiv="expires" content="0">    
        <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
        <meta http-equiv="description" content="This is my page">
        <!--
        <link rel="stylesheet" type="text/css" href="styles.css">
        -->
    
      </head>
      
      <body>
        <h1>好</h1>
      </body>
    </html>
    
    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
    <%
    String path = request.getContextPath();
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
    %>
    
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
        <base href="<%=basePath%>">
        
        <title>My JSP 'show.jsp' starting page</title>
        
        <meta http-equiv="pragma" content="no-cache">
        <meta http-equiv="cache-control" content="no-cache">
        <meta http-equiv="expires" content="0">    
        <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
        <meta http-equiv="description" content="This is my page">
        <!--
        <link rel="stylesheet" type="text/css" href="styles.css">
        -->
    
      </head>
      
      <body>
        <h1 align="center">显示结果</h1>
        <table align="center" width="60%">
            <tr>
                <th>IP</th>
                <th>次数</th>
            </tr>
            <c:forEach items="${applicationScope.amp }" var="entry">
                <td>${entry.key }</td>
                <td>${entry.value }</td>
            </c:forEach>
        </table>
      </body>
    </html>
    
    package cn.itcast.web.filter;
    
    import java.io.IOException;
    import java.util.Map;
    import java.util.Set;
    
    import javax.servlet.Filter;
    import javax.servlet.FilterChain;
    import javax.servlet.FilterConfig;
    import javax.servlet.ServletContext;
    import javax.servlet.ServletException;
    import javax.servlet.ServletRequest;
    import javax.servlet.ServletResponse;
    
    import sun.reflect.ReflectionFactory.GetReflectionFactoryAction;
    
    /**
     * 从application中获取Map
     * 从request中得到当前客户端的ip
     * 进行统计工作,结果保存到map
     * @author Administrator
     *
     */
    public class AFilter implements Filter{
    
        private FilterConfig fconfig;
        public void destroy() {
            
        }
    
        @SuppressWarnings("unchecked")
        public void doFilter(ServletRequest request, ServletResponse response ,
                FilterChain chain) throws IOException, ServletException {
            /*
             * 1、得到application中的map
             * 2、从request中获取当前客户端ip地址
             * 3、查看map中是否存在这个ip对应的访问次数,如果存在,把次数+1再保存回去
             * 4、如果不存在这个ip,那么说明是第一个访问本站,设置访问次数为1
             */
            ServletContext application=fconfig.getServletContext();
            Map<String,Integer> map=(Map<String, Integer>) application.getAttribute("amp");
            String ip=request.getRemoteAddr();
            if(map.containsKey(ip)){
                int cnt=map.get(ip);
                map.put(ip, cnt+1);
            }else{
                map.put(ip, 1);
            }
            application.setAttribute("amp", map);
            chain.doFilter(request, response);
            
        }
    
        public void init(FilterConfig fconfig) throws ServletException {
            this.fconfig=fconfig;
        }
    
    
    }
    
    package cn.itcast.web.listener;
    
    import java.util.LinkedHashMap;
    import java.util.Map;
    
    import javax.servlet.ServletContext;
    import javax.servlet.ServletContextEvent;
    import javax.servlet.ServletContextListener;
    
    public class AListener implements ServletContextListener{
    
        
        public void contextDestroyed(ServletContextEvent sce) {
            
        }
    
        /**
         * 在服务器启动时创建Map,保存到ServletContext
         */
        public void contextInitialized(ServletContextEvent sce) {
            Map<String,Integer> map=new LinkedHashMap<String, Integer>();
            ServletContext application=sce.getServletContext();
            application.setAttribute("amp", map);
        }
    
    }
    
    <?xml version="1.0" encoding="UTF-8"?>
    <web-app version="2.5" 
        xmlns="http://java.sun.com/xml/ns/javaee" 
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
        xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
        http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
      <display-name></display-name>    
      <welcome-file-list>
        <welcome-file>index.jsp</welcome-file>
      </welcome-file-list>
      
      <filter>
          <filter-name>AFilter</filter-name>
          <filter-class>cn.itcast.web.filter.AFilter</filter-class>
      </filter>
      <filter-mapping>
          <filter-name>AFilter</filter-name>
          <url-pattern>/*</url-pattern>
      </filter-mapping>
      
      <listener>
          <listener-class>cn.itcast.web.listener.AListener</listener-class>
      </listener>
    </web-app>
    View Code

    2、粗粒度权限管理(游客,管理员,会员的权限)

    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
    <%
    String path = request.getContextPath();
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
    %>
    
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
        <base href="<%=basePath%>">
        
        <title>My JSP 'a.jsp' starting page</title>
        
        <meta http-equiv="pragma" content="no-cache">
        <meta http-equiv="cache-control" content="no-cache">
        <meta http-equiv="expires" content="0">    
        <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
        <meta http-equiv="description" content="This is my page">
        <!--
        <link rel="stylesheet" type="text/css" href="styles.css">
        -->
    
      </head>
      
      <body>
        <h1>欢迎欢迎,管理员先生登录</h1>
        <a href="<c:url value='/index.jsp'/>">游客入口</a><br/>
        <a href="<c:url value='/user/u.jsp'/>">会员入口</a><br/>
        <a href="<c:url value='/admin/a.jsp'/>">管理员入口</a><br/>
      </body>
    </html>
    
    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
    <%
    String path = request.getContextPath();
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
    %>
    
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
        <base href="<%=basePath%>">
        
        <title>My JSP 'a.jsp' starting page</title>
        
        <meta http-equiv="pragma" content="no-cache">
        <meta http-equiv="cache-control" content="no-cache">
        <meta http-equiv="expires" content="0">    
        <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
        <meta http-equiv="description" content="This is my page">
        <!--
        <link rel="stylesheet" type="text/css" href="styles.css">
        -->
    
      </head>
      
      <body>
        <h1>会员先生,您早上好</h1>
        <a href="<c:url value='/index.jsp'/>">游客入口</a><br/>
        <a href="<c:url value='/user/u.jsp'/>">会员入口</a><br/>
        <a href="<c:url value='/admin/a.jsp'/>">管理员入口</a><br/>
      </body>
    </html>
    
    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
    <%@ taglib prefix="c"  uri="http://java.sun.com/jsp/jstl/core" %>
    <%
    String path = request.getContextPath();
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
    %>
    
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
        <base href="<%=basePath%>">
        
        <title>My JSP 'index.jsp' starting page</title>
        <meta http-equiv="pragma" content="no-cache">
        <meta http-equiv="cache-control" content="no-cache">
        <meta http-equiv="expires" content="0">    
        <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
        <meta http-equiv="description" content="This is my page">
        <!--
        <link rel="stylesheet" type="text/css" href="styles.css">
        -->
      </head>
      
      <body>
        <h1>你就是个游客而已</h1>
        <a href="<c:url value='/index.jsp'/>">游客入口</a><br/>
        <a href="<c:url value='/user/u.jsp'/>">会员入口</a><br/>
        <a href="<c:url value='/admin/a.jsp'/>">管理员入口</a><br/>
      </body>
    </html>
    
    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
    <%
    String path = request.getContextPath();
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
    %>
    
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
        <base href="<%=basePath%>">
        
        <title>My JSP 'login.jsp' starting page</title>
        
        <meta http-equiv="pragma" content="no-cache">
        <meta http-equiv="cache-control" content="no-cache">
        <meta http-equiv="expires" content="0">    
        <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
        <meta http-equiv="description" content="This is my page">
        <!--
        <link rel="stylesheet" type="text/css" href="styles.css">
        -->
    
      </head>
      
      <body>
        <h1>登录</h1>
        <div>${msg }</div>
        <form action="<c:url value='LoginServlet'/>" method="post">
             用户名:<input type="text" name="username"/>
             <input type="submit"/>
         </form> 
      </body>
    </html>
    
    package cn.itcast.web.servlet;
    
    import java.io.IOException;
    import java.io.PrintWriter;
    
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    public class LoginServlet extends HttpServlet {
        public void doGet(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
    
        }
        
        @Override
        protected void doPost(HttpServletRequest req, HttpServletResponse resp)
                throws ServletException, IOException {
            req.setCharacterEncoding("utf-8");
            resp.setCharacterEncoding("utf-8");
            resp.setContentType("text/html;charset=utf-8");
            /*
             * 1、获取用户名
             * 2、判断用户名中是否包含itcast
             * 3、如果包含就是管理员
             * 4、如果不包含,就是普通会员
             * 5、要把登录的用户名保存到session中
             * 6、转发到index.jsp
             */
            String username=req.getParameter("username");
            if(username.contains("itcast")){
                req.getSession().setAttribute("admin", username);
            }else{
                req.getSession().setAttribute("username", username);
            }
            req.getRequestDispatcher("/index.jsp").forward(req, resp);
        }
    
    }
    
    package cn.itcast.web.filter;
    
    import java.io.IOException;
    
    import javax.servlet.Filter;
    import javax.servlet.FilterChain;
    import javax.servlet.FilterConfig;
    import javax.servlet.ServletException;
    import javax.servlet.ServletRequest;
    import javax.servlet.ServletResponse;
    import javax.servlet.http.HttpServletRequest;
    
    public class AdminFilter implements Filter{
    
        public void destroy() {
            
        }
    
        public void doFilter(ServletRequest request, ServletResponse response,
                FilterChain chain) throws IOException, ServletException {
            /*
             * 得到session,
             * 判断session域中是否存在admin,如果存在放行
             * ,否则,大会login.jsp,并告诉它不要瞎溜达
             */
            HttpServletRequest req=(HttpServletRequest) request;
            String name=(String) req.getSession().getAttribute("admin");
            if(name!=null){
                chain.doFilter(request, response);
            }else{
                req.setAttribute("msg", "您可能是个啥,但不是管理员!");
                req.getRequestDispatcher("/login.jsp").forward(request, response);
            }
        }
    
        public void init(FilterConfig filterConfig) throws ServletException {
            
        }
    
    }
    
    package cn.itcast.web.filter;
    
    import java.io.IOException;
    
    import javax.servlet.Filter;
    import javax.servlet.FilterChain;
    import javax.servlet.FilterConfig;
    import javax.servlet.ServletException;
    import javax.servlet.ServletRequest;
    import javax.servlet.ServletResponse;
    import javax.servlet.http.HttpServletRequest;
    
    public class UserFilter implements Filter{
    
        public void destroy() {
            
        }
    
        public void doFilter(ServletRequest arg0, ServletResponse arg1,
                FilterChain arg2) throws IOException, ServletException {
            /*
             * 得到session,
             * 判断session域中是否存在admin,如果存在放行
             * 判断session中是否存在username,如果存在,放行,否则,大会login.jsp,并告诉它不要瞎溜达
             */
            HttpServletRequest req=(HttpServletRequest) arg0;
            String name=(String)req.getSession().getAttribute("admin");
            if(name!=null){
                arg2.doFilter(arg0, arg1);
            }
            name=(String) req.getSession().getAttribute("username");
            if(name!=null){
                arg2.doFilter(arg0, arg1);
            }else{
                req.setAttribute("msg", "您啥都不是,不要瞎溜达!");
                req.getRequestDispatcher("/login.jsp").forward(arg0, arg1);
            }
        }
    
        public void init(FilterConfig arg0) throws ServletException {
            
        }
    
    }
    
    <?xml version="1.0" encoding="UTF-8"?>
    <web-app version="2.5" 
        xmlns="http://java.sun.com/xml/ns/javaee" 
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
        xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
        http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
      <display-name></display-name>
      <servlet>
        <description>This is the description of my J2EE component</description>
        <display-name>This is the display name of my J2EE component</display-name>
        <servlet-name>LoginServlet</servlet-name>
        <servlet-class>cn.itcast.web.servlet.LoginServlet</servlet-class>
      </servlet>
    
      <servlet-mapping>
        <servlet-name>LoginServlet</servlet-name>
        <url-pattern>/LoginServlet</url-pattern>
      </servlet-mapping>    
      <welcome-file-list>
        <welcome-file>index.jsp</welcome-file>
      </welcome-file-list>
      
      <filter>
          <filter-name>UserFilter</filter-name>
          <filter-class>cn.itcast.web.filter.UserFilter</filter-class>
      </filter>
      <filter-mapping>
          <filter-name>UserFilter</filter-name>
          <url-pattern>/user/*</url-pattern>
      </filter-mapping>
       <filter>
          <filter-name>AdminFilter</filter-name>
          <filter-class>cn.itcast.web.filter.AdminFilter</filter-class>
      </filter>
      <filter-mapping>
          <filter-name>AdminFilter</filter-name>
          <url-pattern>/admin/*</url-pattern>
      </filter-mapping>
    </web-app>
    View Code

    3、全站编码问题

    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
    <%
    String path = request.getContextPath();
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
    %>
    
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
        <base href="<%=basePath%>">
        
        <title>My JSP 'index.jsp' starting page</title>
        <meta http-equiv="pragma" content="no-cache">
        <meta http-equiv="cache-control" content="no-cache">
        <meta http-equiv="expires" content="0">    
        <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
        <meta http-equiv="description" content="This is my page">
        <!--
        <link rel="stylesheet" type="text/css" href="styles.css">
        -->
      </head>
      
      <body>
        <a href="<c:url value='/AServlet?username=张三'/>">点击这里</a><br/>
        <form action="<c:url value='/AServlet'/>" method="post">
            用户名:<input type="text" name="username" value="李四"/>
            <input type="submit" value="提交"/>
        </form>
      </body>
    </html>
    
    package cn.itcast.web.servlet;
    
    
    import java.io.IOException;
    
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    public class AServlet extends HttpServlet {
    
        public void doGet(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
            response.setContentType("text/html;charset=utf-8");
            String username=request.getParameter("username");
            response.getWriter().println(username);
        }
        
        public void doPost(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
            response.setContentType("text/html;charset=utf-8");
            String username=request.getParameter("username");
            response.getWriter().println(username);
        }
    
    }
    
    package cn.itcast.web.filter;
    
    import java.io.UnsupportedEncodingException;
    import java.util.Map;
    import java.util.Set;
    
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletRequestWrapper;
    
    public class EncodingRequest extends HttpServletRequestWrapper{
    
        public EncodingRequest(HttpServletRequest request) {
            super(request);
        }
        
        
         public String[] getParameterValues(String name) {
            String[] paramValues=super.getParameterValues(name);
            if(paramValues==null) return null;
            try {
                for(int i=0;i<paramValues.length;i++){
                    String param=paramValues[i];
                    if(param==null){
                        continue;
                    }else{
                        paramValues[i]=new String(param.getBytes("iso-8859-1"),"utf-8");
                    }
                }
                return paramValues;
            } catch (UnsupportedEncodingException e) {
                throw new RuntimeException(e);
            }
        }
        
        public String getParameter(String name) {
            try {
                String value=super.getParameter(name);
                if(value==null) return null;
                return new String(value.getBytes("iso-8859-1"),"utf-8");
            } catch (UnsupportedEncodingException e) {
                throw new RuntimeException(e);
            }
        }
          
        public Map getParameterMap() {
            Map<String,String> map=super.getParameterMap();
            if(map==null) return null;
            Set<String> keys=map.keySet();
            try {
                for(String key:keys){
                    String value=map.get(key);
                    if(value==null){
                        continue;
                    }else{
                        value=new String(value.getBytes("iso-8859-1"),"utf-8");
                        map.put(key, value);
                    }
                }
                return map;
            } catch (UnsupportedEncodingException e) {
                throw new RuntimeException(e);
            }
        }
         
    
    }
    
    package cn.itcast.web.filter;
    
    import java.io.IOException;
    
    import javax.servlet.Filter;
    import javax.servlet.FilterChain;
    import javax.servlet.FilterConfig;
    import javax.servlet.ServletException;
    import javax.servlet.ServletRequest;
    import javax.servlet.ServletResponse;
    import javax.servlet.http.HttpServletRequest;
    
    public class EncodingFilter implements Filter{
    
        public void destroy() {
            
        }
    
        public void doFilter(ServletRequest request, ServletResponse response,
                FilterChain chain) throws IOException, ServletException {
            /*处理post请求的编码问题*/
            request.setCharacterEncoding("utf-8");
            HttpServletRequest req=(HttpServletRequest) request;
            
            /*处理get请求的编码问题*/
    //        String username=request.getParameter("username");
    //        username=new String(username.getBytes("iso-8859-1"),"utf-8");  只能读不能写
            
            /*
             * 掉包request
             * 1、写一个request的装饰类
             * 2、在放行时使用我们自己的request
             *  
             */
            if(req.getMethod().equalsIgnoreCase("get")){
                EncodingRequest er=new EncodingRequest(req);
                chain.doFilter(er, response);
            }else{
                chain.doFilter(req, response);
            }
            
            
            
        }
    
        public void init(FilterConfig arg0) throws ServletException {
            
        }
    
    }
    
    <?xml version="1.0" encoding="UTF-8"?>
    <web-app version="2.5" 
        xmlns="http://java.sun.com/xml/ns/javaee" 
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
        xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
        http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
      <display-name></display-name>
      <servlet>
        <description>This is the description of my J2EE component</description>
        <display-name>This is the display name of my J2EE component</display-name>
        <servlet-name>AServlet</servlet-name>
        <servlet-class>cn.itcast.web.servlet.AServlet</servlet-class>
      </servlet>
    
      <servlet-mapping>
        <servlet-name>AServlet</servlet-name>
        <url-pattern>/AServlet</url-pattern>
      </servlet-mapping>    
      <welcome-file-list>
        <welcome-file>index.jsp</welcome-file>
      </welcome-file-list>
      
      <filter>
          <filter-name>EncodingFilter</filter-name>
          <filter-class>cn.itcast.web.filter.EncodingFilter</filter-class>
      </filter>
      <filter-mapping>
          <filter-name>EncodingFilter</filter-name>
          <url-pattern>/*</url-pattern>
      </filter-mapping>
    </web-app>
    View Code
  • 相关阅读:
    FFT加速多项式乘法C语言版(基2FFT)
    springboot2中@ConfigurationProperties装载yml文件的时候调取出现值为null的解决办法
    LeetCode27-移除元素
    dom4j在解析xml文件的时候将" "解析成空格的解决办法
    LeetCode17- 电话号码的字母组合
    LeetCode19- 删除链表的倒数第N个节点
    LeetCode14- 最长公共前缀
    LeetCode20- 有效的括号
    LeetCode21- 合并两个有序链表
    MySQL单表百万数据记录分页性能优化
  • 原文地址:https://www.cnblogs.com/aigeileshei/p/5738430.html
Copyright © 2011-2022 走看看