我正在运行 tomcat6 并将其作为服务器连接到 eclipse 中,因此我可以快速调试代码更改 - 但是我遇到了传递给我的 servlet 的路由问题。
我正在运行 spring mvc3,并在类上注释了我的路线,例如:
@Controller
@RequestMapping(value="/rest")
public class HandleItController {
...
在 web.xml 我有
<welcome-file-list>
<welcome-file>welcome.html</welcome-file>
</welcome-file-list>
<servlet-mapping>
<servlet-mapping>handleit</servletmapping>
<url-pattern>/rest</url-pattern>
</servlet-mapping>
但是,我一次只能使这些设置之一按需要工作。
假设“Web 项目设置”的上下文根设置为appname
现在,如果我 GET localhost:8080/appname 我将根据需要获得欢迎页面但是如果我点击 localhost:8080/appname/rest/yadda 我会收到警告说
在名称为“handleit”的 DispatcherServlet 中找不到具有 URI [/appname/rest/yadda] 的 HTTP 请求的映射
如果我将我的 servlet url-pattern 更改为 / ,那么我会通过 servlet 路由请求而没有预先添加 appname 并且 servlet 按预期处理它们 - 但是我不能然后点击欢迎页面
我需要一个不涉及硬编码appname
到 web.xml 或控制器映射中的解决方案,必须有某种方法可以同时提供 html 文件和独立于我的应用程序部署到的 uri 的 servlet - 即停止将 url 的上下文部分发送到 servlet