Spring MVC - 通用HTTP处理程序

时间:2013-03-01 11:48:50

标签: ajax spring model-view-controller servlets resources

已经四处寻找并且没有找到确凿的答案。

我试图通过我的调度程序servlet路由所有http请求,然后转到特定的控制器上。最终,我希望能够通过中心点处理资源,AJAX和另一个请求。

我目前有url mapping / *来执行此操作。我的控制器使用@RequestMapping(“/ [我的资源]。*”)来捕获我的.htm请求。不幸的是,Spring似乎使用RequestDispactcher.forward来解析来自InternalResourceViewResolver的.jsp,然后再次点击前端控制器并最终导致404错误。

我的问题是,我是否能够设置一个通用的catch来处理除常规视图请求之外的任何HTTP请求?

HTTP处理程序必须能够将请求传递到其他服务器并解析内部和外部资源,例如图像,CSS等。

此致 安迪

此致

2 个答案:

答案 0 :(得分:1)

更好的想法是将DispatcherServlet的servlet映射更改为/而不是/*,这是因为/*使所有请求都来到此servlet ,就像你已经为jsp转发找到的那样,尽管jsps有一个JSPServlet映射,但另一方面/映射只有在未找到特定映射的情况下才会默认为请求的路径。

答案 1 :(得分:0)

将app servlet映射到web.xml中的/。如下所示。

<servlet-mapping>
    <servlet-name>appServlet</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>

要解析其他资源,请在调度程序servlet xml中添加以下标记。 这里的资源是包含js,css,images的文件夹。它存储在maven Web应用程序结构中的Webcontent文件夹下。根据您的项目结构进行更改。

<resources mapping="/resources/**" location="/resources/" />

试试这个。