Struts控制流转的具体实现

这个接触过Struts的人都非常熟悉,但也不排除熟视无睹的情况发生:

我们知道,Struts经过这么多年的发展,其MVC架构几乎已经成为了事实上的工业标准,那么C到底是怎么来实现流程的控制流转呢?
在我们的应用中,有一个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,xxx.xml,yyy.xml...
  </param-value>
  </init-param>
  <load-on-startup>10</load-on-startup>
</servlet>
这样当我们在启动应用服务器时,通过web.xml加载org.apache.struts.action.ActionServle,进行struts核心控制器的初始化工作,初始化过程中读取struts-config.xml,加载不同的 ModuleConfig对象(关于ModuleConfig的初始化,可参考博客 http://ltc603.iteye.com/blog/68704)。

控制器接受到HTTP请求之后,通过ActionConfig中的path找到相应的action,如果没有相应的action,控制器会直接将请求转发到JSP或者静态页面,否则控制器会通过控制分发转发到相应的action类进行处理。

你可能感兴趣的:(apache,xml,应用服务器,Web,struts)