0

から私はこのようなサーブレットを持ってアクセスサーブレットのinitパラメータはフィルタ


@WebFilter(dispatcherTypes = { DispatcherType.REQUEST }, urlPatterns = { "https://stackoverflow.com/a/*" }) 
public class MyFilter implements Filter { 

public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { 
//... 
     HttpServletRequest req = (HttpServletRequest)request; 
     //problem comes here 
     System.out.println(req.getServletContext().getInitParameter("name")); 
//... 
} 

問題は、私は設定していてもということ、です@ WebInitParameter in MyServlet、プログラムはヌル文字列を出力します(//問題はMyFilterにあります)。私は確認して、のdoFilter()の前にサーブレットからinit()メソッドが実行されたことを確認しました。 誰も私にこの問題を照らすことができますか?なぜinitParameter "name"が値に設定されている場合、nullですか?

ありがとうございます!

答えて

1

WebInitParamは、アプリケーション全体のコンテキストではなく、サーブレットの初期化パラメータを定義していると思いますので、ServletContextオブジェクトからアクセスするパラメータをweb.xmlデプロイメント記述子で定義します。

+0

サーブレットのServletConfigにFilterからアクセスできますか? – artaxerxe

+0

私はそうは思わない、たぶん、より良いオプションのフィルタ初期化パラメータとサーブレットのinitパラメータを使用しています。 – designerrr

関連する問題