已经四处寻找并且没有找到确凿的答案。
我试图通过我的调度程序servlet路由所有http请求,然后转到特定的控制器上。最终,我希望能够通过中心点处理资源,AJAX和另一个请求。
我目前有url mapping / *来执行此操作。我的控制器使用@RequestMapping(“/ [我的资源]。*”)来捕获我的.htm请求。不幸的是,Spring似乎使用RequestDispactcher.forward来解析来自InternalResourceViewResolver的.jsp,然后再次点击前端控制器并最终导致404错误。
我的问题是,我是否能够设置一个通用的catch来处理除常规视图请求之外的任何HTTP请求?
HTTP处理程序必须能够将请求传递到其他服务器并解析内部和外部资源,例如图像,CSS等。
此致 安迪
此致
答案 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/" />
试试这个。