我想在我的Java Web应用程序中使用这种模式:
<url-pattern>/*/test.html</url-pattern>
然后解析servlet中的URL以获取star的值,并使用该值查询数据库中的其他表。
然而,这似乎是Tomcat的非法模式。 有没有什么方法可以实现这个,而不必在斜杠之间硬编码?
(示例用于您想知道上下文是什么:/vancouver-hotel/rooms.html
,/seattle-hotel/rooms.html
)
答案 0 :(得分:3)
最好的方法是将您的网址结构重新排列为/hotels/<cityname>
,让HotelServlet
收听/hotels/*
,并使用request.getPathInfo()
将<cityname>
作为pathinfo。您可以使用通常的java.lang.String
方法进一步解析pathinfo。例如split("/")
,然后将这些部分存储为请求属性或其他可由业务/域对象访问的内容。
答案 1 :(得分:1)
您可以使用网址重写过滤器:
答案 2 :(得分:0)
使用GET参数轻松完成:
http://localhost:8080/rooms?city=vancouver