搜索
首页Javajava教程Java UrlRewriter伪静态技术运用深入分析

通常我们为了更好的缓解服务器压力,和增强搜索引擎的友好面,都将文章内容生成静态页面。 
但是有时为了能实时的显示一些信息,或者还想运用动态脚本解决一些问题,不能用静态的方式来展示网站内容,必须用到动态页面显示。 

这样以来,就损失了对搜索引擎的友好面,怎么样在两者之间找个中间方法呢,如何增强你网站中地址的可读性和让搜索引擎快速的收录到你的站点? 

这就需要你美化你的网页的地址,这就产生了伪静态技术,也就是我们常说的Url Rewriter重写技术。就是当我们访问一个页面时,地址栏中展示出来的是以“.html”为结尾的静态页面形式,而实际上我们访问的动态网页。这里就需要用到UrlRewriter技术。 

大家熟悉的可能有很多服务器都提供Url重写的技术,以前我们用的最多的就是Apache,Jboss这样一些服务器自带的一些Url重写,但是他们的配置比较麻烦,性能又不是太好。现在我们有专一的开源框架来完成Url重写任务,今天我要介绍的就是UrlRewriteFilter,它使用起来比较简单。UrlRewriteFilter是一个用于改写URL的Web过滤器,类似于Apache的mod_rewrite。适用于任何Web应用服务器(如Resin,Orion,Tomcat等)。其典型应用就把动态URL静态化,便于搜索引擎爬虫抓取你的动态网页。 
我们先简单的了解一下使用Url重写能给你网站带来哪些好处。

第一:有利于搜索引擎的抓取,因为现在大部分的搜索引擎对动态页面的抓取还比较弱,它们更喜欢抓取一些静态的页面。而我们现在的页面大部分的数据都是动态的显示的。这就需要我们把动态页面变成静态的页面,有利于搜索引擎的抓取。 

第二:让用户更容易理解,很少有用户去关心你网站的页面的地址,但对一般的大中型网站增强可读性还是必须的。这样会让你的网站更加完美。 

第三:隐藏技术的实现,我们可以通过Url重写可以实现技术的隐藏。不至于暴露你所采用的技术,给一些想攻击你网站的爱好者提供方便。 

第四:可以很方便的重用,提高网站的移植性。如果我们后台方法改动的话,可以保证前台的页面部分不用改。这样就提高了网站的移植性。 

它虽然有这么多的优点,但是也有一点缺点的,因为它是通过过滤器原理来实现的,就以为着又多了一道访问,会多少影响点访问速度的,这个可以忽略不计的。 
现在UrlRewriter技术有两个技术平台的,一个就是在Java方向的,另一个就是.NET方向的。今天我们讲的是Java方向的应用。 

首先让我们了解它的工作原理,说白了它就是一个简单的过滤器(Filter),看看源码你就会很快的明白,它就是通过我们在jsp中常用的两个方法实现的forward(),sendRedirect()。 
下面我们就Url重写技术进行简单应用: 
第一步:下载urlrewrite-3.2.0beta.jar包,并把urlrewrite-3.2.0beta.jar拷到classpath下。 
第二步:在WEB-INF目录下建一个urlrewrite.xml配置文件。 
第三步:在web.xml配置文件中初始化配置UrlRewriteFilter。在配置文件中加上下面的代码: 

<!-- 在配置文件中设置 URL Rewrite--> 
<FILTER></FILTER> 
<FILTER-NAME></FILTER-NAME>UrlRewriteFilter 
<FILTER-CLASS></FILTER-CLASS> 
org.tuckey.web.filters.urlrewrite.UrlRewriteFilter 
<FILTER-MAPPING></FILTER-MAPPING> 
<FILTER-NAME></FILTER-NAME>UrlRewriteFilter 
<URL-PATTERN></URL-PATTERN>/* 
<DISPATCHER></DISPATCHER>REQUEST 
<DISPATCHER></DISPATCHER>FORWARD

最后我要简单的讲一下常用的两个配置规则,以下就是简单的urlrewrite.xml配置片段。不要习惯Java的命名法把它写成urlRewrite.xml,这样即使你加上 

<INIT-PARAM></INIT-PARAM> 
<PARAM-NAME></PARAM-NAME>confPath 
<PARAM-VALUE></PARAM-VALUE>/WEB-INF/urlRewrite.xml 
在启动的服务器的时候还是会报错的,因为源码中必须是全小写的(urlrewrite.xml)且只能放到WEB-INF下面。 
<!--l version="1.0" encoding="utf-8--> 
<URLREWRITE></URLREWRITE> 
<!-- 显示主题帖 --> 
<RULE></RULE> 
<FROM></FROM>^/forum/thread/([0-9]+).html$ 
<TO type="forward"></TO>/forum/list.action?id=$1 
<RULE></RULE> 
<FROM></FROM>^/forum/thread/([0-9]+).html?page=([0-9]+)$ 
<TO type="forward"></TO>/forum/list.action?id=$1&page=$2

所有的规则配置都写在这里。第一个常用个规则就是站内的简单重写。 
115f3c7c2e3fd568951253a7530214bb 
66fd2ada9ebb04d4250c850dc1e3737e73e20527c4b39a5569bf640e17eb894e 
10a7f7dbe6f585173d0af75067774e992d00897fd4b69f53670a45a271ef43e0 
a58ab567b613e693f3c812dd91b5386a 
66fd2ada9ebb04d4250c850dc1e3737e73e20527c4b39a5569bf640e17eb894e
写上你自己定义的访问地址,通常采用正则表达式的写法;10a7f7dbe6f585173d0af75067774e992d00897fd4b69f53670a45a271ef43e0就是实际的访问地址。比如我们实际的访问地址是: http://www.phome.asia/forum/list.action?id=16931&page=2而我们想把它重写为http://www.phome.asia/forum/thread/16931.html?page=2。这样看起来比我们实际的要好看的多。我们就应该这样的写: 

<RULE></RULE> 
<FROM></FROM>^/forum/thread/([0-9]+).html?page=([0-9]+)$ 
<TO type="forward"></TO>/forum/list.action?id=$1&page=$2

简单的介绍一下常用的正规表示式: 
代码说明 
. 匹配除换行符以外的任意字符 
\w 匹配字母或数字或下划线或汉字 
\s 匹配任意的空白符 
\d 匹配数字 
\b 匹配单词的开始或结束 
^ 匹配字符串的开始 
$ 匹配字符串的结束 
常用的&要用 &来表示。$1,$2代表与你配置正规表达式>/(\w+)/(\w+)/相对应的参数。a2c7298746f03f0b23fd0f3d2415511a默认的是 type="forward"。 
另一个常用的规则就是连接外部的网站。就要用到26e7eb7fe6092d6130363c97beca6d25。 

<RULE></RULE> 
<FROM></FROM>^/rss/yahoo\.html$ 
<TO type="redirect"></TO> http://add.my.yahoo.com/rss? url= http://feed.feedsky.com/ MySiteFeed

更多Java UrlRewriter伪静态技术运用深入分析相关文章请关注PHP中文网!

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热工具

Dreamweaver Mac版

Dreamweaver Mac版

视觉化网页开发工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

mPDF

mPDF

mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),

安全考试浏览器

安全考试浏览器

Safe Exam Browser是一个安全的浏览器环境,用于安全地进行在线考试。该软件将任何计算机变成一个安全的工作站。它控制对任何实用工具的访问,并防止学生使用未经授权的资源。

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

将Eclipse与SAP NetWeaver应用服务器集成。