深入struts2.0(四)--StrutsPrepareAndExecuteFilter类

1.1      StrutsPrepareAndExecuteFilter类

早期struts用FilterDispatcher过滤器,现在普遍都用StrutsPrepareAndExecuteFilter。  就名字而言,prepare与execute 前者表示准备 说指filter init方法即配置导入;后者表示进行过滤指doFilter方法 即request请求转发给对应action去处理。

1.1.1       类图

深入struts2.0(四)--StrutsPrepareAndExecuteFilter类_第1张图片

图3.1.1  StrutsPrepareAndExecuteFilter类图

1.1.2       主要方法

Ø  init(FilterConfig filterConfig)

 

 

 

    public void init(FilterConfig filterConfig) throws ServletException

    {

        InitOperations init = new InitOperations();

        try

        {

            FilterHostConfig config = new FilterHostConfig(filterConfig);

            init.initLogging(config);

            Dispatcher dispatcher = init.initDispatcher(config);

            init.initStaticContentLoader(config, dispatcher);

 

            this.prepare = new PrepareOperations(filterConfig

                    .getServletContext(), dispatcher);

            this.execute = new ExecuteOperations(filterConfig

                    .getServletContext(), dispatcher);

            this.excludedPatterns = init.buildExcludedPatternsList(dispatcher);

 

            postInit(dispatcher, filterConfig);

        }

        finally

        {

            init.cleanup();

        }

    }

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


图3.1.2  init方法源码图

主要功能:

1.  通过过滤器配置信息调用初始化操作类InitOperations,从而初始化struts中log文件以及转发器(Dispatcher).

2.  通过servletContext上下文和dispatcher来实例化在一个请求执行之前的预备操作和过滤器的执行操作。

3.  初始化struts内置的模式。例如:struts.devMode,struts.locale等等

4.  通过继承此类,可以实现自己的过滤器,在postInit(dispatcher, filterConfig)

方法中编写自己的代码。

Ø  doFilter(ServletRequest req, ServletResponse res,

           FilterChain chain)

功能介绍:与上面的相同,这个方法也是来源于接口Filter.对于该方法的定义在Filter接口是如此注释的: 每次一对request/response到容器时,这个方法就会被调用。传递给这个方法的FilterChain运行过滤器把request和response传递给在链接中的下一个过滤器。

你可能感兴趣的:(struts2,学习笔记,文档,struts2.0)