2012-05-07 15 views
0

私はすでに.doというは、私はフィルタを知った私たちは、サーブレットを使用して任意のURL ...フィルタのURLマッピング方法

今日で追加されたときに、別の疑問が発生したどのようにしていることをここにunaswered疑問を持っている:

<filter-mapping> 
     <filter-name>struts2</filter-name> 
     <url-pattern>/*</url-pattern> 
    </filter-mapping> 

でこの場合、すべてのリクエストをチェックすることを意味する場合、/ *は何ですか?アクションが呼び出されたときのほかに、url says: http://..../myapp/register.action.のように.doの場合、.actionが追加され、マッピングにも言及されません。可能であればこの疑問を解決してください...

+0

はい、すべての要求をチェックします。マッピングにはURL生成と何も関係ありません。 S2タグは完全なURLを生成します。 –

答えて

1

<filter-mapping> 
     <filter-name>struts2</filter-name> 
     <url-pattern>/*</url-pattern> 
</filter-mapping> 

はS2フィルタを呼び出すためのエントリであるweb.xmlに線の下のone.Theずつ、あなたの疑問をクリアしようとします。行<url-pattern>/*</url-pattern>は、コンテナがフィルタを呼び出すべき時をコンテナ(tomcat/weblogicなど)に伝えます。 S2の場合、アプリケーションを動作させるために多くの初期化作業を行う必要があるため、コンテナに送信される各リクエストはS2フィルタを経由する必要があります。

.action,.doのようなURLの拡張に関しては、S2は内部であり、web.xmlで見たフィルタマッピングとは関係ありません。

あなたは

yourapplication-domian/abc.action 
yourapplication-domian/abc.do 
yourapplication-domian/abc.jsp 

のようなURLを打つのであれば、短い中のすべてのものを上記の要求がフィルターを通過され、今、彼らはフィルターを通過後、S2が内部で有効なS2のURL あるURLをチェックしますたとえば、拡張子を.actionと設定した場合、S2はその拡張子を持つURLのみを認識し、処理しますが、フィルタはすべてを処理します。

これはあなたの疑問を解決するのに役立ちます。

0

struts-core.jarにstruts-default.propertiesがあります。これらの設定を見つけることができます。

などのカンマ区切りリストを指定できます。 struts.action.extension=action,jnlp,do

struts.action.extension=action (default setting) 
+0

このファイルはどこにありますか? struts-core.jar? – Nil

+0

http://struts.apache.org/2.3.1/docs/strutsproperties.html –

関連する問題