【发布时间】:2010-10-06 02:26:08
【问题描述】:
我正在尝试将 URL 路由添加到在 Tomcat 5.5 中运行的 Web 应用程序。
我想让动态页面的 URL 更友好,将 main.jsp?type=test&group=info 更改为 main/test/info 风靡一时。
我在 web.xml 中设置了以下内容
<servlet>
<servlet-name>main</servlet-name>
<jsp-file>/main.jsp</jsp-file>
</servlet>
<servlet-mapping>
<servlet-name>main</servlet-name>
<url-pattern>/main/*</url-pattern>
</servlet-mapping>
在 main.jsp 中,我使用 request.getPathInfo() 来获取执行路由所需的数据。这一切似乎都运行良好,当我浏览到 http://mytestserver/example/main/test/info 时,我得到了我期望的 html。
问题是该页面上的任何相关链接、图像、样式表、javascript 等现在都已损坏,因为它们被解释为相对于完整 URL。
我想不出一个简单的方法来使用静态链接,因为测试服务器和生产服务器上的 URL 处于不同的级别:http://mytestserver/example/ 映射到生产中的http://example.com/,我真的不想拥有编写代码来包装站点上的每个内部链接或为测试服务器上的每个站点设置一个虚拟服务器。
还有什么我可以做的吗?
【问题讨论】:
-
我读到您不想在测试服务器中设置虚拟服务器,但从长远来看,这可能会让事情变得更容易。而且设置它的麻烦很小。
-
感谢大家的意见。我最终编写了一个过滤器来处理页面响应,即时更改 URL。效果很好。
标签: java jsp tomcat url-routing friendly-url