我从 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>
但是我在我的网页中看到的所有内容都是空的(我期望 HelloWorldFilter 中的 Hello World!)。过滤器甚至没有被调用..
我在这里错过了什么吗?
在此先感谢,瑜伽士