Struts源码学习笔记

来源:百度文库 编辑:神马文学网 时间:2024/04/19 10:21:31

1.Struts启动入口
   在tomcat的启动过程中,tomcat会读取/WEB-INF/web.xml文件中的配置信息进行一些初始化的工作,而Struts的启动工作就从这里开始.
   在web.xml文件中有如下的配置信息:
   
        action
        org.apache.struts.action.ActionServlet
       
            config
            /WEB-INF/struts-config.xml
       

       
            DEBUG
            2
       

       
            detail
            2
       

        2
   
  
    即表示tomcat启动的时候会初始化org.apache.struts.action.ActionServlet类.
   
   
        action
        *.do
   
  
    以*.do的请求都将交给action即org.apache.struts.action.ActionServlet类来处理.
2. Struts的ActionServlet的初始化
   ActionServlet是一个Servlet,它具有Servlet的特性,不很清楚servlet的可以参考Servlet的相关资料.
   在Servlet的初始化过程中,调用init()方法.
2.1 初始化内部信息initInternal(),调用Struts的资源管理工具org.apache.struts.util.MessageResources来进行ActionResources.properties
资源文件的初始化,此资源文件主要包括一些消息信息的定义,具体可参考org.apache.struts.action下的ActionResources.properties文件.
2.2 根据web.xml中的配置初始化Servlet的一些信息,调用initOther(),
   获取struts-conig的的配置文件路径,根据web.xml的配置"config"参数进行设定
   
        action
        org.apache.struts.action.ActionServlet
       
            config  
            /WEB-INF/struts-config.xml
       

        .......
   
  
    同理进行"convertNull"的参数的配置信息的读取.
    "convertNull"参数设置为"true"的时候,ConvertUtils
    具体参考A1中org.apache.commons.beanutils.ConvertUtils的讲解.
2.3 初始化servlet,根据web.xml中的 进行初始化,调用Digester进行解析web.xml中的相关信息.
    Digester参考A2中的org.apache.commons.digester.Digester讲解.
   
2.4 根据struts-config.xml进行数据初始化   
   
   
   
   
A1. org.apache.commons.beanutils.ConvertUtils


A2. org.apache.commons.digester.Digester