• 地址重写--Java中urlrewriter的使用


    最近公司以前的一个项目需要升级改版,其中的一个模块是使用Struts2做的不需要改动,但是需要将其从之前的项目里面剥离出来,看了看官网,发现所有的链接访问的静态地址,以为是FreeMarker实现的,仔细研究了会发现不是那么回事,原来是伪静态,程序使用了urlrewriter。其实urlrewriter的使用很简单,看看下面你就明白了。

    urlrewriter简介:url rewrite将我们的动态网页地址转化为静态的地址,如html、shtml,还可以隐藏网页的真正路径,比如:有时候需要将xxx.com/news/ type1/001.jsp 转化成显示路径为xxx.com/news_type1_001.jsp。

    【第一步】下载jar包

    http://tuckey.org/urlrewrite/#download下载最新的jar文件,当前最新的是Beat3.2我下载的是urlrewritefilter-2.6.zip。解压得到urlrewrite-2.6.0.jar 和 urlrewrite.xml

    【第二步】新建Web项目TestUrlRewrite,

    在WebRoot下新建index.jsp,修改其代码如下所示:

    Java代码  
    1. <%@ page contentType="text/html; charset=UTF-8"%>  
    2.   
    3. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">  
    4.   
    5. <html>  
    6.   
    7.        <head>  
    8.   
    9.               <title>测试TestUrlRewrite</title>  
    10.   
    11.        </head>  
    12.   
    13.        <body>  
    14.   
    15.               <%  
    16.   
    17.                      String id = (String) request.getParameter("id");  
    18.   
    19.                      out.println("<h3> the value is  : " + id +" </h3> ");  
    20.   
    21.               %>    
    22.   
    23. </body>  
    24.   
    25. </html>  

    【第四步】发布程序

    将程序发布到Tomcat中,然后在浏览器输入如下地址:

    http://localhost:8080/TestUrlRewrite/index.jsp?username=niejingyu,页面展示效果如图1所示:

    【第五步】添加urlrewrite文件

    将urlrewrite-2.6.0.jar复制到WebRootWEB-INFlib下。

    将urlrewrite.xml复制到WebRootWEB-INF下,其中urlrewrite.xml代码如下所示:

    Xml代码  
    1. <?xml version="1.0" encoding="utf-8"?>  
    2.   
    3. <!DOCTYPE urlrewrite PUBLIC "-//tuckey.org//DTD UrlRewrite 3.1//EN"  
    4.   
    5.         "http://tuckey.org/res/dtds/urlrewrite3.1.dtd">  
    6.   
    7. <urlrewrite>  
    8.   
    9.        <rule>  
    10.   
    11.               <from>/(.*).html</from>  
    12.   
    13.               <to>index.jsp?id=$1</to>  
    14.   
    15.        </rule>  
    16.   
    17. </urlrewrite>  

        *.html 是一个正则表达式的串。如果你对这个不理解可以学习一下java中正则表达式的应用。

        $1 也是一个正则表达式的语言匹配正则中的组捕获。

    【第六步】修改web.xml文件

    在web.xml 增加如下内容:

    Xml代码  
    1. <filter>  
    2.   
    3.        <filter-name>UrlRewriteFilter</filter-name>  
    4.   
    5.        <filter-class>  
    6.   
    7.               org.tuckey.web.filters.urlrewrite.UrlRewriteFilter  
    8.   
    9.        </filter-class>  
    10.   
    11.        <init-param>  
    12.   
    13.               <param-name>logLevel</param-name>  
    14.   
    15.               <param-value>DEBUG</param-value>  
    16.   
    17.        </init-param>  
    18.   
    19. </filter>  
    20.   
    21. <filter-mapping>  
    22.   
    23.        <filter-name>UrlRewriteFilter</filter-name>  
    24.   
    25.        <url-pattern>/*</url-pattern>  
    26.   
    27. </filter-mapping>  

    【第七步】重启tomcat

           访问http://localhost:8080/TestUrlRewrite/2.html,页面效果如图所示:

           在这里是匹配/(.*).html,将请求转发到index.jsp?id=$1。你还可以根据需要转到xxx.action?id=$1

    转:http://xiaopihai.iteye.com/blog/384386

  • 相关阅读:
    7款强大的Javascript网格插件推荐 狼人:
    90后英国中学生建立黑客社交网 涉案金额达1.8亿元 狼人:
    好的代码里只要一个return语句 狼人:
    一个月内从零开始做webOS开发人员 狼人:
    FireFox 5开发计划曝光 内嵌PDF阅读器(组图) 狼人:
    谷歌用户体验设计准则 狼人:
    15个编程好习惯 狼人:
    Debain/ArchLinux/Gentoo 等将合并为超级Linux 狼人:
    别说你不知IE9正式版浏览器小技巧9则 狼人:
    Firebug1.8a1发布 新功能、新架构 狼人:
  • 原文地址:https://www.cnblogs.com/huzi007/p/3837570.html
Copyright © 2020-2023  润新知