1

我想以与foursquare相同的方式更改我网站中某些页面的URL:

来自 www.foursquare.com/v/anystring/venueid

到 www.foursquare.com/v/venue-name/venueid

例如纽约的中央公园:

https://foursquare.com/v/writeherewhatyouwant/412d2800f964a520df0c1fe3

变成

https://foursquare.com/v/central-park/412d2800f964a520df0c1fe3

我正在 Tomcat 容器中开发一个纯 JSP/Servlet 应用程序,没有框架。

我想使用 tukey 的 urlrewritefilter,但我不知道如何使用来自 servlet 本身的动态值(场地名称)

我怎样才能做到这一点?

4

1 回答 1

2

在我的脑海中,您可以尝试以下方法:

1) 创建一个servlet,其servlet-mapping 匹配URL 的公共(前缀)部分(例如对于foursquare,模式应该是/v/*)。

2) 在您的 servlet 中,使用 .检索 URL 路径的剩余部分request.getPathInfo()。然后,您可以使用常规字符串实用程序对其进行解析并将其转换为您想要的新路径。

3) 假设您更新的路径位于名为 的变量中newUrl,调用response.sendRedirect(newUrl)以告诉浏览器更新其 URL。这也将使用新路径再次调用您的 servlet,因此它需要处理这两种情况。

HttpServletResponse.sendRedirect()有关它如何处理相对路径和绝对路径等的更多信息,请参阅 javadoc 。

于 2013-10-24T20:26:02.053 回答