3

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 を期待していました!)。フィルターは呼び出されません..

ここで何か不足していますか?

前もってありがとう、ヨギ

4

1 に答える 1