就个人在开发过程当中所遇到特殊需求的解决方式(01):
将web项目的访问路径缩短,(其实在开发时,大多数是不需要这样的,但是做了这样的处理,也有优点,能增加网站的安全性和隐秘性)
如:把(www.baidu.com?id=123&name=xxx)缩短成(www.baidu.com/123/xxx)
其实网上也有很多种的方法,但有的都写的不齐全(我也是找了近20篇不同的文章才得出来的答案),所以我就在此写了一种比较简单的方法,之所以想记录下来,一方面是因为当初自己在这个问题上花费了好长的一段时间,所以想记录下来以后方便回顾;另一方面,还是想帮助一下其他人,少走些弯路。(希望对你有所帮助,谢谢。)
一、 首先下载 urlrewritefilter 的jar包。
<dependency>
<groupId>org.tuckey</groupId>
<artifactId>urlrewritefilter</artifactId>
<version>4.0.3</version>
</dependency>
二、 然后在WEB-INF下创建 urlrewrite.xml 文件(建议名字就不要改了)
三、 在urlrewrite.xml 文件中的配置:
<!DOCTYPE urlrewrite PUBLIC "-//tuckey.org//DTD UrlRewrite 4.0//EN" "http://tuckey.org/res/dtds/urlrewrite4.0.dtd">
<urlrewrite>
<rule>
<note>这里写的是注释</note>
<from>^/index/([\u4e00-\u9fa5]+)/([A-Za-z0-9\.@]*)$</from> //这里是更改后的路径
<to>/infor/details?wzbh=$1&ztmc=$2</to> //这里是原始路径
</rule>
</urlrewrite>
其中:
^/index/([\u4e00-\u9fa5]+)/([A-Za-z0-9.@])$ 是你需要更改成的路径,我这里是用通过正则来匹配路径上的参数(匹配的正则因人而异)。
/infor/details?wzbh=$1&ztmc=$2 是你项目的实际路径,$1和$2就是你的对应的参数和个数,
也就是用正则匹配出来的参数([\u4e00-\u9fa5]+)和([A-Za-z0-9.@])。
四、 在web.xml中增加如下配置:
<filter>
<filter-name>UrlRewriteFilter</filter-name>
<filter-class>org.tuckey.web.filters.urlrewrite.UrlRewriteFilter</filter-class>
<init-param>
<param-name>confPath</param-name>
<param-value>/WEB-INF/urlrewrite.xml</param-value> //刚刚建的urlrewrite.xml的路径
</init-param>
<init-param>
<param-name>logLevel</param-name>
<param-value>INFO</param-value>
</init-param>
</filter>
//拦截器,将你想更改的路径拦截下来
<filter-mapping>
<filter-name>UrlRewriteFilter</filter-name>
<url-pattern>/index/*</url-pattern>
<dispatcher>REQUEST</dispatcher>
<dispatcher>FORWARD</dispatcher>
</filter-mapping>
以上就是实现的方法了,希望对你有所帮助。(我的心愿是,世界无bug)
注明:此文章是看了 https://blog.csdn.net/veryisjava/article/details/53912908 后的改编。