锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
]]>
]]>
]]>
涓鑸殑url----------------------------------------------------------杈冨ソ鐨剈rl
http://www.xxx.net/user/profile.do?id=20001 ====> http://www.xxx.net/user/20001
http://www.xxx.net/forum/board.do?name=java ====> http://www.xxx.net/forum/java
http://www.xxx.net/forum/thread.do?id=29923 ====> http://www.xxx.net/thread/29923
鍚庤呮槑鏄捐緝涓虹洿瑙傚拰婕備寒銆?
浣跨敤url rewrite鍙互寰堝ソ鐨勬敼鍠勮繖涓姸鍐點傜綉绔檜rl rewrite搴旂敤鏄潪甯稿箍娉涚殑錛岃壇濂界殑url璁捐緇欑敤鎴峰甫鏉ョ殑闈炲父濂界殑浣撻獙錛屽悓鏃朵篃鑳藉惛寮曟悳绱㈠紩鎿庣殑娉ㄦ剰銆?/fieldset>鍘熸枃鍦板潃錛?a >http://www.iteye.com/topic/53834
浣跨敤鏂瑰紡錛?/strong>
1 閰嶇疆web.xml鏂囦歡
鏍蜂緥錛?/strong>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<filter>
<filter-name>encodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter>
<filter-name>osivFilter</filter-name>
<filter-class>
org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class>
</filter>
<listener>
<listener-class>
org.springframework.web.context.request.RequestContextListener</listener-class>
</listener>
<filter-mapping>
<filter-name>osivFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter-name>UrlRewriteFilter</filter-name>
<filter-class>org.tuckey.web.filters.urlrewrite.UrlRewriteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>UrlRewriteFilter</filter-name>
<url-pattern>*.html</url-pattern>
<dispatcher>REQUEST</dispatcher>
<dispatcher>FORWARD</dispatcher>
<dispatcher>INCLUDE</dispatcher>
</filter-mapping>
<filter>
<filter-name>struts-prepare</filter-name>
<filter-class>
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareFilter</filter-class>
<init-param>
<param-name>actionPackages</param-name>
<param-value>com.secneo.action.*.*</param-value>
</init-param>
</filter>
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
</filter>
<filter>
<filter-name>struts-execute</filter-name>
<filter-class>
org.apache.struts2.dispatcher.ng.filter.StrutsExecuteFilter</filter-class>
</filter>
<filter>
<filter-name>struts-cleanup</filter-name>
<filter-class>org.apache.struts2.dispatcher.ActionContextCleanUp</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>*.jsp</url-pattern>
</filter-mapping>
<!--鍦╯tructs2涓嬌鐢║rlRewriteFilter榪囨護鍣?->
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>*.action</url-pattern>
<dispatcher>REQUEST</dispatcher>
<dispatcher>FORWARD</dispatcher>
<dispatcher>INCLUDE</dispatcher>
</filter-mapping>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>*.tld</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>*.tag</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>struts-prepare</filter-name>
<url-pattern>*.jsp</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>struts-prepare</filter-name>
<url-pattern>*.action</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>struts-prepare</filter-name>
<url-pattern>*.tld</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>struts-execute</filter-name>
<url-pattern>*.jsp</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>struts-execute</filter-name>
<url-pattern>*.action</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>struts-execute</filter-name>
<url-pattern>*.tld</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>struts-cleanup</filter-name>
<url-pattern>*.jsp</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>struts-cleanup</filter-name>
<url-pattern>*.action</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>struts-cleanup</filter-name>
<url-pattern>*.tld</url-pattern>
</filter-mapping>
<listener>
<listener-class>
org.springframework.web.util.IntrospectorCleanupListener</listener-class>
</listener>
鏍蜂緥錛?/strong>
<urlrewrite>
<rule>
<from>^/(.*).html$</from>
<to type="forward">/$1.action</to>
</rule>
<rule>
<from>^/(.*).html?(.*)$</from>
<to type="forward">/$1.action?$2</to>
</rule>
</urlrewrite>
]]>
]]>
<package name="default" extends="struts-default">
<interceptors>
<interceptor name="timer" class=".."/>
<interceptor name="logger" class=".."/>
</interceptors>
<action name="login"
class="tutorial.Login">
<interceptor-ref name="timer"/>
<interceptor-ref name="logger"/>
<result name="input">login.jsp</result>
<result name="success"
type="redirectAction">/secure/home</result>
</action>
</package>
2)
<package name="default" extends="struts-default">
<interceptors>
<interceptor name="timer" class=".."/>
<interceptor name="logger" class=".."/>
<interceptor-stack name="myStack">
<interceptor-ref name="timer"/>
<interceptor-ref name="logger"/>
<interceptor-ref name="defaultStack"/>
</interceptor-stack>
</interceptors>
<action name="login"
class="tutuorial.Login">
<interceptor-ref name="myStack"/>
<result name="input">login.jsp</result>
<result name="success"
type="redirectAction">/secure/home</result>
</action>
</package>
鎷︽埅鍣ㄦ墽琛岄『搴忥細
<interceptor-stack name="xaStack">
<interceptor-ref name="thisWillRunFirstInterceptor"/>
<interceptor-ref name="thisWillRunNextInterceptor"/>
<interceptor-ref name="followedByThisInterceptor"/>
<interceptor-ref name="thisWillRunLastInterceptor"/>
</interceptor-stack>
鎵ц欏哄簭錛?br />thisWillRunFirstInterceptor
thisWillRunNextInterceptor
followedByThisInterceptor
thisWillRunLastInterceptor
MyAction1
MyAction2 (chain)
MyPreResultListener
MyResult (result)
thisWillRunLastInterceptor
followedByThisInterceptor
thisWillRunNextInterceptor
thisWillRunFirstInterceptor
鑷畾涔夋嫤鎴櫒:蹇呴』瀹炵幇 com.opensymphony.xwork2.interceptor.Interceptor 涔熷彲浠ョ戶鎵?AbstractInterceptor
鎷︽埅鍣ㄨ淇濊瘉綰跨▼瀹夊叏銆傚洜涓簊tructs2涓嫤鎴櫒浼氬湪璇鋒眰闂村叡浜?/span>
]]>
]]>
鍦ㄧ綉涓婃悳浜嗕竴涓嬪緢澶氳繖鏂歸潰鐨勮祫鏂?寮曠敤浜嗕竴浜?鎬葷粨浜嗕竴涓?
榪欑瘒鏂囩珷瀵逛粈涔堟槸綰跨▼瀹夊叏鐨勪唬鐮佸拰濡備綍浣跨敤綰跨▼瀹夊叏鐨勪唬鐮佸仛浜嗚緇嗛槓榪?br />
http://hi.baidu.com/niujunkai/blog/item/021964adc130660a4a36d6ab.html
涓嬮潰鏄畠鍐呭鐨勫紩鐢?
濡傛灉鎯沖姞娣辯悊瑙ervlet鐨勫綰跨▼鍙互璇昏姝ゆ枃錛岄槓榪扮殑寰堣緇嗐?br /> http://hi.baidu.com/platon/blog/item/64a20ff3f96e7fce0b46e031.html