创建Filter过滤器

话不多说直接上代码
//配置Filter这里跟servlet配置是一样的配置的哪个servlet地址就会拦截对哪个servlet的请求 配置方法 固定地址(就是这里用的就是)  通配符  指定目录
//这里可以配置多个servlet也就是对多个servlet的请求和响应做相同的操作
//当然一个servlet也可以配置多个过滤器如果配置了多个过滤器 请求和响应会经过多个过滤器
//请求:从用户访问-->第一个过滤器-->第二个过滤器-->servlet
//响应:servlet-->第二个过滤器-->第一个过滤器-->返回给用户
//我的理解是说是配置不如说是绑定也就是说一个servlet可以绑定多个过滤器一个过滤器也可以绑定多个servlet
//servlet和过滤器是相互绑定的
//绑定以后想要访问过滤器绑定的servlet就必须先要访问这个过滤器
//下面的代码测试了过滤器的的生命周期和设置了response编码集和设置一个简单的防盗链
@WebFilter(filterName = "DemoFilter",urlPatterns = {"/访问第一个servlet地址","/访问第二个servlet地址"})
public class DemoFilter implements Filter {
    //Filter销毁时调用
    public void destroy() {
        System.out.println("过滤器销毁");//销毁时控制台打印
    }
    //这个函数是拦截请求和响应的是创建过滤器的时候自动创建的
    public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws ServletException, IOException {
        //这里的request是ServletRequest类型只有拿到HttpServletRequest类型的request才能拿到请求头所以强转
        HttpServletRequest request = (HttpServletRequest)req;//防盗链代码
        //拿到request请求头里的一个参数referer这个参数就是谁发送的请求也就是发送请求的网页的地址
        String referer = request.getHeader("referer");//防盗链代码
        if (referer.startsWith("主页地址") && referer!=null){//防盗链代码
            System.out.println("过滤器执行");//Filter执行时调用
            resp.setContentType("text/html;charset=UFT-8");//设置response编码集
            chain.doFilter(req, resp);//这个方法是放行请求和响应的
        }
    }
    //Filter创建时调用
    public void init(FilterConfig config) throws ServletException {
        System.out.println("过滤器创建");//创建时控制台打印
    }
}
Java面向对象编程(oop),抽象,封装,继承,多态
过滤器 AOP 面向切面编程
过滤器的作用就是过滤和修改请求和响应
生命周期:随着项目的启动而创建, 当访问了地址后调用doFilter方法,这个会多次执行。随着项目的关闭而销毁
调用doFilter方法
req(servletRequest)àHTTPServletRequest注意强转(在使用httpservletrequest这个独有的方法的时候要强转)
response同上
chainfilter 链可以指向下一个地址(如果有过滤器则下一个过滤器,没有则指向资源servlet)
我也是刚入门的小白一个,就是闲来无事随心所欲想起来了就写一篇自己学到的东西,万一能够遇上贵人指点一二呢,如有独特见解评论区讨论,
 
                   
                   
                   
                   本文详细介绍了Java Web中Filter过滤器的配置与使用方法,包括生命周期、请求与响应流程及防盗链实现等关键技术点。
本文详细介绍了Java Web中Filter过滤器的配置与使用方法,包括生命周期、请求与响应流程及防盗链实现等关键技术点。
           
       
           
                 
                 
                 
                 
                 
                
               
                 
                 
                 
                 
                
               
                 
                 扫一扫
扫一扫
                     
              
             
                   3150
					3150
					
 被折叠的  条评论
		 为什么被折叠?
被折叠的  条评论
		 为什么被折叠?
		 
		  到【灌水乐园】发言
到【灌水乐园】发言                                
		 
		 
    
   
    
   
             
            


 
            