STS から始めて、新しい基本的な "Hello World" Spring MVC プロジェクトを作成しました。アプリにフィルターを追加したかったので、次の doFilter メソッドでフィルター (HelloWorldFilter.java) を作成しました。
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");
}
私が読んだことによると(私のフィルター)は、アプリケーションコンテキストでもSpring Beanとして定義する必要があります(Springはそれを私のフィルターに委任します-このマニュアルから)
したがって、私のアプリケーションコンテキストでは次のようになります。
<bean id="helloWorldFilter" class="com.yl.mvc.filters.HelloWorldFilter"> </bean>
私のweb.xmlには以下が含まれています:
<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>
.jsp ファイルに次のように追加しました。
<P><%=request.getAttribute("hello")%></P>
しかし、Web ページに表示されるのは null だけです (HelloWorldFilter から Hello World を期待していました!)。フィルターは呼び出されません..
ここで何か不足していますか?
前もってありがとう、ヨギ