java伪静态_JAVA使用urlrewrite实现伪静态化

什么是伪静态?

伪静态字面理解就是假的静态,说的官方点就是“地址重写,用户得到的全部地址都是经过处理后的URL地址”。

为什么要伪静态呢?

提高安全性,可以有效的避免一些参数名、ID等完全暴露在用户面前,如果用户随便乱输的话,不符合规则的话直接会返回个404或错误页面,这比直接返回500或一大堆服务器错误信息要好的多

美化URL,去除了那些比如*.do之类的后缀名、长长的参数串等,可以自己组织精简更能反映访问模块内容的URL

更有利于搜索引擎的收入,通过对URL的一些优化,可以使搜索引擎更好的识别与收录网站的信息

应用场景是什么?

最直接的就是SEO优化(上面“为什么要伪静态呢?”已提到)

伪静态案例

这是我之前参加的一个项目中使用到的伪静态技术。

d71baddf13c56ea03d29c2b962224c0d.png

0cdf5a398f30268af4de4b21ebd1bdf8.png

怎么用?

准备工作

正式操作

把 urlrewritefilter-x.jar 放入项目,可以直接放到 WEB-INF/lib 下,如果使用的maven,可以copy以下代码:

org.tuckeyurlrewritefilter4.0.4

配置web.xml:其实urlrewrite其实就是个过虑器,它将会过虑用户的所有请求,符合规则的便对其进行重定向,具体的配置参数的使用方法见官方文档http://www.tuckey.org/urlrewrite/

UrlRewriteFilterorg.tuckey.web.filters.urlrewrite.UrlRewriteFilterUrlRewriteFilter/*REQUESTFORWARD

把urlrewrite.xml 放到 WEB-INF根目录下

3a88cc5a5a2a9e23a7a72b51ec411ca4.png

最后配置urlrewrite.xml:主要放置一些过滤规则

e1d586dbeaa3fc775a519d87f0996d6e.png

以上配置全部完成,下面看一下页面中如何使用:

其实页面中的地址按照你在urlrewrite中配置的规则书写即可

324ce4d5f5e7a3da653d38950671605f.png

效果

fd3012d8fe666d3500c6191c29d1e536.png

最后在网上摘录了一段关于伪静态技术的弊端的表述:

伪静态的坏处

有人测试过,"如果流量稍大一些使用伪静态就出现CPU使用超负荷,我的同时在线300多人就挂了,而不使用伪静态的时候同时在线超500人都不挂,我的ISS数是1000"。

我们不用怀疑这个说法的真实性,其实由于伪静态是用正则判断而不是真实地址,判断到底显示哪个页面的艰巨工作需要CPU的计算来完成,因此需要消耗更多的内存来处理,同时CPU会持续上升,这正是伪静态最大的弊病。

正是由于这个原因,所以网站在采用伪静时需要站长斟酌三分,谨慎考虑清楚。

没有验证过,不知道是否是正确,希望各位有兴趣的可以深入研究一下。


版权声明:本文为weixin_34078749原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。