3

我想为我的 Java Web 应用程序使用这种模式:

<url-pattern>/*/test.html</url-pattern>

然后解析 servlet 中的 URL 以获取星号的值,并使用该值查询数据库中的不同表。

然而,这似乎是 Tomcat 的非法模式。有什么方法可以实现这一点而不必对斜线之间的位进行硬编码?

(示例使用以防您想知道上下文是什么:/vancouver-hotel/rooms.html/seattle-hotel/rooms.html

4

3 回答 3

3

最好的方法是重新排列你的 URL 结构/hotels/<cityname>并让一个HotelServlet监听/hotels/*<cityname>使用request.getPathInfo(). 您可以使用常用java.lang.String方法进一步解析路径信息。例如 asplit("/")然后将这些部分存储为请求属性或其他可由业务/域对象访问的东西。

于 2009-11-25T12:01:14.720 回答
1

您可以使用 url 重写过滤器:

http://tukey.org/urlrewrite/

于 2009-11-25T11:21:36.700 回答
0

使用 GET 参数轻松完成:

http://localhost:8080/rooms?city=vancouver
于 2009-11-25T11:07:26.430 回答