我想使用UrlRewriteFilter以通用方式删除JSP文件扩展,以避免为150多个文件指定单独的servlet映射。有谁知道这样的规则是什么?
从* .jsp到*
ie:/ LOGin.jsp将被翻译为/ Login
答案 0 :(得分:0)
因此经过多次实验后,我发现了如何使用urlrewrite从所有页面中删除JSP扩展。下面的规则会翻译页面URI中包含1个或多个字符的任何页面,并将其转发到[页面名称] .jsp
如果不是我的网站的上下文根目录下的JSP页面,那么重要的是不要触发规则,所以我排除文件夹中的文件css,img,css,product-img
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE urlrewrite
PUBLIC "-//tuckey.org//DTD UrlRewrite 4.0//EN"
"http://www.tuckey.org/res/dtds/urlrewrite4.0.dtd">
<urlrewrite>
<rule match-type="regex">
<condition type="request-url" operator="notequal">^.*\.jsp$</condition>
<condition type="request-url" operator="notequal">/css/.*</condition>
<condition type="request-url" operator="notequal">/img/.*</condition>
<condition type="request-url" operator="notequal">/js/.*</condition>
<condition type="request-url" operator="notequal">/product-img/.*</condition>
<from>/.+(?:(?!jsp).).$</from>
<to type="forward">%{request-uri}.jsp</to>
</rule>
</urlrewrite>
可以在tuckey的maven网站上找到jar文件https://mvnrepository.com/artifact/org.tuckey/urlrewritefilter/4.0.3(主页上的下载链接已断开)
这是他的主要网站urlrewrite main site