URL重写技术

搞了一个小时才完成URL重写技术,下面就写一下学习笔记,用一个实例的方式解释如何实现URL重写

我的目标就是令类似/personal/a1/a2的所有HTTP请求

解释成/urlReWrite.do?city=a1&name=a2,并执行相应的Action输出2个参数

1.首先是新建一个Struts项目,之后增加一个jsp页面,目录结构如下所示

2.下载urlrewriterfilter,附件那里我会提供下载

之后把jar文件和xml配置文件导入到项目相应的目录中

导入jar文件

之后选择urlrewrite-3.1.0.jar

导入XML配置文件

选择XML catalog文件,之后选择导入的路径,就是在WEB-INF目录下

之后选择 import files from file system

之后选择你的urlrewriter.xml的目录位置

之后点击finish,完成了导入的工作了

3.在web.xml文件中增加以下的一个filter,主要是过滤所有/personal/的HTTP请求

<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>/personal/*</url-pattern>
    </filter-mapping>

4.配置urlrewriter.xml文件,配置如下

<rule>
        <from>/personal/([a-z]+)/([a-z]+)</from>
        <to type="forward">/urlReWriter.do?city=$1&amp;name=$2</to>
    </rule>

5.在urlRewrite.jsp页面中增加如下代码

<html:link page="/personal/jilin/gaohongyan">click here</html:link>

6.添加一个Action,path路径设置为urlReWriter

修改Action代码如下所示

public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
System.out.println("city="+request.getParameter("city"));
System.out.println("name="+request.getParameter("name"));
return null;
}

主要是在控制台输出2个参数

7.最后就是部署项目,最后效果如下

点击之后

希望对大家学习有所帮助。

urlrewritefilter-3.1.0.zip

原文地址:https://www.cnblogs.com/cookies9/p/1930902.html