2016-11-24 8 views
0

あるサーブレットから別のサーブレットに要求を転送するときにフィルタを使用することは可能ですか?私のプロジェクトのweb.xmlで、私はこのフィルタマッピングを試しました:Java:サーブレットからサーブレットに転送するときのフィルタ

<filter-mapping> 
    <filter-name>myFilter</filter-name> 
    <url-pattern>/*</url-pattern> 
    <dispatcher>REQUEST</dispatcher> 
    <dispatcher>FORWARD</dispatcher> 
    <dispatcher>INCLUDE</dispatcher> 
</filter-mapping> 

サーブレットからJSPへの転送は問題ありません。サーブレットからサーブレットへの転送では、フィルタは呼び出されません。私は何か間違っているのか、それは不可能なのかなと思います。

答えて

0

要求がクライアントに送られてからサーバーに戻ってくるのでjspの場合は動作しますが、サーブレットの場合はクライアントにリダイレクトされませんので、フィルタは画像に表示されません。

転送する場合は、forwardの代わりにsendRedirectを使用します。

差b/w sendRedirectとforwardを確認するには、下のリンクをクリックしてください。

SendRedirectコンテナ転送を使用すると、sendRedirectメソッド内に指定されたurlがクライアントに新しい要求として表示されるように、クライアントまたはブラウザへの要求が表示されます。

続きを読む:http://javarevisited.blogspot.com/2011/09/sendredirect-forward-jsp-servlet.html#ixzz4QvHxSVFF

+0

これは正しくありません。フィルタは内部転送に対しても呼び出すことができます。これをチェックしてください - http://stackoverflow.com/questions/32816502/calling-a-filter-before-a-servlet-from-rest-webservice/32816871#32816871 – ramp

+0

あなたは彼が同じように使用された問題のbczを試してみましたか?リンクが動作しません。 – gladiator

+0

はい。それ以外の場合、 'FORWARD'と 'INCLUDE'の値を持つディスパッチャ要素が存在するのはなぜですか?続きを読む1. https://www.ibm.com/support/knowledgecenter/SSD28V_8.5.5/com.ibm.websphere.nd.doc/ae/cweb_sfilt.html 2. https://coderanch.com/t/ 362000/java/Filters-Dispatchers 3. http://otndnld.oracle.co.jp/document/products/as10g/101300/B25221_03/web.1013/b14426/filters.htm#BCFIHAEA – ramp

関連する問題