虚拟主机域名注册-常见问题虚拟主机问题 → 虚拟主机问题


jsp 用urlrewrite 实现URL 重写
作者:

是否看到别人的网站网址名都不带后缀名比较酷,比如qq空间的地址,其实用urlrewrite这个包很容易就实现了。 
下面是使用说明: 

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 
3.将以下代码添加到web.xml里 

Xml代码 
  1. <filter>

  2. <filter-name>UrlRewriteFilter</filter-name>

  1.  

  2. <filter-class>

  3. org.tuckey.web.filters.urlrewrite.UrlRewriteFilter 

  4. </filter-class>

  5. </filter>

  6. <filter-mapping>

  7. <filter-name>UrlRewriteFilter</filter-name>

  8. <url-pattern>/*</url-pattern>

  9. </filter-mapping>


4.修改urlrewrite.xml 
Xml代码 
  1. <?xmlversion="1.0"encoding="utf-8"?>

  2. <!DOCTYPE urlrewrite PUBLIC "-//tuckey.org//DTD UrlRewrite 2.6//EN" 

  3. "http://tuckey.org/res/dtds/urlrewrite2.6.dtd">

  4. <!-- 

  5. Configuration file for UrlRewriteFilter 

  6. http://tuckey.org/urlrewrite/ 

  7. -->

  8. <urlrewrite>

  9. <rule>

  10. <from>^/([a-z]+)$</from>

  11. <totype"forward">/world.jsp?id=$1</to>

  12. </rule>

  13. <rule>

  14. <from>^/world/(.*)$</from>

  15. <to>/world.jsp?tid=$1</to>

  16. </rule>

  17. <rule>

  18. <from>^/(.*).html$</from>

  19. <to>/test1/$1.jsp</to>

  20. </rule>

  21. <outbound-rule>

  22. <note>

  23. The outbound-rule specifies that when response.encodeURL is called (if you are using JSTL c:url) 

  24. the url /rewrite-status will be rewritten to /test/status/. 

  25. The above rule and this outbound-rule means that end users should never see the 

  26. url /rewrite-status only /test/status/ both in thier location bar and in hyperlinks 

  27. in your pages. 

  28. </note>

  29. <from>/rewrite-status</from>

  30. <to>/test/status/</to>

  31. </outbound-rule>

  32. </urlrewrite>



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

mysite是你的项目名 

实际上访问的是http://localhost:8080/mysite/world.jsp?tid=1

 



来源:
阅读:1348
日期:2012-12-29

【 双击滚屏 】 【 推荐朋友 】 【 收藏 】 【 打印 】 【 关闭 】 【 字体: 】 
上一篇:Mysql用命令导入数据两种方式
下一篇:虚拟主机设置脚本映射的方法(主要用于asp.net程序的伪静态)
  >> 相关文章