Struts2.5 伪静态的配置

伪静态

  伪静态是相对真实静态来讲的,通常我们为了增强搜索引擎的友好面,都将文章内容生成静态页面,但是有的朋友为了实时的显示一些信息。或者还想运用动态脚本解决一些问题。不能用静态的方式来展示网站内容。但是这就损失了对搜索引擎的友好面。怎么样在两者之间找个中间方法呢,这就产生了伪静态技术。就是展示出来的是以html一类的静态页面形式,但其实是用JSP一类的动态脚本来处理的。

伪静态不足之处


    网站承受能力低:由于伪静态是用正则判断而不是真实地址,分别显示哪个页面的责任也由直接指定转由CPU来判断了,所以CPU占有量的上升网页打开慢:伪静态需要读取数据库,还有将网址重写额度过程需要服务器的支持:不是所有的服务器都支持伪静态的

  不过伪静态不大量使用还是可以接受的

Struts伪静态的配置


第一步:需要下载伪静态的jar包  urlrewritefilter-4.0.3.jar 官方网站:http://tuckey.org/urlrewrite/下载jar包放在你的lib目录下

第二步:官网上说的很明白,在你的web.xml中添加以下的filter,过滤所有的请求

<filter>    <filter-name>UrlRewriteFilter</filter-name>    <filter-class>org.tuckey.web.filters.urlrewrite.UrlRewriteFilter</filter-class></filter><filter-mapping>    <filter-name>UrlRewriteFilter</filter-name>    <url-pattern>/*</url-pattern>    <dispatcher>REQUEST</dispatcher>    <dispatcher>FORWARD</dispatcher>  <dispatcher>INCLUDE</dispatcher></filter-mapping>

解释一下这个filter中的一些标签含义

首先可以了解一下

RequestDispatcher

RequestDispatcher提供两个方法forward和include

都表示要跳转到其他资源,不同的是,如果使用forward跳转则后面的response输出则不会执行,而用include来跳转,则include的servlet执行完后,再返回到原来的servlet执行response的输出(如果有)

<dispatcher>元素

这个元素有四个可能的值:即REQUEST,FORWARD,INCLUDE和ERROR。可以在一个<filter-mapping>元素中加入任意数目的<dispatcher>如果没有指定任何< dispatcher >元素,默认值是REQUEST。

请求是以(/*)的,表示所有的起高球,并且是通过request dispatcher的forward方法传递过来或者直接从客户端传递过来的,则必须经过这个过滤器。

所以需要加上那三个dispatcher很重要,可以避免一些不必要的错误

第三步:在你的WEB-INF目录下创建一个urlrewrite.xml的文件 与web.xml同级,内容就是对请求过来的经行过滤,改变其后缀为html

<?xml version="1.0" encoding="UTF-8"?>  <!DOCTYPE urlrewrite PUBLIC "-//tuckey.org//DTD UrlRewrite 2.6//EN" "http://tuckey.org/res/dtds/urlrewrite2.6.dtd">  <urlrewrite>     <rule>        <from>/([a-zA-Z0-9]*).html</from>        <to type="forward">$1.do</to>    </rule></urlrewrite>   

有些地方说需要加上他的另一半,<outbound-rule>,我感觉有这一个<rule>就够 了 ,(.html)前面是正则表达式为了匹配你的请求地址

意思就是你在浏览器地址栏上输入的地址(.html )会经过这里转变为(.do)的形式去执行的你的action ,还有的你的请求地址也带有的html也会转变为do,例如你的网页中的<a>标签里的地址

伪静态可以根据自己的需求更改其中的一些内容,以适用于你的项目中

【版本声明】本文为博主原创文章,转载请注明出处

回避现实的人,未来将更不理想。

Struts2.5 伪静态的配置

相关文章:

你感兴趣的文章:

标签云: