jsp的url去掉.jsp的后缀——urlrewrite的使用
来源:互联网 发布:江南大学软件下载 编辑:程序博客网 时间:2024/06/18 18:10
最近面试被问到问题:用jsp做的网站网页的后缀都有.jsp的后缀,有没有什么办法能够消除掉这个后缀。回来研究了发现用urlrewrite可以达到目的。
http://tuckey.org/urlrewrite/
这个是适用于java web application的urlrewrite的网站,网站上写的相当清楚了。我就对应于消除掉.jsp后缀这个特定的任务记录一下。
该网站给出了urlrewrite.xml的示例配置。http://urlrewritefilter.googlecode.com/svn/trunk/src/doc/manual/4.0/urlrewrite.xml其中可以看到,最简单的urlrewrite就是
<rule> <from>/some/old/page.html</from> <to>/very/new/page.html</to></rule>
from标签内就是浏览器请求的url,to就是发给容器的url。
根据官方给出的文档http://urlrewritefilter.googlecode.com/svn/trunk/src/doc/manual/4.0/index.html
<from> element
You must always have exactly one from for each rule or outbound-rule. Value can be a regular expression in the Perl5 style. Note, from url's are relative to the context.
<to> element
Value can be a regular replacement expression in the Perl5 style.
这里能够使用正则表达式来指定特定的url。那么最先想到的方法就是
<rule> <from>/(.*)</from> <to>/$1.jsp</to></rule>
这样能够把根目录上所有的文件都添加上.jsp的后缀。但是运行却是后台不停报错。修改为
<rule> <from>/(.*)</from> <to type="redirect">%{context-path}/$1.jsp</to></rule>发现浏览器报错:
此网页包含重定向循环
浏览器的地址栏url后缀为.jsp.jsp.jsp.jsp.jsp.jsp.jsp.jsp.jsp.jsp.jsp.jsp.jsp.jsp.jsp.jsp.jsp.jsp.jsp.jsp.jsp,既是不停地给url添加.jsp后缀。这里的原因就是因为对于.*,以.jsp结尾的url也符合。所以以.jsp结尾的url也会被添加.jsp后缀。导致死循环不停添加。forward方式(<to>元素的默认方式)服务器端不停报错也是因为不停地服务器端跳转的原因。那么只要<from>里的正则表达式修改为不以jsp结尾的就行。
<rule> <from>/((?!(.*?jsp$)).*)</from> <to>/$1.jsp</to></rule>ok.
- jsp的url去掉.jsp的后缀——urlrewrite的使用
- urlrewrite的url转发使用
- JSP URL重写-urlrewrite
- JSP URL重写-urlrewrite
- JSP URL重写-urlrewrite
- JSP中重要的方法------URLREWRITE
- JSP的URL获取
- JSP的URL过滤器
- 改变JSP的文件后缀
- jsp 使用request获得url的方法
- jsp使用URLRewrite实现url地址伪静态化
- UrlRewrite 的用途 URL重写
- jsp 获取url的参数
- 网站URL重写(Java UrlRewrite 的使用)
- jsp 用urlrewrite 实现URL 重写
- jsp 用urlrewrite 实现URL 重写
- jsp 用urlrewrite 实现URL 重写
- urlrewrite的使用
- 右键-打开方式-选择程序-无法添加
- 实现一个简单的计算器
- 概率dp-九度-1546-迷宫问题
- 【Python】Python中如何实现for循环step=2,step=-2
- 闪回查询与闪回表(Flashback Query、Flashback Table)
- jsp的url去掉.jsp的后缀——urlrewrite的使用
- linux命令详解--tcpdump
- GUI
- Paxos算法
- 旧工程适配iOS6和iPhone5续之第三方静态库
- python network programming tutorial
- 使用eclipse编译生成hadoop eclipse开发插件
- hdu 4686 Arc of Dream 矩阵快速幂
- Sublime中编译运行java和scala