STSで私のやり方を開始し、新しい「Hello World」Spring MVCプロジェクトを作成しました。私は、次のdoFilterメソッドでフィルタ(HelloWorldFilter.java)を作成したので、私のアプリにフィルターを追加したい :シンプルなWebアプリケーションフィルタはリクエストをフィルタリングしません
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
System.out.println("Entering Filter");
request.setAttribute("hello", "Hello World from HelloWorldFilter!");
chain.doFilter(request, response);
System.out.println("Exiting HelloWorldFilter");
}
私はそれを読んだによると(私のフィルタ)は、アプリケーションで定義する必要があります春の豆としてコンテキスト(私のフィルターに春の代表者にそれを - this manualから)
は、だから私のアプリケーションコンテキストに私が持っている:
<bean id="helloWorldFilter" class="com.yl.mvc.filters.HelloWorldFilter"> </bean>
私のweb.xmlには以下が含まれています。
私の.jspファイルで<filter>
<display-name>HelloWorldFilter</display-name>
<filter-name>HelloWorldFilter</filter-name>
<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
</filter>
<filter-mapping>
<filter-name>HelloWorldFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
私が追加:
<P><%=request.getAttribute("hello")%></P>
しかし、私は私のウェブページでご覧くださいすべてが(私はHelloWorldFilterからのHello Worldを期待!)nullです。 フィルタは呼び出されません。
私はここに何か不足していますか?事前に
おかげで、 ヨギ
明白にならないように、webappを再構築/再デプロイ/再起動しましたか?フィルタは、webappの起動時に1回だけ初期化されます。したがって、 'web.xml'を編集するだけで、既に実行中のWebアプリケーションに追加することはできません。 – BalusC
確かに:)また私はいくつかの読書をして、私は私のweb.xmlを更新すべきであることを見た。私は秒で質問を編集します。ありがとう – forhas
解決してください。名前の不一致がありました。私のアプリケーションコンテキストでは、 HelloWorldFilter filter-name> –
forhas