

こんにちは。

先日本番運用中のシステムにて障害を起こした者です。  
※障害の内容については、  
[java
filterプログラム追加での文字化け対応について](https://ja.stackoverflow.com/questions/13098/java-
filter%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%A0%E8%BF%BD%E5%8A%A0%E3%81%A7%E3%81%AE%E6%96%87%E5%AD%97%E5%8C%96%E3%81%91%E5%AF%BE%E5%BF%9C%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6)  
を参照ください。

対応策として、filter-mappingについて再配置する必要があるのですが、実際、どこに配置すべきか分からずに困っているところです。

【環境】  
OS：CentOS release 6.5 (Final)  
tomcat:6.0.39  
apache:2.2.21  
java:1.7.0_45

【現在のfilter-mapping】

[code]

    <filter>
        <filter-name>encodingfilter</filter-name>
        <filter-class>org.seasar.extension.filter.EncodingFilter</filter-class>
        <init-param>
            <param-name>encoding</param-name>
            <param-value>Windows-31J</param-value>
        </init-param>
    </filter>
    
    <filter>
        <filter-name>requestDumpFilter</filter-name>
        <filter-class>org.seasar.extension.filter.RequestDumpFilter</filter-class>
    </filter>
    
    <filter>
        <filter-name>hotdeployfilter</filter-name>
        <filter-class>org.seasar.framework.container.hotdeploy.HotdeployFilter</filter-class>
    </filter>
    
    <filter>
        <filter-name>s2filter</filter-name>
        <filter-class>org.seasar.framework.container.filter.S2ContainerFilter</filter-class>
    </filter>
    
    <filter>
        <filter-name>routingfilter</filter-name>
        <filter-class>org.seasar.struts.filter.RoutingFilter</filter-class>
        <init-param>
            <param-name>jspDirectAccess</param-name>
            <param-value>false</param-value>
        </init-param>
    </filter>
    
    <filter-mapping>
        <filter-name>encodingfilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
    
    <filter-mapping>
        <filter-name>hotdeployfilter</filter-name>
        <url-pattern>/*</url-pattern>
        <dispatcher>REQUEST</dispatcher>
        <dispatcher>FORWARD</dispatcher>
        <dispatcher>INCLUDE</dispatcher>
        <dispatcher>ERROR</dispatcher>
    </filter-mapping>
    
    <filter-mapping>
        <filter-name>s2filter</filter-name>
        <url-pattern>/*</url-pattern>
        <dispatcher>REQUEST</dispatcher>
        <dispatcher>FORWARD</dispatcher>
        <dispatcher>INCLUDE</dispatcher>
        <dispatcher>ERROR</dispatcher>
    </filter-mapping>
    
    <filter-mapping>
        <filter-name>NDCfilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
    
    <filter-mapping>
        <filter-name>routingfilter</filter-name>
        <url-pattern>/*</url-pattern>
        <dispatcher>REQUEST</dispatcher>
    </filter-mapping>
    
    <filter-mapping>
        <filter-name>requestDumpFilter</filter-name>
        <url-pattern>*.do</url-pattern>
        <dispatcher>REQUEST</dispatcher>
        <dispatcher>FORWARD</dispatcher>
        <dispatcher>INCLUDE</dispatcher>
        <dispatcher>ERROR</dispatcher>
    </filter-mapping>
    
[/code]

【追加したいfilter-mapping】

[code]

    <filter>
        <filter-name>NDCfilter</filter-name>
        <filter-class>util.NdcFilter</filter-class>
    </filter>
    <filter>
        <filter-name>NDCfilter</filter-name>
        <filter-class>util.NdcFilter</filter-class>
    </filter>
    
[/code]

「encodingfilter」より後ということはわかっているのですが、そもそもそれぞれのフィルターの意味があまりよくわからずに障害を発生させてしまった反省もあり、意味も合わせて知りたいと思っています。

そこで、次の2点について、ご教示いただきたく、よろしくお願いします。  
①各fillterについて、どんな役割をもっているか。  
②【追加したいfilter-mapping】を追加する位置はどこが適当か。

ご協力よろしくお願いします！

【追記（8/9）】  
A-pZ 様、ｺﾒﾝﾄありがとうございます。  
filter定義についても追加いたしました。  
フレームワークはstrutsを使っています。

もし足りない情報が他にもありましたら、追記しますのでよろしくお願いします。


CC BY-SA 3.0
2015-08-07T06:14:53.440
13129
2015-08-10T15:17:11.460
2017-04-13T12:52:38.920
-1
10349
question
java tomcat
java　filterプログラム追加について


どうやらSAStruts(Seasor2+Struts1)のようですね。

以下、簡単な説明と公式サイト（日本語）のリンクを参考に。簡単な役割とそれぞれのフィルタの紹介があります。

<http://sastruts.seasar.org/fileReference.html>

なお、公式に書かれているとおり、「必ず上記の順序で定義するようにしてください。」とありますので順番を入れ替えてしまうと正常動作しないようですね。

sastrutsのサイトにて紹介されていないものとしては、

RequestDumpFilter : 要求(Httpリクエスト)の内容を出力するデバッグ用のフィルタです。  
<http://s2container.seasar.org/2.4/ja/request_dump_filter.html>

かんたんですが以上です。


CC BY-SA 3.0
2015-08-10T15:17:11.460
14245
2015-08-10T15:17:11.460
5778
13129
answer