Spring与struts比较

本文对比了 Spring MVC 和 Struts 两大 Web 开发框架,重点介绍了两者在 web.xml 配置、配置文件内容及请求处理方面的不同。通过具体的代码示例,展示了两种框架下配置项的具体实现。
面的内容只是对web层的对比,很浮浅,spring的东西,很大部分引自xiaxin的<<spring开发指南>>,里面如果有错将在学习过程中修正.

Spring与struts比较
    1、web.xml
        这个文件中的内容是j2ee定义的,整体上看没有什么变化, 主要描述了系统的入口点,映射,以及配置文件。
     struts如下:
     

程序代码:

       <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, /WEB-INF/struts-config1.xml</param-value>(struts的配置文件)
         </init-param>
       </servlet>
    
       <servlet-mapping>
         <servlet-name>action</servlet-name>
         <url-pattern>*.do</url-pattern>(URL映射)
       </servlet-mapping>
    

Spring mvc框架如下:
代码如下:

         <servlet>
             <servlet-name>Dispatcher</servlet-name>
             <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>(入口点)
             <init-param>
                 <param-name>config</param-name>
                 <param-value>/WEB-INF/spring-config.xml</param-value>(配置文件,没试过多个配置文件的用法)
             </init-param>
         </servlet>
            
         <servlet-mapping>
             <servlet-name>Dispatcher</servlet-name>
             <url-pattern>*.do</url-pattern>(URL映射)
         </servlet-mapping>
    

2、config file
         Struts的默认配置文件名为:struts-config.xml
         Spring的默认配置文件名为:${ServletName}-servlet.xml
         这两个配置文件可以看出struts与spring在mvc
        先看struts-config.xml
         

源代码:

              <struts-config>
         <form-beans>
            <form-bean name="logininfo" type="biz.suncore.struts.form.LoginInfo"/>(给数据对象一个名子,它的值被自动从web的form中的填入,可以继承validationForm等)
         </form-beans>
                 <global-forwards>
              <forward name="failure" path="/failure.jsp" />
              <forward name="success" path="/success.jsp" />(全局性的跳转)
              <forward name="message" path="/error.jsp" />
                 </global-forwards>
                 <action-mappings>
                       <action name="logininfo" type="biz.suncore.struts.action.LoginAction" validate="false" scope="request" path="/loginAction">(请求/处理单元映射)
                             <forward name="success_view" path="/jsp/main.jsp" />
                             <forward name="fail_view" path="/jsp/loginfail.jsp" />   (页面导航)
              </action>
                 </action-mappings>
               <message-resources parameter="biz.suncore.scm.web.resource.ApplicationResources" />(国际化)
               <message-resources key="test" parameter="biz.suncore.scm.web.resource.ApplicationResourcesTest" />(国际化的绑定形式)
               <plug-in className="org.apache.struts.validator.ValidatorPlugIn">
                  <set-property value="/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml" property="pathnames" />(验证)
               </plug-in>
              </struts-config>


再看看spring-config.xml
         

程序代码:

                      <beans>
             <!--Definition of View Resolver -->
                     <!--把输出结果与界面相结合,这一部分在struts中可以说没有的,也正因如此spring框架才可以用很多MVC结构吧-->
             <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
                 <property name="viewClass">
                     <value>
                         org.springframework.web.servlet.view.JstlView(采用哪种表现层模板)
                     </value>
                 </property>
                 <property name="prefix">(显示所用资源的前缀,没试过可不可以有多种前缀或者后缀)
                     <value>
                         /jsp/
                     </value>
                 </property>
                 <property name="suffix">(后缀)
                     <value>.jsp</value>
                 </property>
             </bean>
            

            <!--上面是对表现的定义-->
            <!--下面是对请求的处理-->
             <!--Request Mapping -->
             <bean id="urlMapping" class="org.springframework.web.servlet.handler.SimpleUrlHanderMapping">
                 <property name="mappings">
                     <props>
                         <prop key="/login.do">LoginAction</prop>(请求/处理单元映射)
                     </props>
                 </property>
             </bean>
            
             <!--Action Definition -->
             <bean id="LoginAction" class="biz.suncore.spring.action.LoginAction">
                 <property name="commandClass">
                     <value>biz.suncore.spring.form.LoginInfo</value>(数据对象,struts用bean-name定义的东西)
                 </property>
                 <property name="fail_view">
                     <value>loginfail</value>(页面导航,由于viewResolver的定义,如果是大项目的话,这儿就要少写几个字,但对自动生成来讲就没什么啦)
                 </property>
                 <property name="success_view">   
                     <value>main</value>
                 </property>
                      <!--Request Mapping 和Action Definition的动做在struts中用action标签全部做到,功能相当(就我目前了解:)>
             </bean>            
         </beans>
 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值