【Javaweb】利用urlRewrite插件实现网站的伪静态与aspx,jsp,php三版齐发的邪门歪道

所谓网站的伪静态其实也不是什么高深名词,就是将*.asp,*.aspx,*.jsp,*.php这种动态URL页面伪装成静态的HTML页面。因为网上大部分搜索引擎都会优先考虑收录静态的HTML页面,而不是这种动态的*.asp,*.aspx,*.jsp,*.php,但是我们不可能把动态的页面硬改成*.html,因为一些代码还是要在服务器上面跑,实际上,绝大部分网站都是动态的,互联网上的大部分网站都会考虑使用伪静态技术。在Javaee里面,可以利用urlRewrite这个小插件去实现。


一、基本目标

如下图,把网络工程中的所有jsp页面伪装成html页面,当然,原来的jsp页面还是存在的。就是你在地址栏输入1.html相当于访问1.jsp。

【Javaweb】利用urlRewrite插件实现网站的伪静态与aspx,jsp,php三版齐发的邪门歪道_第1张图片


二、制作过程

最终完成的网络工程目录结构图如下:

【Javaweb】利用urlRewrite插件实现网站的伪静态与aspx,jsp,php三版齐发的邪门歪道_第2张图片

1、新建一个网络工程,从网上搜索到urlrewritefilter-4.0.3.jar,在lib文件夹下面,这东西版本大于3.0即可,现在的最新版是urlrewritefilter-4.0.3.jar,以前的用得最多的版本是3.2.0但功能上没有任何区别。这东西的官网由于放在googlecode上面,所以无法访问,但没有关系,这东西一搜就一大把,肯定能够找到。

2、先在工程目录的根目录新建一个1.jsp。在上面乱写一些东西做伪装,挂羊头卖狗肉,说这是1.html,但实际是一个1.jsp。

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>




1.html


1.html

3、之后新建web.xml,或者在web.xml里面加入如下的片段,如下的片段放在web.xml的任意一个位置都没有问题,但一定要放在所有的Servlet映射之前,否则可能会出现这样那样的问题,这里注意,我们现在是要把所有*.jsp的后缀映射成*.html,而不是在没有后缀Servlet后面加上一个.html,Servlet在网站中一般作为控制器,不允许别人随便访问,用户也基本看不到Servlet的处理过程。这段代码无须理解什么意思,复制粘贴就可以了。



	
		UrlRewriteFilter
		org.tuckey.web.filters.urlrewrite.UrlRewriteFilter
	
	
		UrlRewriteFilter
		/*
		REQUEST
		FORWARD
	
3、这样就配置好urlRewrite了,然后在于WEB-INF下面,也就是与web.xml同一个目录,新建一个映射urlrewrite.xml,这个文件是支持正则表达式的,对于正则表达式理解突破天际的天际可以自由发挥。不过一般记住如何把所有*.jsp的后缀映射成*.html的写法就可以了。代码如下所示:




	
	
		/(\w*).html
		/$1.jsp
	
你也可以在下面多加几条规则,也就是多放几个rule节点,把自己的网站伪装成*.aspx,*.jsp,*.php三版齐发,上面的$1表示替代本规则的第一个正则式(/w*),例如:




	
	
		/(\w*).html
		/$1.jsp
	
	
	
		/(\w*).aspx
		/$1.jsp
	
	
	
		/(\w*).php
		/$1.jsp
	

运行效果如下:

【Javaweb】利用urlRewrite插件实现网站的伪静态与aspx,jsp,php三版齐发的邪门歪道_第3张图片

然而,实际上整个工程目录就只有一个.jsp,但是这样除了装逼之外没有任何用处,人家把1.jsp改成1.html好歹是为了搜索引擎更容易收录。你学习怎么用asp.net,jsp,php写同一个网站,三修乃才是正途,这是邪门歪道!

你可能感兴趣的:(Javaweb,插件,javaweb,urlRewrite,伪静态,伪装后缀)