美文网首页程序员
Java的Filter过滤器

Java的Filter过滤器

作者: 丁白一 | 来源:发表于2017-09-14 08:58 被阅读0次

    1.过滤器创建

    了解过滤器常见配置含义

       <filter>
            <filter-name>filter名字</filter-name>
            <filter-class>对应到Java包名类名</filter-class>
        </filter>
        <filter-mapping>
            <filter-name>filter名字</filter-name>
            <url-pattern>/*</url-pattern>
        </filter-mapping>
    

    filter-mapping标签里面还有许多参数,可以参考学习博客
    特别注意<filter-mapping>标签可以同一个过滤器写多个url-pattern
    <filter-mapping>标签还可带参传入到java类中,使用<init-param><param-name><param-value>
    在web.xml创建过滤器

          <filter>
            <filter-name>ElectronicFilter</filter-name>
            <filter-class>com.chinasoft.it.attendance.filter.ElectronicFilter</filter-class>
        </filter>
        <filter-mapping>
            <filter-name>ElectronicFilter</filter-name>
            <url-pattern>/*</url-pattern>
        </filter-mapping>
    

    2.Java类创建

    1>.实现Filter 接口
    2>.init方法可读取web.xml中<init-param>参数值
    3>.重写doFilter方法,实现自己所要的功能。
    4>.如果不过滤走filterChain.doFilter(request, response)方法;
    public class FilterName implements Filter {
    
        protected String ip = "";
        protected List<String> listUrl;
    
        /**
         * @see Filter#destroy()
         */
        public void destroy() {
        }
    
        /**
         * @see Filter#doFilter(ServletRequest, ServletResponse, FilterChain)
         */
        public void doFilter(ServletRequest request, ServletResponse response,
                FilterChain filterChain) throws IOException, ServletException {
    
            String ipRemoteAddr = request.getRemoteAddr();//读取发送请求IP地址
            //String reqUrl = ((HttpServletRequest) request).getRequestURI();
    
            if (!listUrl.contains(ipRemoteAddr)) {
                response.setCharacterEncoding("gb2312");
                PrintWriter out = response.getWriter();
                out.print("<p style='text-align:center; font-size:25'>IP限制!</p>");
            } else {
                filterChain.doFilter(request, response);
            }
        }
    
        /**
         * @see Filter#init(FilterConfig)
         */
        public void init(FilterConfig filterConfig) throws ServletException {
        
        }
    }
    

    相关文章

      网友评论

        本文标题:Java的Filter过滤器

        本文链接:https://www.haomeiwen.com/subject/qprlsxtx.html