Struts 源码学习笔记

2008-02-23 09:32:36来源:互联网 阅读 ()

新老客户大回馈,云服务器低至5折


1.Struts启动入口
在tomcat的启动过程中,tomcat会读取/Web-INF/web.XML文件中的配置信息进行一些初始化的工作,而Struts的启动工作就从这里开始.
在web.xml文件中有如下的配置信息:
<Servlet>
<servlet-name>action</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
<init-param>
<param-name>config</param-name>
<param-value>/WEB-INF/struts-config.xml</param-value>
</init-param>
<init-param>
<param-name>DEBUG</param-name>
<param-value>2</param-value>
</init-param>
<init-param>
<param-name>detail</param-name>
<param-value>2</param-value>
</init-param>
<load-on-startup>2</load-on-startup>
</servlet>
即表示tomcat启动的时候会初始化org.apache.struts.action.ActionServlet类.
<!-- Standard Action Servlet Mapping -->
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
以*.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"参数进行设定
<servlet>
<servlet-name>action</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
<init-param>
<param-name>config</param-name> <!--即此处的设置信息-->
<param-value>/WEB-INF/struts-config.xml</param-value>
</init-param>
.......
</servlet>
同理进行"convertNull"的参数的配置信息的读取.
"convertNull"参数设置为"true"的时候,ConvertUtils
具体参考A1中org.apache.commons.beanutils.ConvertUtils的讲解.
2.3 初始化servlet,根据web.xml中的 <servlet-mapping>进行初始化,调用Digester进行解析web.xml中的<servlet-mapping>相关信息.
Digester参考A2中的org.apache.commons.digester.Digester讲解.

2.4 根据struts-config.xml进行数据初始化




A1. org.apache.commons.beanutils.ConvertUtils


A2. org.apache.commons.digester.Digester

上一篇: EJB3.0初步之环境配置
下一篇: Midlet与服务器的交互

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:怎样在J2EE组件中引用和查找Web服务

下一篇:JNI初探二(windows平台开发)