老哥学习网 - www.lg9.cn 2024年05月15日 05:10 星期三
当前位置 首页 >人生感悟 >

JSP中URL重写的实现 实现filter接口的类需要重写

发布时间:2019-01-17 19:36:31 浏览数:

        (吉首大学 软件服务外包学院,湖南 张家界 427000)      摘要:针对搜索引擎对动态网页抓取率不高的问题,提出使用URL重写技术优化网页URL地址解决方法。分析了JSP实现URL重写的机制,并重点论述了用JSP进行URL重写的技术实现。
  关键词:JSP;URL重写;过滤器;正则表达式
  中图分类号:TP301文献标识码:A文章编号:1672-7800(2012)003-0024-02
  
  
  作者简介:颜一鸣(1976-),男,湖南张家界人,硕士,吉首大学讲师,研究方向为软件工程。
  
  0引言
   随着互联网的飞速发展,越来越多的企业选择建立网站进行企业宣传和网络办公。JSP(Java Server Pages)技术作为当前较为热门的Web开发技术,具有安全性高和可移植性等特点,很多企业选择用此技术来开发网站。网站建成后最重要的是进行推广,大多数企业选择利用搜索引擎进行网站推广。要增强网站中地址的可读性和让搜索引擎快速收录网站,就需要优化网页的URL地址,也就是使用URL重写技术。
  1URL重写的优劣
   URL重写实质上是截取传入的Web请求并自动将请求重定向到其它URL的过程,用户通过相应的虚拟URL(Virtual URL)访问网页资源。使用Url重写有以下优点:
   (1)易于被搜索引擎收录。大部分搜索引擎抓取动态网页的优先度远远低于静态网页。而URL重写很大程度上可将动态链接转换成静态链接,这将使得搜索引擎尽可能深地抓取网站子栏目的内容,使网页在搜索结果中排名靠前。
   (2)增加用户访问时的友好和方便。很少有用户去关心网站的页面和地址,但对一般的大中型网站增强可读性还是必须的。比如原来可以把http://xxx/show.jsp?year=2004重写成http://xxx/2004,使用户可以方便地访问网站。
   (3)方便网站重组,提高网站的移植性。在进行网站重组而将/product/目录下的所有网页移动到/catalog/category/目录中时,可以使用URL重写来检查Web请求是否指向了/ roduct/目录中的文件。如果请求是指向/product/目录中的文件时,则自动将请求重定向到/catalog/category/目录中的同一文件。
   URL重写虽然优点很多,但是也有缺点,因为它是通过过滤器原理来实现的,所以多了一道访问,会对访问速度有一定的影响。综合来说,使用URL重写,还是利大于弊。
  2JSP实现URL重写的工作原理
   JSP实现URL重写的工作原理,简单来说就是一个过滤器(Filter)的实现,这个过滤器的作用就是将用户请求的url 转换成实际的url,再对它进行请求的过程。过滤器工作原理如图1所示。
  
  图1过滤器原理
   当客户端发出Web资源(如重写后的URL)的请求时,Web服务器根据应用程序配置文件设置的过滤规则进行检查,客户请求满足过滤规则,则对客户请求/响应进行拦截,对请求头和请求数据进行检查或改动,并依次通过过滤器链,最后把请求/响应交给请求的Web资源处理。请求信息在过滤器链中根据事先定义好的规则将重写的URL转换成实际的URL,并直接向客户发回一个响应。在资源处理器完成对资源的处理后,响应信息将逐级逆向返回。
  3JSP实现URL重写的方法
   JSP实现URL重写的方法有多种,一种就是Apache,Jboss这些Web容器自带的一些URL重写,但是这些方法的配置比较麻烦,性能也不是很好。还有一种就是使用系统的404错误进行URL重写,此种方法只适合一些简单的应用。本文介绍一种利用开源框架UrlRewriteFilter来实现URL重写。此种方法配置简单,使用方便,并且支持多种Web容器。下面以Tomcat容器为例,讲解此种方法的实现过程。
  3.1开源框架的安装
   获取最新的UrlRewriteFilter开源框架(http://www.省略/urlrewrite),以下简称URF ,将urlrewrite.jar文件拷贝至Tomcat容器安装目录的lib目录下。此文件是URF的发布类库集合,其典型应用就是把动态URL重写,实现静态化,便于搜索引擎收录。
  3.2URL重写的过滤器配置
   URL重写过程简单来说就是一个过滤过程,使用URF实现URL重写,必须将过滤器与特定的servlet关联,因此需配置/conf/web.xml,从而让URF正常工作,配置信息如下:
  
  
  UrlRewriteFilter
  org.tuckey.web.filters.urlrewrite.UrlRewriteFilter
  
  
  
  UrlRewriteFilter
  
  /*
  REQUEST
  FORWARD
  
   上述配置应该注意每一项声明的顺序,不能背离这些元素的顺序。
  3.3编写URL重写规则
   为了正确重写URL,需要在WEB-INF目录下建一个urlrewrite.省略/entity.jsp ?category=user&page=1表现为:http://yousite. com/entity/uesr/page_1.html配置如下:
  
  ^/(\\w+)/(\\w+)/page_(\\d+)\.html$
  /$1.jsp?category=$2&page=$3
  
   在示例1的from节点中,使用了正则表达式描述重写后的URL规则。正则表达式由一些普通字符和一些元字符(metacharacters)组成,普通字符包括大小写的字母和数字,而元字符则具有特殊的含义。一个正则表达式,就是用某种模式去匹配一类字符串的一个公式。常用的正规表达式元字符含义如表1所示。
  
  实例1中的$1,$2代表与配置正规表达式^/(\\w+)/(\\w+)/相对应的参数。
   rule结点中from规则默认使用正则表达式来匹配,当用户访问服务器的URL会与该配置相比较,如果符合规则就会按照下面to结点中的配置对其进行跳转,其默认是forward跳转,forward方式只能跳转到同一个Web应用中的页面上,如果想连接外部的网站,则使用redirect跳转,格式为:。
  4结束语
   本文详细阐述了URL重写的优劣,以及在JSP中通过过滤器实现URL重写的原理和方法。利用开源框架UrlRewriteFilter实现URL重写不需要复杂的Web容器配置,只需将过滤器与特定的servlet关联,关键是通过正则表达式描述重写后的URL规则,这个规则可自定义,从而使得URL地址规范化和可阅读化,达到便于搜索引擎收录的目的。
  
  参考文献:
  \[1\]URL rewrites and 301 redirects-how does it all work\[EB/OL\]. http://www.省略/blog/url-rewrites-and-301-redirects-how-does-it-all-work.
  \[2\]URl rewrite filter\[EB/OL\]. http://www.省略/.
  \[3\]\[美\]MARTY HALL, LARRY BROWN,YAAKOV CHAIKIN. Servlet与JSP核心编程\[M\].胡书敏,译.北京:清华大学出版社,2009.
  
  (责任编辑:杜能钢)
  
  
   In the realization of JSP URL rewrite
  
  Abstract:For the low recalling of search result on dynamic pages, making use of URL rewriting technology to optimize the web page URL address. We analyze the mechanism of using JSP to implement URL rewriting, and focus on how to realize URL rewriting.
  Key Words: JSP; URL rewrite; Filter; RegExp

推荐访问:重写 JSP URL

相关文章:

Top