struts中的web.xml 和struts-cinfig.xml两个文件!

来源:百度知道 编辑:UC知道 时间:2024/06/14 18:11:32
我所知道:当服务器(web应用)启动是,服务器会自动的加载web.xml配置文。我的问题是struts-config.xml文件时什么时候被装入内存的,有事谁将它放入内存的??刚接触struts不久,希望大侠多多赐教!!!
还有那个actionservlet有没有给struts-cinfig.xml文件中声明的类进行实例化,有的话是什么时候进行的??
呵呵
问题有点小多,希望大侠多多指教!!

对于采用Struts框架的Web应用,在Web应用启动时就会加载并初始化控制器ActionServlet
ActionServlet从struts-config.xml文件中读取配置信息,把它们存放到ActionMappings对象中。
在Struts framework中, Controller主要是ActionServlet,但是对于业务逻辑的操作则主要由Action、ActionMapping、ActionForward这几个组件协调完成(也许这几个组件,应该划分到模型中的业务逻辑一块)。
其中,Action扮演了真正的控制逻辑的实现者,而ActionMapping和ActionForward则指定了不同业务逻辑或流程的运行方向。
1.  检索和用户请求匹配的ActionMapping实例,如果不存在,就返回用户请求路径无效的信息。
2.  如果ActionForm实例不存在,就创建一个ActionForm对象,把客户提交的表单数据保存到ActionForm对象中。
3.  根据配置信息决定是否需要表单验证。如果需要验证,就调用ActionForm的validate()方法。
4.  如果ActionForm的validate()方法返回null或返回一个不包含ActionMessge的ActionErrors对象,就表示表单验证成功。
5.  ActionServlet根据AtionMapping实例包含的映射信息决定将请求转发给哪个Action。如果对应的Action实例不存在,就先创建这个实例,然后调用Action的execute()方法。
6.  Action的execute()方法返回一个ActionForward对象,ActionServlet再把客户请求转发给ActionForward对象指向的JSP组件。
7.  ActionForward对象指向的JSP组件生成动态页面,返回给客户。
对于以上流程的步骤(4),如果ActionForm的validate()方法返回一个包含一个或多个ActionErr