2016-07-21 28 views
0

私は検証のために私のアプリケーションにフィルタを導入しました。私はdoFilterメソッド、doFilterでhttpservletrequestをServletRequestからタイプキャストせずに取得

public void doFilter (ServletRequest servletRequest, ServletResponse servletResponse,FilterChain filterChain) 

を呼び出すとき、私はdoFilter()getParts()を使用することはできません。 getParts()HttpServletRequestで入手可能です。

ServletRequestからHttpServletRequestにキャストしていますが、null値が出ています。

質問doFilter()の中にHttpServletRequestにアクセスする方法はありますか?ServletRequestからのキャストはありませんか?または、doFilter()の中に直接HttpServletRequestのメソッドに渡さずに直接アクセスできますか?以下は

は、私は、これが知られているが、解決される問題であるTomcatのではエラ​​ー

for(final Part part : ((HttpServletRequest) servletRequest).getParts()) 
+0

どのサーブレットコンテナを使用していますか? Tomcat?どのバージョン? – vanje

+0

私はTomcat 7を使用しています。 – Lokesh

+0

型変換をしなくても問題は解決しますか?型キャストは成功したので、それは問題ではなかったので、それを避けたい理由はありません。 – EJP

答えて

0

を取得するスニペット。 https://bz.apache.org/bugzilla/show_bug.cgi?id=49711

getParts()コールがサーブレットフィルタ(デフォルトはオフ)を許可するようにTomcatを設定するオプション(allowCasualMultipartParsing)が追加されました。 documentationを参照してください:

allowCasualMultipartParsing:trueに設定し Tomcatが自動的にHttpServletRequest.getPart *またはHttpServletRequest.getParameter *がターゲット・サーブレットがマークされていない場合でも、呼び出されたときにmultipart/form-dataリクエストボディを解析する必要がある場合@MultipartConfigアノテーション(詳細はServlet Specification 3.0、Section 3.2を参照してください)。 false以外の設定では、Tomcatは技術仕様に準拠していない方法で動作することに注意してください。デフォルトはfalseです

関連する問題