Struts2.5 伪静态的配置

伪静态

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

伪静态不足之处


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

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

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>标签里的地址

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

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

时间: 2024-10-30 18:08:39

Struts2.5 伪静态的配置的相关文章

解决struts2中validation.xml配置无效的问题

解决struts2中validation.xml配置无效的问题,我使用了xml的验证,却始终发现无法生效,后面发现才是xml的头文件的格式问题,修改了一下就好了. 成功的xml <!DOCTYPE validators PUBLIC "-//Apache Struts//XWork Validator 1.0.2//EN" "http://struts.apache.org/dtds/xwork-validator-1.0.2.dtd"> <val

关于Struts2的Validator的配置找不到DTD

看教材的时候写的DTD是 <!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0.3//EN" "http://www.opensymphony.com/xwork/xwork-validator-1.0.3.dtd"> 用浏览器访问URL直接404,在eclipse中也没有代码提示,说明这个DTD已经不可用 然后去看Struts2的官方JAVADOC,找到http:

Struts2 常用的常量配置

在struts2-core-2.1.8.1.jar的org.apache.struts2包下面的default.properties资源文件里可以查到常用的常量配置,这些不用刻意的记住:忘记的时候可以查询.总结长用的的常量配置如下面: <!-- 设置url请求后缀 --> <constant name="struts.action.extension" value="do,action,html,htm"></constant>

转载 - Struts2 拦截器详细配置过程

出处:http://www.blogjava.net/zzzlyr/archive/2009/10/12/297998.html Struts2 拦截器详细配置过程 1:所有拦截器的超级接口Interceptor ,Action去实现这个接口; Interceptor 它其中有三个方法(init(),destroy() ,interceptor()): Init()方法:在服务器起动的时候加载一次,并且只加载一次; Destroy()方法:当拦截器销毁时执行的方法; Interceptor()方

基于IDEA 最新Spirng3.2+hibernate4+struts2.3 全注解配置 登录

原文 基于IDEA 最新Spirng3.2+hibernate4+struts2.3 全注解配置 登录 首先说说 IDEA 12,由于myeclipse越来越卡,我改用idea12 了,发现其功能强悍到eclipse无法比拟,此款ide理解上下文是一等一的,不用什么jquery插件,extjs插件,都可以实现全智能的代码提示.速度什么的都比myeclipse快.而且IDEA提供了android支持struts spring hibernate 支持.下面,我讲教大家完成一个基于全注解的Spirn

伪静态IIS7配置

web.config配置 -------------------------------------------------------------------------------- 路径要选择对,我这个是对微软URlRewriter的修改,说白了是用别人写的.所以路径有点不一样,这个要根据实际路径填写. 现在可以配置伪静态了. IIS7配置 1.站点的应用程序池的托管管道模式先暂时设置为集成模式,等下面的一系列设置完成之后再设置成经典模式: 2.选中站点,切换到功能试图,找到 "IIS(服

Struts2 拦截器具体配置过程

拦截器差点儿遍布每个程序中,所以贴出拦截器配置的具体过程,希望可以帮到大家. Struts2 拦截器具体配置过程 <interceptors> <!-- 先定义拦截器 --> <interceptor name="myInterceptor" class="com.zzz.struts2.interceptor.MyInterceptor"> <!-- 指定系统初始化给拦截器的參数 --> <param name

Struts2学习笔记二 配置详解

Struts2执行流程 1.简单执行流程,如下所示: 在浏览器输入请求地址,首先会被过滤器处理,然后查找主配置文件,然后根据地址栏中输入的/hello去每个package中查找为/hello的namespace,然后在包下寻找名为HelloAction的action,反射创建控制器HelloAction对象,调用method指定的方法hello,拿到返回值“success”,去result的配置节找success对应的页面(hello.js),呈现给用户. 2.Struts的架构,具体参考这里

Struts2中 Result类型配置详解(转)

一个result代表了一个可能的输出.当Action类的方法执行完成时,它返回一个字符串类型的结果码,框架根据这个结果码选择对应的result,向用户输出.在com.opensymphony.xwork2.Action接口中定义了一组标准的结果代码,可供开发人员使用,当然了只有我们的action继承ActionSupport 这个类才可以使用下面的结果代码,如下所示:public interface Action{    public static final String SUCCESS =