• filter


    1、过滤器介绍:

    在Servlet规范2.3中定义了过滤器,它能够对Servlet容器的请求和响应对象进行检查和修改。

    Servlet过滤器本身并不生成请求和响应对象,只是提供过滤功能。

    Servlet过滤器能够在Servlet被调用之前检查Request对象,并修改Request Header和Request内容;

    在Servlet被调用之后检查Response对象,修改Response Header和Response的内容。

    Servlet过滤器可以过滤的Web组件包括Servlet,JSP和HTML等文件。

    Filter类似于IO中的过滤流,实现也类似于Servlet。

    2、Filter接口:

    所有的Servlet过滤器都必须实现javax.servlet.Filter接口,并实现该接口中的三个方法:

    init(FilterConfig filterConfig)

    Servlet过滤器的初始化方法,Servlet容器创建Servlet过滤器实例后将调用该方法。该方法将读取web.xml文件中Servlet过滤器的初始化参数。

    doFilter(ServletRequest请求,ServletResponse响应,FilterChain链)

    该方法完成实际的过滤操作,当客户端请求方法与过滤器设置匹配的URL时,Servlet容器将先调用过滤器的doFilter方法。FilterChain用户访问后续过滤器。

    这里的ServletRequest和ServletResponse一般需要转换成具体的Servlet实现对于的对象,如:HttpServletRequest和HttpServletResponse。

    破坏()

    Servlet容器在销毁过滤器实例前调用该方法,在该方法中释放Servlet过滤器占用的资源。

    public interface Filter
    过滤器是对资源请求(servlet或静态内容)或资源响应(或两者)执行过滤任务的对象。

    过滤器在doFilter方法中执行过滤。每个Filter都可以访问FilterConfig对象,从该对象可以获取其初始化参数,例如,可以使用ServletContext的引用,以加载过滤任务所需的资源。

    过滤器在Web应用程序的部署描述符中配置
    已为此设计确定的示例包括:
    1)身份验证过滤器
    2)日志记录和审核过滤器
    3)图像转换过滤器
    4)数据压缩过滤器
    5)加密过滤器
    6)标记过滤器
    7)触发资源访问事件的过滤器
    8)XSL / T过滤器
    9)Mime类型链过滤器

    公共接口FilterChain

    FilterChain是servlet容器向开发人员提供的对象,它提供对资源的筛选请求的调用链的视图。过滤器使用FilterChain调用链中的下一个过滤器,或者如果调用过滤器是链中的最后一个过滤器,则调用链末尾的资源。

    2.1、FilterConfig的使用:

    Filter的init方法中提供了一个FilterConfig对象,提供相关的操作:

    如获取Filter中配置的初始化参数:


    日志过滤器
    com.itzhai.login.LoginFilter

    用户名
    arthinking

    在init方法中获取:

    @Override
    public void init(FilterConfig filterConfig) throws ServletException {
    //获取Filter初始化参数
    String username = filterConfig.getInitParameter(“username”);
    }

    2.2、在Filter中访问application:

    ServletContext context = filterConfig.getServletContext();

    也可以在doFilter方法中根据转换好的request获取:

    HttpServletRequest req =(HttpServletRequest)请求; 
    ServletContext context = req.getSession()。getServletContext();

    转自:http://www.itzhai.com/java-web-notes-servlet-filters-in-the-filter-writing-the-introduction-and-use-of-filters.html

  • 相关阅读:
    linux命令(8):du命令
    linux命令(7):ipcs/ipcrm命令
    linux命令(6):tar命令
    linux命令(5):netstat命令
    linux命令(4):vmstat命令
    linux命令(3):rpm命令
    linux命令(2):grep命令
    linux命令(1):sed命令
    链表中倒数第k个节点
    链表刷题总结
  • 原文地址:https://www.cnblogs.com/XZY30/p/10587280.html
Copyright © 2020-2023  润新知