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

Java伪静态urlrewriter的使用

    博客分类:
  • java
阅读更多


      09:34最近公司以前的一个项目需要升级改版,其中的一个模块是使用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代码
        <%@ 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>  

<%@ 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代码
        <?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>  

<?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代码
        <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>  

<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