伪静态_URLRewrite实例解析

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Url Rewrite Filter实现页面伪静态化,简单实例及步骤1.首先新建一个Web Project

本例把它命名为:UrlRewrite,在创建的时候,选择勾选“Add JSTL libraries to WEB-INF/lib folder ”(注:因为项目中会用到jstl 核心标签库),然后再把urlrewrite-2.6.0.jar 导入到项目Bulid Path路径下,最后再加入struts框架。

2.配置web.xml文件

把如下代码加入到web.xml配置文件中,更多的配置可参考官方文档:

UrlRewriteFilter

org.tuckey.web.filters.urlrewrite.UrlRewriteFilter

logLevel

WARN

UrlRewriteFilter

/*

3.新增urlrewrite.xml文件

2.6//EN" "/res/dtds/urlrewrite2.6.dtd">

^/([0-9]+).html$

/index.jsp?id=$1

在WEB-INF目录下新建一个Url Rewrite Filter的规则配置文件,默认命名为

urlrewrite.xml,示例内容如下:

注:rule是url重写规则,from是显示出来的地址,to是映射的实际地址,$1是重写参数,它

的值与from中的正则表达式是一一对应,可以为多个,()里是匹配的正则表达式,在正则表

达式^指定字符的串开始,$为指定结束

4.新建一个简单的action处理类

在此命名为:ProcessAction.java;示例代码如下:

package com.telin.struts.action;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import org.apache.struts.action.ActionForm;

import org.apache.struts.action.ActionForward;

import org.apache.struts.action.ActionMapping;

import org.apache.struts.actions.DispatchAction;

public class ProcessAction extends DispatchAction {

/**

*Method execute

*

*@param mapping

*@param form

*@param request

*@param response

*@return ActionForward

*/

public ActionForward show(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { return mapping.findForward("ok");

}

}

5.在struts-config.xml中添加如下內容:

type="com.telin.struts.action.ProcessAction">

6..新增index.jsp文件,添加如下内容:

Hello word ! <%=request.getParameter("id")%>

7.新增show.html文件,添加如下内容:

This is OK page.

8.所有文件都操作处理完后,发布并启动项目

下面做一下具体讲解

讲解1:

正常情况下:

在浏览器的地址栏中输入:http://localhost:8080/UrlRewrite/

页面内容如下:Hello word ! null

(因为此时id并没有值,所以显示为null)

Urlrewrite之后:

在浏览器的地址栏中输入:http://localhost:8080/UrlRewrite/maomao.html

页面内容如下:Hello word ! maomao

解析:在项目中,maomao.html实际上并不存在,该请求由Url Rewrite Filter负责拦截,由于它符合我在urlrewrite.xml中配置的拦截规则:

^/([0-9]+).html$

/index.jsp?id=$1

所以该请求被转发由index.jsp负责处理,即实际处理请求的是index.jsp,但是地址栏中显示地址依旧是maomao.html.即伪静态的显示方式,并把参数id赋值”maomao”,所以页面中id此时不为null。

讲解2:

正常情况下:

相关文档
最新文档