Java 我可以使用Spring DispatcherServlet捕获所有不匹配的请求吗

Java 我可以使用Spring DispatcherServlet捕获所有不匹配的请求吗,java,spring,spring-mvc,Java,Spring,Spring Mvc,我正在为一个项目使用SpringMVC,我正在使用SpringDispatcherServlet将进入应用程序的请求映射到其他地方编写的控制器。如果请求没有映射到任何现有的控制器视图映射,我正在寻找一种拥有默认处理程序(catch-all处理程序)的方法。这当前显示了一个ResourceNotFound异常,但我想知道在Spring中是否有catch all unmatched requests函数 Spring MVC中的每个HandlerMapping策略都是为了这个目的 如果Spring配

我正在为一个项目使用SpringMVC,我正在使用SpringDispatcherServlet将进入应用程序的请求映射到其他地方编写的控制器。如果请求没有映射到任何现有的控制器视图映射,我正在寻找一种拥有默认处理程序(catch-all处理程序)的方法。这当前显示了一个ResourceNotFound异常,但我想知道在Spring中是否有catch all unmatched requests函数

Spring MVC中的每个
HandlerMapping
策略都是为了这个目的

如果Spring配置已经显式地指定了
HandlerMapping
对象(例如
SimpleUrlHandlerMapping
),那么这很容易实现,但是如果依赖默认值为您提供
HandlerMapping
,则不太明显

例如,如果您使用的是带注释的控制器,那么您可能正在使用Spring自动提供的默认声明
DefaultAnnotationHandlerMapping
。但是,您可以提供自己的bean来覆盖默认值:

<bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping">
   <property name="defaultHandler" ref="myDefaultHandler"/>
</bean>


此相同模式适用于任何
Handlermapping
类型,只需替换类名即可。

您引用的类是否需要是控制器的实现?或者可以将其注释为控制器?我做了后者,并添加了handleRequest(HttpServletRequest,HttpServletResponse)方法,但它似乎没有调用此方法。我一直收到400条回复,说它在语法上不正确。