zoukankan      html  css  js  c++  java
  • Filter

    The funciton of filter: filter the resouce and it's one of the Serlvet technology. When the user access to the resource, the filter will make some process for the request and response.

    How to use Filter?

      1. Create a class implements the Filter interface

      2. Modify the web.xml file's configuration and configure the filter's mapping:

      web.xml:

        <filter>
            <filter-name>FilterDemo1</filter-name>
            <filter-class>com.pp.filter.FilterDemo1</filter-class>
        </filter>
        <filter-mapping>
            <filter-name>FilterDemo1</filter-name>
            <!-- Filter all the resource in the application -->
            <url-pattern>/*</url-pattern>
        </filter-mapping>

      3. Call the chain.doFilter(request, response) method to execute the resourece

    The life circle of Filter:

     The Filter instance is created by server and the method in Filter also called by server.

     The Filter will be complete the instantiation and call the init() method when the application loaded. Every request sent by user, the doFilter() method will be called. And the server will call the destroy() method when the application was removed or the server stopped.

    public class FilterDemo1 implements Filter {
    
        public FilterDemo1() {
            System.out.println("FilterDemo1's constructor");
        }
    
        public void destroy() {
            System.out.println("destroy the FilterDemo1");
        }
    
        // this method will be called when access resource
        public void doFilter(ServletRequest request, ServletResponse response,
                FilterChain chain) throws IOException, ServletException {
            System.out.println("filter the FilterDemo1");
            // access to other resource
            chain.doFilter(request, response);
        }
    
        public void init(FilterConfig config) throws ServletException {
            System.out.println("initialize the FilterDemo1");
        }
    }

     Feature: the instance variables in Filter will lead to thread security problmes.

    The filter order: 

    The multi-filter execution order: the filter execution is executed by the filter-mapping configuring order in web.xml

    Servlet & Filter:

      1. The Filter has the same function of Servlet, in addition: the Filter has the chain.doFilter() function.

      2. In MVC, the Servlet acts as the Controller, and Filter also coule works as Controller.

      3. Struts1: Servlet serves as Controller  Struts2: Filter serves as Controller

        

  • 相关阅读:
    程序员老鸟写sql语句的经验之谈
    工作流系统在OA系统中应用
    安卓手机模拟器的安装
    专注于 web报表, web打印, 自定义web表单, web工作流管理系统 方面的技术
    工作流系统之自定义脚本的实现方式
    12306,是bug呢还是bug呢?
    精雕细琢工作流的状态管理
    eworkflow,eform,ebiao和信息系统的集成过程(for dotnet)
    WPF界面UI设计开发心得
    云计算从基础到应用架构系列索引
  • 原文地址:https://www.cnblogs.com/ppcoder/p/7510678.html
Copyright © 2011-2022 走看看