jsp实现类似博客的URL转向功能

细心的我们发现当在csdn里输入hi.csdn.net/**时候,这里并没有是一个jsp或者php页面,被转向了其他的地方。这里**可以为用户的名称,这样的实现方式可以有效的隐藏地址,传递参数等。为每个用户分配自己的路径。但是这里并不是重定向301,配置错误页面404等。比如www.ttsmm.com。这里就做了301,当用户输入ttsmm.com时候浏览器会301自动跳转到www.ttsmm.com .

这种实现的方式是伪静态。 需要一定的静态规则才能转向过去。

实现方法:

1.下载urlrewrite,官方下载地址:http://tuckey.org/urlrewrite/dist/urlrewritefilter-2.6.zip

2.解压缩文件,压缩包内文件copy到项目中(压缩包位置 -> 项目位置):

urlrewrite-2.6.0-src/webapp/WEB-INF/lib/urlrewrite-2.6.0.jar -> WebRoot/WEB-INF/lib/urlrewrite-2.6.0.jar

urlrewrite-2.6.0-src/webapp/WEB-INF/urlrewrite.xml -> WebRoot/WEB-INF/urlrewrite.xml

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>

修改urlrewrite.xml

<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE urlrewrite PUBLIC "-//tuckey.org//DTD UrlRewrite 2.6//EN" "http://tuckey.org/res/dtds/urlrewrite2.6.dtd"> <!-- Configuration file for UrlRewriteFilter http://tuckey.org/urlrewrite/ --> <urlrewrite> <rule> <from>^/([a-z]+)$</from> <to type= "forward" >/world.jsp?id=$1</to> </rule> <rule> <from>^/world/(.*)$</from> <to>/world.jsp?tid=$1</to> </rule> <rule> <from>^/(.*).html$</from> <to>/test1/$1.jsp</to> </rule> <outbound-rule> <note> The outbound-rule specifies that when response.encodeURL is called (if you are using JSTL c:url) the url /rewrite-status will be rewritten to /test/status/. The above rule and this outbound-rule means that end users should never see the url /rewrite-status only /test/status/ both in thier location bar and in hyperlinks in your pages. </note> <from>/rewrite-status</from> <to>/test/status/</to> </outbound-rule> </urlrewrite>

rule是url重写规则,from是显示出来的地址,to是映射的实际地址,$1是重写参数,可以为多个,()里是匹配的正则表达式.
好了,在项目中新建world.jsp,启动tomcat,输入
http://localhost:8080/mysite/world/1

mysite是你的项目名

实际上访问的是http://localhost:8080/mysite/world.jsp?tid=1
这样就简单的实现了伪静态的效果

购买空间的时候,如果你的空间需要伪静态支持,请务必要问是否支持伪静态,或者免费开通伪静态。以免上当!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值