首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Web前端 >

Struts1和Struts2的差别

2013-11-08 
Struts1和Struts2的区别在Web.xml中配置分发器。Struts1使用ActionServlet作为分发器,而Struts2使用Filter

Struts1和Struts2的区别

在Web.xml中配置分发器。Struts1使用ActionServlet作为分发器,而Struts2使用Filter作为分发器、如果有多个Filter,要把Struts2的分发器Filter作为最后一个Filter代码。

?

Struts1.2的web.xml配置(注意可能由于版本不同,可能有些不一样)

?

<?xml version="1.0" encoding="UTF-8"?><web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.5" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee   http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">  <servlet>    <servlet-name>action</servlet-name>    <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>    <init-param>      <param-name>config</param-name><!--Struts的配置参数-->      <param-value>/WEB-INF/struts-config.xml</param-value><!--配置文件-->                                                                                        </init-param>    <init-param>      <param-name>debug</param-name><!--Debug模式-->      <param-value>3</param-value>    </init-param>    <init-param>      <param-name>detail</param-name><!--程序Debug细节的级别-->      <param-value>3</param-value>    </init-param>    <load-on-startup>0</load-on-startup><!--是否启动时加载-->  </servlet>  <servlet-mapping>    <servlet-name>action</servlet-name><!--Servlet的URL映射-->    <url-pattern>*.do</url-pattern><!--所有.do的URL-->  </servlet-mapping></web-app>
?

提醒:web.XML中配置的Struts Servlet为标准的SErvlet,而config、deBug、detail等为标准的Servlet参数,这些参数都是可选的。如果参数省略,将按默认的值处理。config参数的默认值为“/WEB-INF/struts-config.xml”。MyElipse向导会自动添加、管理该文件。

?

?

struts2的web.xml的配置

?

<?xml version="1.0" encoding="UTF-8"?><web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee   http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <filter>  <filter-name>struts</filter-name><!-- Filter名称 -->  <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>  <!-- Filter入口 -->  <init-param><!-- 该参数可省略,默认为“*.action” -->  <param-name>struts.action.extension</param-name><!-- action后缀参数 -->  <param-value>action</param-value><!-- 默认“.action” -->  </init-param> </filter> <!-- Struts2的Filter的URI配置 --> <filter-mapping>  <filter-name>struts</filter-name>  <url-pattern>/*</url-pattern> </filter-mapping></web-app>

?

提示:Struts2默认的后缀为“.action”。配置<url-pattern>时最好配置为“/*”,而不要只配置为“*.action”。因为Struts2集成了一些javascript、CSS资源,而这些资源并不都以“.action”结尾,例如struts2/xhtml/styles.css、struts/dojo/dojo.js。

?

?

如果要更改Struts 2的默认后缀,只需修改web.xml中Filter配置中的struts.action.extension参数,或者在/WEB-INF/classes下添加struts.properties里修改Struts2后缀:

?

struts.action.extension=action

?

将action后缀改为其他的即可。

?

?

?

?

?

?

?

热点排行