在Java中做这个事情好像有很多中方案,比较简单的方法是使用URLRewrite的方法,把静态地址翻译成动态地址内部使用,对客户端是透明的。
我们可以使用URLRewrite,官方网站:http://tuckey.org/urlrewrite/ 。
下面给出一个使用的例子:
将下载的压缩文件解压到web项目的WebRoot目录下,修改web.xml,添加过滤器:
<filter> <filter-name>UrlRewriteFilter</filter-name> <filter-class>org.tuckey.web.filters.urlrewrite.UrlRewriteFilter</filter-class> </filter> <filter-mapping> <filter-name>UrlRewriteFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
修改web-inf下的urlrewrite.xml文件:
<rule> <from>/test/([0-9]+)/([0-9]+).html</from> <to>/test.jsp?id=$1&testid=$2</to> </rule> <!-- 或者: <rule> <from>/test/([0-9]+)/([0-9]+).html$</from> <to>/test.jsp?id=$1&testid=$2</to> </rule> -->
这样访问 /test/123/456.html 就相当于访问 /test.jsp?id=123&testid=456 了。
注意: 这种方法时通过web过滤器来实现的,不需要依靠任何其他的模板框架,个人觉得还是比较好的。当然如果你要通过为静态来降低服务器的负载,那就得另寻他法了。