java解惑:揭开Struts MVC Model2的面纱。

        所有关于Struts的帖子,总是将MVC Model2描叙的特别神乎,俨然是新一代的设计模式。本人新学,翻了几篇帖子,还是没能弄明白什么是Model2,于是下载Struts源码,原来是在原有视图( html )和Control(jsp/servlet)之间,添加了一个ActionSerlvet作为新的Control,所有其它动作,都要经过ActionServlet来分发。

        一个具体的图划出来,什么都清楚了,
        
                 Request                                                                      
        http-------------->ActionServlet----------------> Action----------------------->Model.
                                                                    
        也可以通过web.xml看出来,比如我用JBuilder生成的Struts 工程下web.xml那如如下:
        <servlet>
              <servlet-name>action</servlet-name>        //action--->ActionSerlvet
              <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>           
              <init-param>...
                  
         </servlet>
         <servlet-mapping>
              <servlet-name>action</servlet-name>        //action.do--->action
              <url-pattern>*.do</url-pattern>
         </servlet-mapping>
        可见,所有Action1.do,Action2.do,Action3.do都映射会到ActionServlet上,而ActionServlet内部维护着一个ActionMap,可以识别不同的Action,调用相应的Action的execute方法。

        所以,Struts真正改变Web结构的地方就在于,使用一个总控的ActionServlet管理所有的行为,由它决定哪个Action被真正调用。至于其优势,我的理解就是,由以前编写大量的Servlet改成了编写大量Action,由于Servlet在html中必须写死,而Action可以通过配置文件来管理,在一定程度上增加了整体结构的灵活性。

        developerWorks上的struts好文章:
        http://www-900.ibm.com/developerWorks/cn/java/j-strutscol/
                                                                                    
        

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值