1

已经搜索并没有找到一个决定性的答案。

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

我目前有 url 映射 /* 来执行此操作。我的控制器使用 @RequestMapping("/[My resource].*") 来捕获我的 .htm 请求。不幸的是,Spring 似乎使用 RequestDispactcher.forward 从 InternalResourceViewResolver 解析 .jsp,然后再次访问前端控制器并最终导致 404 错误。

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

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

问候,安迪

问候

4

2 回答 2

1

一个更好的主意是将 servlet-mapping 更改为DispatcherServletto/而不是/*,这是因为/*使所有请求都到达此 servlet,而不是像您为 jsp forwards 找到的那样,尽管有一个 JSPServlet 映射jsps,/另一方面,映射将默认为仅当未找到请求路径的特定映射时。

于 2013-03-01T12:09:38.203 回答
0

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

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

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

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

试试这个。

于 2013-03-01T12:36:49.137 回答