`

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

    通过查阅AppFuse 2.0的官方文档或者从已知的依赖列表中,你可以找到必要的库,如Spring、Hibernate等,并将它们的依赖条目添加到`pom.xml`中。每个依赖项通常包含groupId、artifactId和version,例如: ```xml ...

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

    在本文中,我们将深入了解如何安装并部署 AppFuse 项目。 **1. 预备知识** 在开始之前,确保你已经具备以下基础: - 熟悉 Java 开发环境,例如 JDK 已经正确安装。 - 理解 Maven 构建工具的基本概念和使用方法。 - ...

    AppFuse

    AppFuse旨在帮助开发者简化项目启动过程中的复杂配置工作,提供了一套标准的目录结构、构建文件以及项目类,使得开发者能够专注于业务逻辑的实现而非基础架构的搭建。它支持多种流行的开源工具和技术框架,如Ant、...

    appfuse 学习笔记

    ### Appfuse 学习笔记 #### 一、Appfuse 简介 Appfuse 是一个开源框架,旨在帮助开发者高效地构建企业级应用。通过提供一套完善的架构模板、最佳实践和技术栈组合,使得开发者能够专注于业务逻辑的实现,而不是...

    APPFUSE工具研究.doc

    配置环境变量,如JAVA_HOME、M2(指向Maven的bin目录)和M2_HOME,然后在PATH中添加Maven和Tomcat的bin目录,以便于执行命令和运行应用。 生成AppFuse项目时,可以通过执行特定的Maven命令来创建不同类型的项目,...

    APPFUSE2.0中加入FCKeditor

    2. **配置Web应用**:接着,需要在Web应用的配置文件(如web.xml)中,为FCKeditor添加URL映射,确保可以通过特定的URL访问编辑器。 3. **引入JavaScript和CSS**:在需要使用FCKeditor的JSP页面中,通过`&lt;script&gt;`...

    Appfuse开发教程

    在Appfuse中,我们首先创建一个POJO类,然后使用XDoclet工具来生成对应的数据库表定义。XDoclet是一种基于Javadoc的元数据处理器,它可以读取类上的注解,并自动生成相关的代码,如Hibernate的映射文件或Spring的...

    AppFuse2.1所需包

    Hibernate4在AppFuse中用于持久化数据,提供了强大的查询语言HQL(Hibernate Query Language)以及 Criteria API,能够方便地进行数据检索、更新和删除操作。 在"pfms_lib"这个压缩包中,我们可能会找到以下关键...

    MAVEN 搭建APPFUSE

    在本教程中,我们将深入了解如何利用Maven这个强大的构建工具来搭建和管理AppFuse应用。 首先,我们需要理解Maven。Maven是Apache软件基金会开发的一个项目管理和综合工具,主要通过一个项目对象模型(Project ...

    AppFuse项目研究

    AppFuse 是一个由 Matt Raible 创建的开源项目,旨在为初学者提供一个快速入门的 J2EE 框架模板。它集成了多种流行的技术,包括 Spring、Hibernate、iBatis、Struts、Xdoclet 和 JUnit,同时也支持 Taperstry 和 JSF...

    appfuse1.4-architecture

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

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

    在最新的版本2.1.0-M2中,AppFuse 提供了基本(basic)和模块化(modular)两种类型的原型,以便于开发者根据项目需求选择合适的方式来创建项目。 建立项目原型骨架的步骤如下: 1. 首先,通过Maven的archetype...

    appfuse默认的css模版

    描述中的"appfuse中使用css framework的设计方式"强调了AppFuse如何利用CSS框架来设计和组织项目的界面。CSS框架通常包含一组预定义的样式和组件,如按钮、表单、网格系统等,它们可以帮助开发者快速实现专业且一致...

    可直接使用的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的人有些帮助.

Global site tag (gtag.js) - Google Analytics