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

    1、过滤器

    1) 对于WEB应用来说,过滤器是一个驻留在服务器中的WEB组件,他可以截取客户端和WEB资源之间的请求和响应信息。WEB资源可能包括Servlet、JSP、HTML页面等
    2) 当服务器收到特定的请求后,会先将请求交给过滤器,程序员可以在过滤器中对请求信息进行读取修改等操作,然后将请求信息再发送给目标资源。目标资源作出响应后,服务器会再次将响应转交给过滤器,在过滤器中同样可以对响应信息做一些操作,然后再将响应发送给服务器。
    3) 也就是说过滤器可以在WEB资源收到请求之前,浏览器收到响应之前,对请求和响应信息做一些相应的操作。
    4) 在一个WEB应用中可以部署多个过滤器,多个过滤器就组成了一个过滤器链,请求和响应必须在经过多个过滤器后才能到达目标

    2、过滤器的使用

    1) 通过实现Filter接口完成过滤器的开发

    package com.atguigu.login.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;
    import javax.servlet.http.HttpServletResponse;
    
    public class LoginFilter implements Filter {
        
        /**
         * 初始化方法
         */
        @Override
        public void init(FilterConfig filterConfig) throws ServletException {
            System.out.println("LoginFilter  初始化完成了.......");
        }
        
        /**
         * 真正的过滤处理
         */
        @Override
        public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
                throws IOException, ServletException {
            //当前的请求是谁
            HttpServletRequest req = (HttpServletRequest) request; 
            HttpServletResponse resp = (HttpServletResponse) response ;
            
            System.out.println("URI:" + req.getRequestURI());
            System.out.println("URL:" + req.getRequestURL());
            
            String url = req.getRequestURL().toString();
            //判断要过滤的请求
            if(url.endsWith("/main.jsp")) {
                //过滤  引导去往登录页面
                resp.sendRedirect("login.jsp");
            }else {
                //放行 继续执行后续的处理。
                //FilterChain: 过滤器链对象
                chain.doFilter(req, resp);
            }
        }
        /**
         * 销毁方法
         * 
         */
        @Override
        public void destroy() {
            System.out.println("LoginFilter 销毁了......." );
        }
        
        
    }

    2)Filter在web.xml中的配置

      <filter>
        <filter-name>LoginFilter</filter-name>
        <filter-class>com.atguigu.login.filter.LoginFilter</filter-class>
      </filter>
      <filter-mapping>
        <filter-name>LoginFilter</filter-name>
        <url-pattern>/*</url-pattern>
      </filter-mapping>
  • 相关阅读:
    端接介绍及其种类
    特邀美国EMC实战专家Mark来华授课
    最简单的方式来理解阻抗、反射和端接
    如何用TDR来测试PCB板的线路阻抗
    TDR分辨率
    TDR测试原理
    长沙研讨会3月24日约您亲临现场
    如何计算阻抗(下)
    如何计算阻抗(上)
    为什么PCB上的单端阻抗控制50欧姆
  • 原文地址:https://www.cnblogs.com/lemonzhang/p/12860534.html
Copyright © 2011-2022 走看看