`

Url Rewrite 代替apache实现jsp页面伪静态化

阅读更多

Url Rewrite Filter 是一个基于java的url rewirte开源项目,功能类似Apache中的rewrite模块。其实,Url Rewrite让apache来负责才是最好的选择,因为mod_rewrite已经很成熟了,功能或者效率上都更好用,apache已足以使urlrewrite的功能透明了,对于多个应用使用起来更方便。这篇文章介绍的urlrewrite filter只是给那些不打算使用apache的应用提供了另外一种选择。
  一、主要功能
  a) 实现url地址的伪静态化
  例如可以把http://localhost:8080/myindex.do?method=listIndex&user=ezplus的请求重定向或转发到http://localhost:8080/blog/ezplus,这样做就避免了url中出现?&之类的符号,而且页面伪静态化之后也增加了被搜索引擎找到的概率。
  b) 根据配置文件自动转化页面上的连接
  在写页面的时候程序员不用关心在页面中出现的url地址将被如何伪静态化,例如,程序员还是可以在写页面的时候使用http://localhost:8080/myindex.do?method=listIndex&user=ezplus,通过在urlrewrite.xml中配置<outbound-rule></outbound-rule>,既可以实现页面url地址自动转化为伪静态化后的地址,用户在查看页面源码的时候原http://localhost:8080/blog/ezplus将被自动替换为http://localhost:8080/blog/ezplus
  二、安装使用
  1.下载地址:http://tuckey.org/urlrewrite/#download
  下载的文件(Binary
的)结构简单:urlrewrite.xml和lib文件夹下的一个.jar

  2.jar文件放入项目的lib库中,urlrewrite.xml和web.xml放在一块。修改web.xml,添加以下配置:
<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>
/*</url-pattern>
</filter-mapping>


  我觉得
/*这样的通配,并不符合我的预期,我只想对部分路径进行URL的重写,/*可能会造成我想象不到的或者是许微不足道的性能浪费.我把它改成了我需要的:
<filter-mapping>
    <filter-name>UrlRewriteFilter</filter-name>
    <url-pattern>/member/*</url-pattern>
</filter-mapping>

<filter-mapping>
    <filter-name>UrlRewriteFilter</filter-name>
    <url-pattern>/article/*</url-pattern>
</filter-mapping>

等...

  3.urlrewriter.xml的配置
  先提一下urlrewriter.xml中原有的几个例子:
<rule>
     <from>/some/old/page.html</from>
     <to type="redirect">/very/new/page.html</to>
</rule>

/**从一个文件到另一个文件的转发   如果不使用正则表达式,这样的配置真是把简单的问题复杂化了**/
<rule>
      <from>/some/olddir/(.*)</from>
      <to type="redirect">/very/newdir/$1</to>
</rule>

/**重定向到一个目录 我觉得实际应用中可能用得不多**/
<rule>
       <from>/products/([0-9]+)</from>
       <to>/products/index.jsp?product_id=$1</to>
</rule>

/**这种是最常用的,通过正则对请求路径进行匹配,并把分组作为参数 ,实际转到到<to>的路径。<to type="redirect">和<to type="forword">有什么区别呢?<to type="redirect">是链接到外部的网站,<to type="forword">是链接到站内的实际地址。**/

  说明一下,如果你在Filter配置中使用了所有路径通配符<url-pattern>/*</url-pattern>
  在配置
urlrewriter.xml中的<from>时,随便怎么写路径无所谓,但若象我一样使用了
<url-pattern>/memeber/*</url-pattern>,那么在<from>标签中也要写上
/memeber/(你的正则分组)
以便在访问与<from>匹配的路径时,Filter能够执行


  最后一点,不得不说,举个例子
<rule>
   <from>/member/(.*)</from>
   <to>/html/member.do?username=$1</to>
</rule>

<rule>
   <from>/article/(.*)</from>
   <to>
/html/article.do?articleid=$1</to>
</rule>
<rule>
   <from>/member/article/(.*)</from>
   <to>
/html/another/article.do?articleid=$1</to>
</rule>

  当你访问http://localhost/member/article/1111 会显示哪一个页面呢?
  结果应该不是意想中的/html/another/article.do?articleid=1111.
  我想大概是因为<from>中的路径,相当于filter中的
<url-pattern>

分享到:
评论

相关推荐

    Url Rewrite 实现jsp页面伪静态化_凌风_.doc

    这个工具的主要目的是实现URL的伪静态化,提高网站的搜索引擎优化(SEO)效果,并且能够自动转换页面内的链接,使得程序员在编写代码时无需考虑URL的具体格式。 **主要功能** 1. **URL伪静态化**:Url Rewrite ...

    Url Rewrite Filter实现页面伪静态化,简单实例及步骤

    ### Url Rewrite Filter 实现页面伪静态化:详细步骤与实例解析 #### 一、引言 在现代Web开发中,为了提升用户体验、提高搜索引擎友好度以及优化网站结构,页面伪静态化成为了一种常见的技术手段。本文将详细介绍...

    jsp实现URL伪静态.rar

    使用URL重写技术,如Apache的mod_rewrite模块或Tomcat的Context配置,可以将动态请求转换成伪静态形式。在JSP中,我们可能需要结合服务器的配置来实现这一过程。 5. **隐藏Servlet路径** 为了使URL看起来更像静态...

    java/jsp网站实现伪静态

    1. **URL重写**:使用Apache的mod_rewrite模块或者Tomcat的RewriteFilter,通过配置规则将动态URL重定向到对应的JSP页面。例如,将`/article.html`映射到实际的`/article.jsp`。在Apache中,需要编辑.htaccess文件;...

    jsp伪静态,javaweb实现伪静态

    在伪静态场景下,可以创建一个Servlet,接收以静态URL形式的请求,内部执行相应的动态处理逻辑,然后返回JSP页面。 3. **使用隐式对象**: JSP中的隐式对象`request`和`response`可以帮助我们完成URL重写。在`doGet`...

    jsp web 实现伪静态源码

    总的来说,实现JSP伪静态涉及到的主要步骤包括:定义URL重写规则、创建Filter拦截请求、解析URL路径、根据路径信息动态生成JSP内容。这个过程需要对HTTP协议、Servlet、JSP以及URL重写机制有深入的理解。如果你希望...

    urlrewrite重写URL伪静态请求路径.

    URL重写允许我们将复杂的动态URL转换为简洁、易于理解和友好的静态URL形式,即使这些页面实际上是动态生成的。在这个过程中,`urlrewrite`工具扮演了关键角色。 `urlrewrite`是一个基于Apache服务器的模块,主要与...

    简单的伪静态,看了很多 自己做了一个简单的jsp的伪静态,和大家分享哈,其实很简单的

    UrlRewriteFilter基于Apache mod_rewrite规则,允许开发者通过XML配置文件来定义一系列的URL转换规则,使得动态请求能够映射到特定的JSP页面,从而达到伪静态的效果。 在Java中实现伪静态,通常涉及以下步骤: 1. ...

    伪静态URLRewrite实例解析

    伪静态URLRewrite技术是实现这一目标的重要手段之一。它主要通过服务器端或应用层面的规则设置,来改变URL的表现形式而不改变其实际的功能性。具体来说: - `&lt;rule&gt;` 是对进入服务器的URL进行重置,即当客户端请求...

    urlrewrite静态页面的使用例子

    在本文中,我们将深入探讨如何使用`urlrewrite`框架来实现静态页面的转换,这是一个在J2EE环境中常用于URL重写和管理的工具。`urlrewrite`框架可以帮助开发者优化URL结构,使其更加用户友好,同时也便于搜索引擎优化...

    Apache开启伪静态

    Apache 开启伪静态 Rewrite url重写规则详解 Apache 的 Rewrite 模块提供了强大的 URL 重写功能,通过在配置文件中添加规则,能够实现复杂的 URL 转换和跳转。本文将详细介绍 Apache 开启伪静态的配置和应用。 一...

    java伪静态简单实例

    `urlrewrite`是一个基于Apache Tomcat的URL重写过滤器,它可以方便地实现URL的重写和伪装,包括实现伪静态功能。要使用`urlrewrite`,你需要先将其添加到你的项目依赖中,通常是在`pom.xml`文件中引入对应的Maven...

    动态网站实现假静态利用urlrewrite

    标题“动态网站实现假静态利用urlrewrite”涉及的是在Web开发中如何通过URL重写技术将动态网址转换为静态化表现形式,以提高网站的SEO(搜索引擎优化)效果和用户体验。这种技术通常用于Java Web应用中,特别是使用...

    ssh2中的urlrewrite和Struts2的生成静态页面

    - **实现静态化**:为了实现Struts2页面的静态化,可以自定义一个Freemarker Result Type,该类型负责读取模板文件并填充数据模型,然后将其内容输出到文件系统中,形成静态页面。 以下是一个简单的自定义...

    动态页面静态化汇总--页面静态化方案

    在静态化过程中,URLRewrite可以将动态URL转换为伪静态格式,使得用户和搜索引擎看到的是看似静态的URL,而实际上这些请求仍被转发到动态处理程序。通过这种方式,可以提升用户体验,同时利于SEO优化。 4. **JSP+...

    jsp 利用urlrewritefilter实现伪静态

    **标题解析:** ...在JSP应用中,通过使用URLRewriteFilter,我们可以轻松实现URL的伪静态化,提升网站的SEO性能,同时保持代码的灵活性。理解并熟练运用这一技术,有助于提升Web应用的整体质量和用户体验。

    伪静态ppt详细介绍

    这个过程通常在服务器配置文件(如Apache的.htaccess或IIS的web.config)中设置规则,通过这些规则,服务器知道当用户访问伪静态URL时,实际上应该执行哪个动态脚本来生成内容。 **三、优点** 1. **SEO优化**:搜索...

    伪静态.txt伪静态.txt

    根据提供的文件信息,本文将详细解释“伪静态”这一概念,并深入探讨如何通过配置实现URL重写技术,以便将动态URL转换为用户友好的静态URL形式。 ### 一、伪静态概念 伪静态(Pseudo Static)是一种网页链接的表现...

    JSP+Servlet系统 使用伪静态

    3. **urlrewriter**:URL重写工具,通常与Apache的mod_rewrite模块相关,用于实现伪静态转换。 **文件名列表分析:** 由于只给出了"TBK"这个文件名,可以推测这是系统的一部分,可能是项目文件夹、数据库备份或者...

    伪静态(url重写)

    而伪静态URL则看起来像是静态HTML页面,没有明显的动态参数,使得URL更加简洁、易于记忆。 **二、Java中的URL重写** 在Java Web开发中,我们可以使用多种技术实现URL重写,其中包括Apache的`mod_rewrite`模块(在...

Global site tag (gtag.js) - Google Analytics