Java urlrewrite+Maven 简单使用

来源:互联网 发布:江西师范大学软件学院 编辑:程序博客网 时间:2024/06/07 04:43

UrlRewrite就是我们通常说的地址重写,用户得到的全部都是经过处理后的URL地址,类似于Apache的mod_rewrite。将我们的动态网页地址转化为静态的地址,如html、shtml,还可以隐藏网页的真正路径。此外还可以用来做地址映射,类似与ThinkPHP和Laravel 中的路由功能。

一、导包
因为这边使用的是Maven, 所以就直接在pox.xml 文件中加上下面这一段:

<dependency>    <groupId>org.tuckey</groupId>    <artifactId>urlrewritefilter</artifactId>    <version>4.0.4</version></dependency>

版本号可以根据自己的需求改动

二、web.xml配置
有了文件了就要配置urlrewrite,使其生效,在web.xml文件的开头处加上下面的代码:

<filter>    <filter-name>urlRewriteFilter</filter-name>    <filter-class>org.tuckey.web.filters.urlrewrite.UrlRewriteFilter</filter-class>    <!-- 自定义配置文件的路径,是相对context的路径,(默认位置 /WEB-INF/urlrewrite.xml) -->    <init-param>        <param-name>confPath</param-name>        <param-value>/WEB-INF/urlrewrite.xml</param-value>    </init-param>    <init-param>        <param-name>logLevel</param-name>        <param-value>WARN</param-value>    </init-param></filter><filter-mapping>    <filter-name>urlRewriteFilter</filter-name>    <url-pattern>*</url-pattern>    <dispatcher>REQUEST</dispatcher>    <dispatcher>FORWARD</dispatcher></filter-mapping>

这段代码一定要放在structs 的配置上面
其中

<init-param>    <param-name>confPath</param-name>    <param-value>/WEB-INF/urlrewrite.xml</param-value></init-param>

这一段用于指定待会的地址重写规则文件,默认就是/WEB-INF/urlrewrite.xml 文件,所以这段可以去掉,如果需要指定别的文件,则可以自定义

三、urlrewrite.xml 地址重写规则

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE urlrewrite PUBLIC "-//tuckey.org//DTD UrlRewrite 3.2//EN""http://tuckey.org/res/dtds/urlrewrite3.2.dtd"><urlrewrite>    <rule>    <from>^/(w+)/(w+)/page_(d+).html$</from>    <to>/$1.htm?category=$2&amp;page=$3</to>  </rule></urlrewrite>

其中有几点需要注意一下
1. 目前配置好之后,如果项目有用到hibernate 会出现

No Session found for current thread

暂时还没找到办法解决
2. from中使用部分单字母也会出现报错的情况

<from>/j</from>

具体原因也暂未知,尽量避免

0 0
原创粉丝点击