1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 轻文章-使用URL Rewrite实现网站伪静态

轻文章-使用URL Rewrite实现网站伪静态

时间:2019-11-25 12:00:08

相关推荐

轻文章-使用URL Rewrite实现网站伪静态

文章目录

基础介绍案例代码urlrewrite.xmluserinf.jsp验证结果注意事项参考文档

案例来源:《轻量级Java EE企业应用实战(第4版)-Struts2+Spring4+Hibernate整合开发》,李刚编著

基础介绍

    伪静态的作用:将*.jsp、*.php这种动态URL伪装成静态的HTML页面,便于搜索引擎收录。

    实现思路:对于Java Web应用,可以通过Filter拦截所有发向*.html的请求,然后按某种规则将请求转发到实际的.jsp页面。本文使用UrlRewriteFilter模块实现伪静态功能,它是一个非常强大的工具,类似于Apache的mod_rewrite模块。

    简单的说,整个过程分为3步:

    1.将urlrewritefilter-4.0.3.jar放到WEB-INF/lib下,附jar包下载地址;

    2.WEB-INF/web.xml添加如下配置,启用URL Rewrite模块:

<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></filter-mapping>

    3.在WEB-INF目录下添加urlrewrite.xml文件,该文件用于自定义伪静态映射规则。

案例代码

环境:

操作系统centos 8openjdk version “1.8.0_272”apache-tomcat-8.5.59

    在本例中,.html的请求会被URL Rewrite过滤,如果命中urlrewrite.xml设定的规则,会跳转到userinf.jsp页面,同时向该页面传递相关参数。userinf.jsp模拟了一个显示用户信息的页面。

urlrewrite.xml

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE urlrewrite PUBLIC "-////DTD UrlRewrite 4.0//EN""/res/dtds/urlrewrite4.0.dtd"><urlrewrite><rule><!-- 所有配置如下正则表达式的请求 --><from>^/userinf-(\w*).html$</from><!-- 将被forward到如下jsp页面,其中$1代表上面第一个正则表达式所匹配的字符串 --><to type="forward">/userinf.jsp?username=$1</to></rule><rule><from>/1.html</from><to type="forward">/userinf.jsp?username=zsx0728</to></rule></urlrewrite>

userinf.jsp

<%@ page contentType="text/html; charset=utf-8" language="java" errorPage="" %><%//获取请求参数String user = request.getParameter("username");%><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="/1999/xhtml"><head><title><%=user%>的个人信息</title></head><body><%//此处应该通过数据库读取该用户对应的信息//此处只是模拟,因此简单输出:out.println("现在时间是:" + new java.util.Date() + "<br/>");out.println("用户名:" + user);%></body></html>

验证结果

    访问userinf-*.html,命中规则0,跳转到JSP页面,并将参数hehe传递至JSP页面。

    访问1.html,命中规则1,跳转到JSP页面,并将参数zsx0728传递至JSP页面。

注意事项

    1.注意各个文件和jar包的位置

    2.启动tomcat之后可以在本地浏览器输入http://localhost:8080/urlwrite/rewrite-status 查询转发状态。

参考文档

[1]李刚.轻量级Java EE企业应用实战(第4版)-Struts2+Spring4+Hibernate整合开发[M].电子工业出版社:北京,:136.

[2]Paul Tuckey.UrlRewriteFilter[EB/OL]./urlrewrite/,-01-01.

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。