我试图弄清楚我是如何构建一个 restFull Web 服务器的:
1:去 / 时服务单个 index.html 文件
2:所有其他 URL 将被控制器以一种安静的方式捕获 例如:/invoke1 -> 将到达“/invoke1”的请求映射
问题:
首先,spring 调度程序对提供 html 页面有一些奇怪的影响(我不是在谈论资源和<mvc:resources mapping
),我是在谈论提供 html 页面而不是 JSP。
我通过使用默认的 catalina servlet 解决了这个问题,如下所示:
<servlet> <servlet-name>default</servlet-name> <servlet-class> org.apache.catalina.servlets.DefaultServlet </servlet-class> <load-on-startup>2</load-on-startup> </servlet> <servlet-mapping> <servlet-name>default</servlet-name> <url-pattern>/docs/*</url-pattern> </servlet-mapping>
使用此代码,我可以提供 HTML 页面(即使在安全性之后,只要它们位于 /docs/* 路径下),所以从这里我可以做到:
@RequestMapping(method = RequestMethod.GET) public String main() { return "redirect:/docs/index.html"; }
但这不是我想要的。从这里开始,浏览器上的 URL 将显示为 /docs/
我想要发生的是,当用户去 / 他会得到 index.html 但是当他去 /invoke1 时,他会到达 spring 控制器。
这是我现在试图弄清楚一段时间的事情。希望您能指导我找到正确的解决方案。谢谢你。