老哥学习网 - www.lg9.cn 2024年05月21日 16:53 星期二
当前位置 首页 >诗词歌赋 >

【基于Struts框架的伪静态技术实现】 论坛伪静态规则

发布时间:2019-03-17 06:27:43 浏览数:

  摘要:静态网页技术和动态网页技术都有各自的优缺点,随着互联网的不断发展,结合它们优点的伪静态技术应运而生。文章通过介绍Struts框架的运行原理,研究了基于Struts框架的伪静态技术,并给出了基于Struts框架实现伪静态技术的方法。
  关键词:伪静态; Struts; Action Servlet; Action
  中图分类号:TP393 文献标识码:A 文章编号:1009-2374(2012)06-0118-02
  
  早期的网站都采用静态网页技术,网页的内容更新都是由人工编辑修改的,浪费很多人力资源。静态页面的URL大多以.htm和.html结尾。随着互联网信息量的不断壮大,网站开发人员为了减轻网站服务器的负荷和提高网站安全性,各网站都不约而同地采用了动态网页技术。动态页面一般指服务器端脚本程序与HTML文件相混合的页面,它可以访问数据库中的内容,动态页面的内容随着数据库内容的变化而自动改变,不需要人工编辑修改。当用户访问动态网页时,Web服务器会根据用户所访问页面的URL,执行相应页面的程序代码,把程序执行结果转换成静态页面反馈给用户。比较常用的动态网页技术有:ASP、ASP.NET、JSP、PHP等。
  动态网页技术有提高网站开发速度、占用空间少等优点,但是它的资源占用比静态网页高,而且对搜索引擎不友好。静态网页虽然占用空间大,但是它的访问速度更快,资源占用更少,特别是对搜索引擎友好,更容易被搜索引擎收录。鉴于静态和动态网页技术的优点和缺点,又出现了伪静态技术,它是在保留动态网页优点的基础上,使页面URL静态化,即使用静态URL来访问动态网页,使URL不带动态参数(没有问号),骗过收录的爬虫程序。本文研究基于Struts框架实现伪静态技术的方法。
  一、Struts框架
  JSP是Java Web应用开发的核心技术,与Struts框架结合在一起,可以快速高效地开发出Java Web应用程序。Struts通过ActionServlet实现Model2架构,是Struts框架的核心,是中央控制器,所有的用户请求都先由ActionServlet来处理,然后由ActionServlet把请求转发给Struts的一个Action。Struts框架只允许在一个Web应用中配置一个ActionServlet类,在应用的生命周期内,仅创建ActionServlet类的一个实例,该实例负责用户的所有请求。
  ActionServlet在web.xml(Web应用配置文件)中的配置如下:
  
   action
   org.apache.struts.action.ActionServlet
  
  config
  /WEB-INF/struts-config.xml
  
  
  
  action
  *.do
  
  一般情况下,ActionServlet只负责处理所有以.do结尾的URL,所以配置为*.do。
  二、基于Struts框架实现伪静态技术
  (一)Struts实现伪静态的两种配置方法
  静态网页一般以.html结尾,而ActionServlet却只会处理以.do结尾的请求,所以想要通过Struts框架实现伪静态技术,就必须配置ActionServlet也可以处理.html结尾的请求。其实在Web应用中配置Struts时,可以让Struts同时处理多种形式的URL,通过在web.xml添加多个元素来
  实现。
  伪静态技术可以通过两种形式的配置方法来实现:一个是以扩展名形式,另一个是以路径形式。
  1.扩展名形式。
  能够同时处理.html和.do结尾请求的ActionServlet的配置如下:
  
   action
   *.html
  
  
   action
   *.do
  
  在元素中配置了要处理的伪静态页面的扩展名“.html”,配置成功后ActionServlet就可以处理.html结尾的URL,此时用户实际访问的并不是静态网页,而是Struts的ActionServlet和Action运行的结果。
  2.路径形式。
  可以在元素中设置一个以/开始的URL,如/public/*,表示以public开始的所有URL都由Struts来处理,此时的URL可以由任何扩展名来结尾,包括.htm、.html等静态URL。配置如下所示:
  
   action
   /public/*
  
  
   action
   *.do
  
  元素中配置了要处理的伪静态页面的路径“/public/*”。
  (二)在Struts中配置伪静态URL的Action映射
  当Struts处理用户请求时,会把请求转发给一个Action类,在Struts的配置文件struts-config.xml中需要设置用户请求路径和Action的映射关系,需要为伪静态URL映射一个Action类。不同形式的伪静态配置方法,将会有不同的结果。
  如果以扩展名*.html形式配置了伪静态,在struts-config.xml中映射如下的Action:
  
  此时HTMLAction类可处理用户请求路径为abc.html和abc.do的请求。
  如果以路径/public/*形式配置了伪静态,在struts-config.xml中映射如下的Action:
  
  此时HTMLAction类可处理用户请求路径如/public/任意字符串.html的请求,但是在路径“/public/”后不能再出现/字符,即只能处理public直接路径中的用户请求,不能处理public的子路径中的用户请求。
  如果想要处理public的所有路径中的请求,包括子路径,就必须配置如下的Action映射:
  
  此时HTMLAction类可处理用户请求路径如/public/任意字符串.html的请求,但是与上面不同的是,可以处理public的子路径中的用户请求,即可以处理以public开始的任意请求路径。推荐使用本方法实现伪静态技术。
  三、结语
  本文分析了通过Struts框架实现伪静态技术的方法,介绍了两种形式的配置方法。可以发现,以路径形式配置伪静态,且设置Action的path为“/**.html”,可以简化伪静态的配置,具有很好的应
  用性。
  
  参考文献
  [1] 周志坚.动态网页静态化的实现[J].无锡商业职业技术学院学报,2007,7(3).
  [2] 刘斌.精通Java Web整合开发:JSP+AJAX+Struts+Hibernate [M].北京:电子工业出版社,2007.
  
   作者简介:包乌格德勒(1979-),男(蒙古族),内蒙古兴安盟人,呼和浩特民族学院计算机科学与技术系讲师,研究方向:电子商务、软件工程。
  
  (责任编辑:赵秀娟)

推荐访问:静态 框架 技术 Struts

相关文章:

Top