FilterDispatcher的作用

FilterDispatcher的作用

1.用来装载配置和设置静态资源的package

  public void init(FilterConfig filterConfig) throws ServletException {       
         init();      
         String param = filterConfig.getInitParameter("packages");
         String packages = "org.apache.struts2.static template org.apache.struts2.interceptor.debugging";
        if (param != null) {
             packages = param + " " + packages;
         }
        this.pathPrefixes = parse(packages);
     }

  public void init() {

        if (configurationManager == null) {
             configurationManager = new ConfigurationManager(BeanSelectionProvider.DEFAULT_BEAN_NAME);//用来初始化ConfigurationManager
         }

         init_DefaultProperties(); // org.apache.struts2.default.properties配置的provider初始化
         init_TraditionalXmlConfigurations(); // struts-default.xml,struts-plugin.xml,struts.xml配置的provider初始化
         init_LegacyStrutsProperties(); //
         init_ZeroConfiguration(); //
         init_CustomConfigurationProviders(); //
         init_MethodConfigurationProvider();
         init_FilterInitParameters() ; //
         init_AliasStandardObjects() ; //

         Container container = init_PreloadConfiguration();
         init_CheckConfigurationReloading(container);
         init_CheckWebLogicWorkaround(container);

     }

2.包装转换请求

1     public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException {
2
3        
4          HttpServletRequest request = (HttpServletRequest) req;
5          HttpServletResponse response = (HttpServletResponse) res;
6          ServletContext servletContext = getServletContext();
7 ………………………………
8              request = prepareDispatcherAndWrapRequest(request, response);//作些编码准备和为了上传文件作包装
9              ActionMapping mapping= actionMapper.getMapping(request, getConfigurationManager()); // 把请求和配置文件挂勾            
10
11         
12 ……………………………………
13           serviceAction(request, response, servletContext, mapping);//创建Action上下文,根据给定的mapping装载ActionProxy,然后指定的Action方法被执行,输出进入response
14
15            ActionContextCleanUp.cleanUp(req);//
16       ………………
17      }
18
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值