【发布时间】:2012-01-15 00:09:11
【问题描述】:
我希望能够让 URL 转到像 http://host/Servlet/1 这样的 servlet,而不是 http://host/Servlet?ID=1
对于如何实现这一点有什么建议吗?最好也有多个级别,所以我可以做类似http://host/Servlet/1/Files
谢谢
【问题讨论】:
标签: java jakarta-ee tomcat servlets servlet-filters
我希望能够让 URL 转到像 http://host/Servlet/1 这样的 servlet,而不是 http://host/Servlet?ID=1
对于如何实现这一点有什么建议吗?最好也有多个级别,所以我可以做类似http://host/Servlet/1/Files
谢谢
【问题讨论】:
标签: java jakarta-ee tomcat servlets servlet-filters
HttpServletRequest 公开了一个方法getPathInfo(),它在 servlet 路径本身之后为您提供有关请求 URL 的信息。您可以将您的 servlet 映射到 /Servlet/*,然后使用 getPathInfo() 获取 ID。
【讨论】:
如果您没有“必须单独使用 Tomcat”的要求,我建议您在 Tomcat 前面设置一个 Apache 层,您可以在其中设置此类和其他复杂的 URL 重写。
【讨论】:
解决此问题的一种方法可能是让您的控制器-servlet 在前面根据来自 HttpServletRequest 上的 getRequestURI 的请求 URI 调度到后面的正确 servlet。
【讨论】:
您可以使用过滤器来做到这一点。通过一些规则分派传入的 URL 并重定向到分派的 URL。
【讨论】: