struts1与struts2的区别

来源:互联网 发布:淘宝站外流量有权重吗 编辑:程序博客网 时间:2024/06/06 00:34

1.struts1是单例的,即struts1在创建只有一个,在整个生命周期内,所以线程不安全,

struts1的action是通过继承actionsupport类实现的与servlet耦合,所以做测试复杂,struts1是基于actionform的。

2struts2是多例模式,即每次都创建一个对象,线程安全,没有用到actionform,可以在action中定义属性及使用它;struts2的action不继承其他类,是一个简单

的Java类,便于测试

struts1的struts1.xml配置文件

  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "http://struts.apache.org/dtds/struts-config_1_2.dtd">  
  3.   
  4. <struts-config>  
  5.     <form-beans>  
  6.         <form-bean name="loginActionForm" type="com.lanp.webapp.form.LoginActionForm">  
  7.         </form-bean>  
  8.     </form-beans>  
  9.   
  10.     <action-mappings>  
  11.         <action path="/login"  
  12.             type="com.lanp.webapp.action.LoginAction"  
  13.             name="loginActionForm"  
  14.             scope="request">  
  15.             <forward name="success" path="/jsp/loginSucces.jsp" />  
  16.             <forward name="error" path="/jsp/loginError.jsp" />  
  17.         </action>  
  18.     </action-mappings>  
  19. </struts-config> 
struts2的struts2.xml配置文件

  1. <?xml version="1.0" encoding="UTF-8" ?>  
  2. <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">  
  3. <struts>  
  4.     <!-- Struts 2 的Action必须放在包空间下 -->  
  5.     <package name="strutsqs" extends="struts-default">  
  6.         <!-- 定义action的名字以及action的实现类 -->  
  7.         <action name="LoginAciton" class="com.gjy.struts2.loginAction.LoginAction">  
  8.             <!-- 定义action的处理结果result,result有两个属性,其中name指定返回名称,tyle指定返回的类型 -->  
  9.             <!-- 处理Login错误时返回/error.jsp -->  
  10.                         <result name="error">/error.jsp</result>  
  11.             <!-- 处理Lognin正确时/suc.jsp -->  
  12.                     <result name="suc">/suc.jsp</result>  
  13.         </action>  
  14.     </package>      
  15. </struts>
struts1的web.xml配置文件

  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">  
  3.   <display-name>MyStruts1Prj</display-name>  
  4.     
  5.   <servlet>  
  6.     <servlet-name>action</servlet-name>  
  7.     <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>  
  8.       
  9.     <init-param>  
  10.         <param-name>config</param-name>  
  11.         <param-value>/WEB-INF/conf/struts-config.xml</param-value>  
  12.     </init-param>  
  13.     <init-param>  
  14.         <param-name>debug</param-name>  
  15.         <param-value>3</param-value>  
  16.     </init-param>  
  17.     <init-param>  
  18.         <param-name>detail</param-name>  
  19.         <param-value>3</param-value>  
  20.     </init-param>  
  21.       
  22.     <load-on-startup>0</load-on-startup>  
  23.   </servlet>  
  24.     
  25.   <servlet-mapping>  
  26.     <servlet-name>action</servlet-name>  
  27.     <url-pattern>*.do</url-pattern>  
  28.   </servlet-mapping>  
  29.     
  30.   <welcome-file-list>  
  31.     <welcome-file>index.jsp</welcome-file>  
  32.   </welcome-file-list>  
  33. </web-app> 
struts2的web.xml的配置文件

  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <web-app version="2.5"   
  3.     xmlns="http://java.sun.com/xml/ns/javaee"   
  4.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"   
  5.     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee   
  6.     http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">  
  7.   <welcome-file-list>  
  8.     <welcome-file>index.jsp</welcome-file>  
  9.   </welcome-file-list>  
  10.   <filter>  
  11.     <filter-name>struts2</filter-name>  
  12.     <!--定义struts2的核心Filter的实现类 -->  
  13.     <filter-class>  
  14.         org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter  
  15.     </filter-class>  
  16.   </filter>  
  17.   <filter-mapping>  
  18.     <filter-name>struts2</filter-name>  
  19.     <url-pattern>/*</url-pattern>  
  20.   </filter-mapping></web-app> 
总结:

从上面的struts1和struts2的web.xml来看,struts2是基于拦截器来实现的