`

appfuse中的UrlRewrite

阅读更多
(转自:http://www.blogjava.net/liuwentao253/archive/2006/08/31/66855.html
appfuse中使用了UrlRewrite.实现了url的重写,这样有什么用处呢?上网搜了一把,大体上有以下好处:

1、满足搜索引擎的要求
某些搜索引擎不能支持动态页面的抓取,大量的信息就不能被潜在用户搜索到。用UrlRewrite技术你可以把 http://server/news.asp?id=111 变成 http://server/news/111.htm 这样他们就会被搜索引擎收录了。google虽然可以抓取动态页面,但是google对动态页面的评分一般低于静态页面。所以,对大量信息发布的网站,把网站地址改变成静态的绝对是值得的。
 
2、隐藏技术实现,提高网站的移植性
每个页面都挂着鲜明的.asp/.jsp这种开发语言的标记,可以一眼让人看出你的网站使用什么语言做的。而且在改变网站的语言的时候,你需要改动大量的链接。而且,一个页面修改了扩展名,他的pagerank也会随之消失,从头开始。我们可以用UrlRewrite技术隐藏我们的实现细节,这样修改移植都很方便,而且完全不损失pagerank。

3、满足美感的要求
对于追求完美主义的网站设计师,即使是网页的地址也要看起来简洁明快。形如 http://server/news.asp?channel=3&id=111 的网页地址,肯定是上不了完美主义者的法眼的,用UrlRewrite技术,你可以把他变成 http://server/news/3/111.htm
在应用中怎样集成它呢?看看appfuse中的实现方式。

在appfuse的web.xml声明文件中有下面的类似声明:

<filter>
        
<filter-name>rewriteFilter</filter-name>
        
<filter-class>org.tuckey.web.filters.urlrewrite.UrlRewriteFilter</filter-class>
        
<init-param>
            
<param-name>logLevel</param-name>
            
<param-value>commons</param-value>
        
</init-param>
</filter>

<filter-mapping>
        
<filter-name>rewriteFilter</filter-name>
        
<url-pattern>/**//*</url-pattern>
</filter-mapping>


它所应用到的包存放在lib下的

urlrewrite-3.0-beta.jar

它和以上的两部分,以及

/web-inf/urlrewrite.xml

构成了对url地址的美化

打开这个文件,我们可以看到以下的声明:

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE urlrewrite PUBLIC "-//tuckey.org//DTD UrlRewrite 3.0//EN"
    
"http://tuckey.org/res/dtds/urlrewrite3.0.dtd">

<!-- https://urlrewrite.dev.java.net/manual/3.0 -->
<urlrewrite>
    
<rule>
        
<from>^/user/(.*).html$</from>
        
<to type="forward">/editUser.html\?username=$1</to>
    
</rule>
</urlrewrite>


这样系统就完成了url地址的editUser.html?username=****的美化

如将
http://localhost/aaa/bbb.jsp?id=99&name=abc
表现为:
http://localhost/aaa/bbb/99_abc.html
配置如下:

<rule> 
    
<from>
        
/aaa/bbb/([0-9]+)_([a-z]+).html
    
</from> 

    
<to>
        
/../aaa/bbb.jsp?id=$1&name=$2
    
</to> 
</rule> 

 

分享到:
评论

相关推荐

    appfuse

    使用appfuse2.0,下载过来的实例源码,没有jar包

    AppFuse

    本文以一个 J2EE 开发者的角度,借助一个简单的应用示例,在融合了个人经验的基础上介绍了如何用 AppFuse 一步步地构建 J2EE 项目。通过阅读本文,读者不仅能够学会用 AppFuse 进行开发,而且能够充分体会到 AppFuse...

    AppFuse入门文档(AppFuse与SpringMVC+mybatis整合)

    本文档详细描述了AppFuse与SpringMVC+mybatis整合的过程,只要你懂一些基本的eclipse操作和基本的maven命令,就可以在三分钟之内迅速的搭建出一个AppFuse的架构

    APPFUSE工具研究.doc

    Appfuse是一个开源的工程应用,它集成了现在最流行的开发框架到该应用中,使用Maven可以很方便的开发和部署因为。也可以集成到现在流行的开源开发工具如eclipse,idea等。现在让我们简单的看看APPFUSE开发应用的简单...

    appfuse1.4-architecture

    06年时的appfuse,学习SSH架构的经典入门框架。相对比较老的资料,可以欣赏一下当时的架构,向牛人致敬

    可直接使用的appfuse项目

    AppFuse是一个集成了众多当前最流行开源框架与工具(包括Hibernate、ibatis、Struts、Spring、DBUnit、Maven、Log4J、Struts Menu、Xdoclet、SiteMesh、OSCache、JUnit、JSTL等(现在还有lucene的,无敌了))于一身的...

    Appfuse1.9至2.0.2

    主要是自己从网络上搜集的一些关于appfuse1.8.2-2.0.2的一些相关资料,间或有点自己试验的记录,还有点maven和quartz的东东,之前我主要是用1.8.2构建项目,感觉还不错,希望对想学习appfuse的人有些帮助.

    appfuse新手上路

    新手使用appfuse2.0,启动步骤和配置过程

    AppFuse2.1所需包

    AppFuse2.1所需包,主要包括Spring MVC+Hibernate4 还有一些其它包!

    appfuse使用手册

    代码自动生成工具appfuse的中文使用手册

    appfuse 学习笔记

    Appfuse 一个开放源码的项目和应用程序,帮助我们快速而高效的地开发。

    建立项目原型骨架的步骤(最新版本appfuse)appfuse2.1.0-M2

    建立项目原型骨架的步骤(最新版本appfuse)appfuse2.1.0-M2 spring3.0 hibernte3.3 struts2.1.8

    Appfuse框架解析

    Appfuse框架解析,包括登陆验证,执行顺序,加载策略等。

    Appfuse教程Appfuse开发.pdf

    Appfuse是由Matt Raible开发的一个指导性的入门级J2EE框架,它对如何集成流行的Spring、Hibernate、iBatis、struts、Xdoclet、junit 等基础框架给出了示范。提供了对Taperstry和JSF的支持。  AppFuse是一个集成了...

    AppFuse项目研究

    Appfuse是由Matt Raible开发的一个指导性的入门级J2EE框架,它对如何集成流行的Spring、Hibernate、iBatis、struts、Xdoclet、junit 等基础框架给出了示范。提供了对Taperstry和JSF的支持

    基于AppFuse框架的B2C电子商务系统研究与实现

    基于AppFuse框架的B2C电子商务系统研究与实现

    appfuse学习笔记(一)安装部署

    NULL 博文链接:https://savagegarden.iteye.com/blog/427169

    SSH学习及开发框架-appfuse

    appfuse 有struts2+hibernate+spring的整合 springmvc+hibernate+spring的整合 多模块,但模块都有 学习开发参考使用非常方便 可以到官方下载最新版的,我只是把自己下载的打包整理一下 注意哈,都是基于maven的...

    AppFuse(3)

    AppFuse(3)AppFuse(3)AppFuse(3)AppFuse(3)

Global site tag (gtag.js) - Google Analytics