`
shuai1234
  • 浏览: 978526 次
  • 性别: Icon_minigender_1
  • 来自: 山西
社区版块
存档分类
最新评论

Java伪静态urlrewriter的使用

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

urlrewriter简介:url rewrite将我们的动态网页地址转化为静态的地址,如htmlshtml,还可以隐藏网页的真正路径,比如:有时候需要将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>  
<%@ page contentType="text/html; charset=UTF-8"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

       <head>

              <title>测试TestUrlRewrite</title>

       </head>

       <body>

              <%

                     String id = (String) request.getParameter("id");

                     out.println("<h3> the value is  : " + id +" </h3> ");

              %>  

</body>

</html>

 

【第四步】发布程序

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

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

 

 


【第五步】添加
urlrewrite文件

urlrewrite-2.6.0.jar复制到WebRoot\WEB-INF\lib下。

urlrewrite.xml复制到WebRoot\WEB-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>  
<?xml version="1.0" encoding="utf-8"?>

<!DOCTYPE urlrewrite PUBLIC "-//tuckey.org//DTD UrlRewrite 3.1//EN"

        "http://tuckey.org/res/dtds/urlrewrite3.1.dtd">

<urlrewrite>

       <rule>

              <from>/(.*).html</from>

              <to>index.jsp?id=$1</to>

       </rule>

</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>  
<filter>

       <filter-name>UrlRewriteFilter</filter-name>

       <filter-class>

              org.tuckey.web.filters.urlrewrite.UrlRewriteFilter

       </filter-class>

       <init-param>

              <param-name>logLevel</param-name>

              <param-value>DEBUG</param-value>

       </init-param>

</filter>

<filter-mapping>

       <filter-name>UrlRewriteFilter</filter-name>

       <url-pattern>/*</url-pattern>

</filter-mapping>

 

【第七步】重启tomcat

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

 

 


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

 

分享到:
评论

相关推荐

    java 伪静态实例

    java伪静态入门例子,非常适合初学者 &lt;from&gt;/show_(.*)_(.*) &lt;to&gt;/show?s=$1&amp;n=$2.html&lt;/to&gt; &lt;from&gt;show\?s=(.*)&amp;n=(.*) &lt;to&gt;show_$1_$2.html&lt;/to&gt; &lt;/outbound-rule&gt;

    java伪静态URL重写的方法

    实现Java伪静态URL重写通常依赖于第三方库,例如微软公司的UrlRewriter.jar组件。该组件是一个URL重写工具,它提供了一个XML配置文件,用于定义URL转换规则。下面是一个基于Struts2框架实现伪静态URL重写的详细步骤...

    JSP+Servlet系统 使用伪静态

    "JSP+Servlet系统 使用伪静态" 这个标题表明这是一个基于Java Web技术构建的系统,特别提到了"JSP"(JavaServer Pages)和"Servlet",它们是Java语言用于开发动态网页和服务的核心组件。"伪静态"则是指将动态URL转化...

    伪静态(url重写)

    总结起来,伪静态(URL重写)是通过Java Filter或其他工具在服务器端实现的一种技术,它能够将动态URL转换为静态形式,提升用户体验,增强搜索引擎的可读性。在Java环境中,我们可以利用`Filter`接口或开源库如`...

    Java UrlRewriter伪静态技术运用深入分析

    Java中的UrlRewriter伪静态技术是一种优化网站性能和搜索引擎友好性的方法。它的主要目标是将动态URL转换为看似静态的URL格式,以提高搜索引擎的抓取效率和用户体验。这种技术通常用于那些需要实时数据更新或依赖...

    JAVA实现URL rewrite伪静态_.docx

    在Java中实现URL重写(URL rewrite)是为了实现伪静态,这是一种优化网站SEO(搜索引擎优化)的技术。通过将动态URL转换为看似静态的URL格式,可以提高网站的可读性和搜索引擎友好性。以下是对给定代码的详细解释: ...

    UrlRewriter Java v2.0 RC1.zip

    URL重写技术主要目的是优化网站的SEO(搜索引擎优化),提供用户友好的URL,以及实现动态网站的伪静态化。这个版本是Release Candidate 1,意味着它是正式版发布前的最后一个测试版本,通常已经具备了较高的稳定性和...

    UrlRewriter Java v2.0 RC1毕设源码

    URL重写是Web开发中的一种技术,通过将动态URL转换为静态或者伪静态的URL形式,使得URL更加友好、简洁,同时也更利于搜索引擎抓取。这对于提升网站在搜索引擎中的排名和用户体验具有重要意义。UrlRewriter Java v2.0...

    URLRewriter(URL重写)测试代码

    - SEO:将动态URL转换为静态或伪静态形式,提高搜索引擎抓取效率。 - 友好URL:将复杂参数化的URL转化为更具描述性的格式,便于用户理解和记忆。 - 隐藏技术细节:如隐藏具体的目录结构、文件扩展名,增强网站...

Global site tag (gtag.js) - Google Analytics