JAVA使用urlrewrite实现伪静态化
什么是伪静态?
- 伪静态字面理解就是假的静态,说的官方点就是“地址重写,用户得到的全部地址都是经过处理后的URL地址”。
为什么要伪静态呢?
- 提高安全性,可以有效的避免一些参数名、ID等完全暴露在用户面前,如果用户随便乱输的话,不符合规则的话直接会返回个404或错误页面,这比直接返回500或一大堆服务器错误信息要好的多
- 美化URL,去除了那些比如*.do之类的后缀名、长长的参数串等,可以自己组织精简更能反映访问模块内容的URL
- 更有利于搜索引擎的收入,通过对URL的一些优化,可以使搜索引擎更好的识别与收录网站的信息
应用场景是什么?
- 最直接的就是SEO优化(上面“为什么要伪静态呢?”已提到)
伪静态案例
- 这是我之前参加的一个项目中使用到的伪静态技术。


怎么用?
准备工作
下载支持jar包:http://www.tuckey.org/urlrewrite/下载下来的是一个完整版的压缩文件
- 解压缩文件
正式操作
- 把 urlrewritefilter-x.jar 放入项目,可以直接放到 WEB-INF/lib 下,如果使用的maven,可以copy以下代码:
<!-- 伪静态url --><dependency><groupId>org.tuckey</groupId><artifactId>urlrewritefilter</artifactId><version>4.0.4</version></dependency>
- 把 urlrewritefilter-x.jar 放入项目,可以直接放到 WEB-INF/lib 下,如果使用的maven,可以copy以下代码:
- 配置web.xml:其实urlrewrite其实就是个过虑器,它将会过虑用户的所有请求,符合规则的便对其进行重定向,具体的配置参数的使用方法见官方文档http://www.tuckey.org/urlrewrite/
<!--伪静态url重写--><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><dispatcher>REQUEST</dispatcher><dispatcher>FORWARD</dispatcher></filter-mapping>
- 把urlrewrite.xml 放到 WEB-INF根目录下

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

以上配置全部完成,下面看一下页面中如何使用:
- 其实页面中的地址按照你在urlrewrite中配置的规则书写即可

- 效果

最后在网上摘录了一段关于伪静态技术的弊端的表述:
伪静态的坏处
有人测试过,"如果流量稍大一些使用伪静态就出现CPU使用超负荷,我的同时在线300多人就挂了,而不使用伪静态的时候同时在线超500人都不挂,我的ISS数是1000"。
我们不用怀疑这个说法的真实性,其实由于伪静态是用正则判断而不是真实地址,判断到底显示哪个页面的艰巨工作需要CPU的计算来完成,因此需要消耗更多的内存来处理,同时CPU会持续上升,这正是伪静态最大的弊病。
正是由于这个原因,所以网站在采用伪静时需要站长斟酌三分,谨慎考虑清楚。
没有验证过,不知道是否是正确,希望各位有兴趣的可以深入研究一下。
最后的最后,附上一些资料:
urlrewrite.xml配置详情介绍
正则表达式的应用
查看一个网页是真静态还是伪静态
JAVA使用urlrewrite实现伪静态化的更多相关文章
- java urlrewrite实现伪静态化
1.示例 http://www.onlyfun.com/goods/company.jsp?companyId=455326 ==> http://www.onlyfun.com/company ...
- JSP页面静态化总结之一使用URLRewrite实现url地址伪静态化
JSP页面静态化总结之一使用URLRewrite实现url地址伪静态化 1使用URLRewrite实现url地址伪静态化1.1URLRewirte的用处 1.满足搜索引擎的要求. 2.隐藏技术实现,提 ...
- IIS7伪静态化URL Rewrite模块
原文 IIS7伪静态化URL Rewrite模块 在Win7安装了IIS7.5之后,搭建一些网站或者博客,但是IIS7.5本身没有URL Rewrite功能,也就是无法实现网址的伪静态化. 从网上找了 ...
- java学习笔记12--国际化
java学习笔记12--国际化 国际化的操作就是指一个程序可以同时适应多门语言,即:如果现在程序者是中国人,则会以中文为显示文字,如果现在程序的使用者是英国人,则会以英语为显示的文字,也就是说可以通过 ...
- PHP 页面静态化/纯静态化/伪静态化
个人博客迁移至独立博客:https://blog.plcent.com/,欢迎大家访问 概念 PHP静态化分为:纯静态化 和 伪静态化:纯静态化又分为:局部静态化 和 完全静态化 纯静态化:是把PHP ...
- PHP 404页面/如何设置404页面/URL静态化/URL伪静态化
php中如何设置404页面及其他错误页面 首先在项目根目录下新建文件,文件名为" .htaccess " 在该文件中写入一下配置项: ErrorDocument 404 /404. ...
- CI框架伪静态化配置
CI框架伪静态化配置 伪静态化,即:去掉入口的index.php, 在url后面加上 .html 后缀 CI默认的rewrite url中是类似这样的,例如你的CI根目录是在/CodeIgniter/ ...
- PHP静态化(非伪静态化)
什么是PHP静态化 PHP静态化的简单理解就是使网站生成页面以静态HTML的形式展现在访客面前,PHP静态化分纯静态化和伪静态化,两者的区别在于PHP生成静态页面的处理机制不同. 为什么要让网页静态化 ...
- 【转】比较详细的Asp伪静态化方法及Asp静态化探讨
目前,各大搜索引擎如google.百度.雅虎已经对动态页面诸如asp,php有着不错的支持了,只要动态页面后面的参数不要太长,如控制在3个参数内,页面内容做点优化,各大搜索对该类页面收录甚至不比静态h ...
随机推荐
- 如何导入spring 的jar包到eclips
https://www.cnblogs.com/xxuan/p/6949640.html
- 第33课 C++中的字符串
1. 历史遗留问题及解决方案 (1)历史遗留问题 ①C语言不支持真正意义上的字符串------c语言是用字符数组实现字符串 ②C语言用字符数组和一组函数模拟字符串操作 ③C语言不支持自定义类型,因此无 ...
- apache配置Directory目录权限的一些配置
可以使用<Directory 目录路径>和</Directory>这对语句为主目录或虚拟目录设置权限,它们是一对容器语句,必须成对出现,它们之间封装的是具体 的设置目录权限语句 ...
- Bug--Tomcat Error start child
添加Quartz之后报错 下面的Cause by: More than one fragment with the name [spring_web] was found. This is not l ...
- 记一次svg反爬学习
网址:http://www.porters.vip/confusion/food.html 打开开发者工具后 页面源码并不是真实的数字,随便点一个d标签查看其样式 我们需要找到两个文件,food.cs ...
- 性能测试必备知识(7)- 深入理解“CPU 使用率”
做性能测试的必备知识系列,可以看下面链接的文章哦 https://www.cnblogs.com/poloyy/category/1806772.html 回顾 CPU 使用率是单位时间内 CPU 使 ...
- 面试(JS篇)
1.js基本类型 Boolean,Number,String,Null,Undefined,Symbol. 2.null非对象,但是typeof null 返回的是Object,原因遗留下来的一个bu ...
- nonlocal 访问变量
def counter(start = 0): def incr(): nonlocal start #分别保存每一个变量的临时值.类似yield start += 1 return start re ...
- PHP strncasecmp() 函数
实例 比较两个字符串(不区分大小写): <?php高佣联盟 www.cgewang.comecho strncasecmp("Hello world!","hell ...
- PHP hex2bin() 函数
实例 把十六进制值转换为 ASCII 字符: <?phpecho hex2bin("48656c6c6f20576f726c6421");?> 以上实例输出结果: He ...