【发布时间】:2011-08-03 00:48:22
【问题描述】:
我已经在上下文 /myapp 下配置了我的 Web 应用程序(使用 Java Struts) - 所以我的 Web 应用程序 URL 以类似 http://test.mydomain.com/myapp/ 的内容开头
由于我们支持多种数据模型,我正在使用 UrlRewriteFilter 来提供干净的 URL。例如:假设我需要向我的用户显示 2 种不同类型的数据 - 一种是酒店列表,另一种是医院列表 - 取决于登录的用户类型。但是,两种模型都提供通过一个名为 commonView.jsp 的通用 JSP 页面。
如果用户对酒店感兴趣,URL 会喜欢 .../myapp/commonView.do?type=hotels
对于医院来说,网址也是 .../myapp/commonView.do?type=hospitals
现在,我不想向用户显示“commonView.do”这个看起来很奇怪的名称。因此,我使用 UrlRewriteFilter 来提供干净的 URL。见下文。
<rule match-type="regex">
<from>^/view/([A-Z,a-z,0-9]+)$</from>
<to>/commonView.do?type=$1</to>
</rule>
上述规则在浏览器中显示http://test.mydomain.com/myapp/view/hotels,但在内部将请求转发到commonView.do?type=hotels。医院也是如此。
现在我的问题是,一旦执行此规则,我的上下文路径开始看起来像 /myapp/view 而不仅仅是 /myapp。正因为如此,我所有的 css、js、图像等都消失了——因为现在我的网络应用程序开始在 /myapp/view 下寻找它们,而不仅仅是 /myapp。
我该如何解决这个问题?如何避免更改上下文路径并仍然能够使用 UrlRewriteFilter 提供干净的 URL?
【问题讨论】:
标签: url-rewriting struts tomcat