我想为我的 Java Web 应用程序使用这种模式:
<url-pattern>/*/test.html</url-pattern>
然后解析 servlet 中的 URL 以获取星号的值,并使用该值查询数据库中的不同表。
然而,这似乎是 Tomcat 的非法模式。有什么方法可以实现这一点而不必对斜线之间的位进行硬编码?
(示例使用以防您想知道上下文是什么:/vancouver-hotel/rooms.html
,/seattle-hotel/rooms.html
)
我想为我的 Java Web 应用程序使用这种模式:
<url-pattern>/*/test.html</url-pattern>
然后解析 servlet 中的 URL 以获取星号的值,并使用该值查询数据库中的不同表。
然而,这似乎是 Tomcat 的非法模式。有什么方法可以实现这一点而不必对斜线之间的位进行硬编码?
(示例使用以防您想知道上下文是什么:/vancouver-hotel/rooms.html
,/seattle-hotel/rooms.html
)
最好的方法是重新排列你的 URL 结构/hotels/<cityname>
并让一个HotelServlet
监听/hotels/*
并<cityname>
使用request.getPathInfo()
. 您可以使用常用java.lang.String
方法进一步解析路径信息。例如 asplit("/")
然后将这些部分存储为请求属性或其他可由业务/域对象访问的东西。
您可以使用 url 重写过滤器:
使用 GET 参数轻松完成:
http://localhost:8080/rooms?city=vancouver