你的位置:首页 > Java教程

[Java教程]jsp重写url


众所周知,使用java web编程出来的网站都是.jsp结尾的,而别人的网站都是以.html结尾的,那么这种效果是怎么实现的呢?就是这篇文章产生的原因,jsp重写url需要设计到第三方架包urlrewritefilter,这里提供一个下载地址

urlrewritefilter

java导入第三方架包

1.将urlrewrite-2.6.0.jar放入项目的WEB-INF—>lib文件夹下

2.将urlrewrite.

 

 3.在web.

<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>

4.修改urlrewrite.

其余的不用管,只需要管理<rule>这个节点里面的内容,这里面配置的就是重写url的规则

<from>显示在浏览器上的地址,呈现出来给人看的,比如xxx.html

<to>实际指向的项目里面的页面地址,比如呈现出来的xxx.html其实访问的是xxx.jsp

<from>里面编写拦截规则,^代表规则开始;$代表规则结束;()代表参数,里面可以填写正则表达式;$1代表第一个参数

比如<from>^/(.*).html</from> <to>/$1.jsp</to> 只要是.html结尾的地址都会被拦截然后转成实际地址,(.*)表示可以填写任意内容$1表示括号里面是什么这个值就是什么

比如/index.html实际访问的就是/index.jsp

 

注意:

  如果<from>里面填写的是(.*)那么你的图片路径,引用各种外部资源路径就会有问题

  如果地址栏后面会有参数的拼接,可以

<from>^/(.*).html?(.*)</from>第二个(.*)即为拼接参数的形式字符串比如/index.html?name=''&id=''
<to>/$1.jsp?$2</to>第二个$2即为拼接参数带进来的值比如/index.jsp?name=''&id=''

 

至此整个重写url就完成了,还有什么不足之处请大家多多指教哦!