伪静态_URLRewrite实例解析
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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配置文件中,更多的配置可参考官方文档:
org.tuckey.web.filters.urlrewrite.UrlRewriteFilter
3.新增urlrewrite.xml文件
在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中配置的拦截规则:
所以该请求被转发由index.jsp负责处理,即实际处理请求的是index.jsp,但是地址栏中显示地址依旧是maomao.html.即伪静态的显示方式,并把参数id赋值”maomao”,所以页面中id此时不为null。
讲解2:
正常情况下: