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

    Filter

    过滤器:就是在源数据和目的数据之间器过滤作用的组件。

    在Web应用中,过滤器是驻留在服务器端的web组件,可以截取客户端和资源之间的请求与响应信息,且对这些信息进行过滤。

    package com.zy.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.annotation.WebFilter;
    
    /**
     * Servlet Filter implementation class MyFilter
     * 基于注解的filter不需要再web.xml中配置
     */
    @WebFilter("/*")//拦截规则(那些请求会被拦截进过滤器) /表示拦截所有请求(不会拦截静态资源页面(页面,css))   /*拦截所有包括静态资源
    public class MyFilter implements Filter {
        //生命周期:随着服务器的开启而出生,随着服务器关闭而销毁
        public void destroy() {
            System.out.println("过滤器销毁了");
        }
    
        public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
            System.out.println("进入过滤器");
            //经过各种逻辑判断决定是否对该请求放行,让其到达目标资源
            chain.doFilter(request, response);//重要[这句话决定了是否放行]  如果没有这句话相当于一直被拦在那
        }
    
        public void init(FilterConfig fConfig) throws ServletException {
            System.out.println("过滤器出生了");
        }
    
    }

     编码过滤器

    package com.zy.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.annotation.WebFilter;
    
    import org.apache.log4j.Logger;
    
    /**
     * Servlet Filter implementation class EncodingFile
     */
    @WebFilter("/*")
    public class EncodingFile implements Filter {
       public void destroy() {
           
        }
    
        
        public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
            /*     /*拦截所有请求,先执行该过滤器
             * */    
            //设置request和response的编码 解决请求和响应乱码问题
            request.setCharacterEncoding("utf-8");
            response.setContentType("text/html;charset=utf-8");
            System.out.println("进入编码过滤器设置请求和响应编码");
            chain.doFilter(request, response);//一定放行
        }
    
        
        public void init(FilterConfig fConfig) throws ServletException {
            
            
        }
    
    }
  • 相关阅读:
    php原生PHPExcel插件导表(附表格合并,加粗居中及加边框换行操作)
    VMware虚拟机基于contos 7 搭建lnmp环境全过程
    菜鸟学git的基本命令及常见错误
    为什么要写blog????
    JavaScript高级程序设计--函数小记
    jsapi微信支付
    Javascript模式小记(一)
    图片的增删查
    图形的滚动及颜色区域的拉移
    网页中的宽与高
  • 原文地址:https://www.cnblogs.com/qfdy123/p/11178832.html
Copyright © 2011-2022 走看看