java urlrewrite实现伪静态化
1.示例
http://www.onlyfun.com/goods/company.jsp?companyId=455326 ==> http://www.onlyfun.com/company/455326.html
2.好处
(1)更好满足搜索引擎要求;
(2)更美观,给用户带来更良好的体验;
(3)安全性(页面,参数,技术)。
3.实现
(1)第三包urlrewrite;(2)Apache HTTP Server 2.x配制mod_proxy,Rewrite;(3)struts、springMVC reset风格等。
4.urlrewrite示例
(1)下载2.6或3.X版jar包导至项目。下载地址:http://www.tuckey.org/urlrewrite/ (以3.2为示例)。
(2)解压下载文件,将urlrewritefilter-3.2.0\WEB-INF\lib\ urlrewrite-3.2.0.jar,导入工程。
(3)将urlrewritefilter-3.2.0\WEB-INF\ urlrewrite.xml,加入至工程WEB-INF目录下。
(4)web.xml添加如下代码(在urlrewrite.xml中可找到),拦截请求,对匹配的请求进行rewrite。
<filter>
<filter-name>UrlRewriteFilter</filter-name>
<filter-class>org.tuckey.web.filters.urlrewrite.UrlRewriteFilter</filter-class>
<init-param>
<param-name>logLevel</param-name>
<param-value>WARN</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>UrlRewriteFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
(5)urlrewrite.xml中配制需实现静态化的请求。
5.urlrewrite.xml配制
(1)rule配制
处理伪静态化地址。如
将请求为http://www.onlyfun.com/company/455326.html转至http://www.onlyfun.com/goods/company.jsp?companyId=455326进行处理,
地址栏中仍显示为http://www.onlyfun.com/company/455326.html,在urlrewrite.xml中配制
<rule>
<from>^/company/([0-9]+).html$</from>
<to>/goods/company.jsp?companyId=$1</to>
</rule>
<from>通过正则表达式对请求进行匹配</from>
<to>实际请求地址</to>
(2)outbound-rule配制
将页面的超链接选项转化为伪静态化,如:
http://www.onlyfun.com/goods/company.jsp?companyId=455326 转化为 http://www.onlyfun.com/company/455326.html,在urlrewrite.xml中配制
<outbound-rule>
<from>^/urlrewriteDemo/goods/company.jsp\?companyId=([0-9]+)$</from>
<to>/urlrewriteDemo/company/$1.html</to>
</outbound-rule>
同时页面中的超链接需经过response.encodeUrl(url)转化,或采用<C:URL>标签进行转化。如:
<c:url value="/goods/company.jsp?companyId=${goods.company.companyId }" var="tempUrl"></c:url>
<a href="${tempUrl }"> ${goods.company.companyName }</a>
response.encodeURL(URL);
(3)注意:转义&=>& ?=>/?等。
6.参考资料
urlrewrite.xml配置http://www.tuckey.org/urlrewrite/manual/2.6/#filterparams
正则表达式http://download.oracle.com/javase/1.4.2/docs/api/java/util/regex/Pattern.html
本地查看示例http://localhost:8080/projectname/rewrite-status
7.DEMO源码地址
http://download.csdn.net/detail/junliu0930/3881220
8.apache整合404找不到地址问题
httpd.conf中配制,伪路径由tomcat进行处理。
转自http://www.cnblogs.com/liujun0930/archive/2011/12/05/2276553.html
java urlrewrite实现伪静态化的更多相关文章
- JAVA使用urlrewrite实现伪静态化
什么是伪静态? 伪静态字面理解就是假的静态,说的官方点就是“地址重写,用户得到的全部地址都是经过处理后的URL地址”. 为什么要伪静态呢? 提高安全性,可以有效的避免一些参数名.ID等完全暴露在用户面 ...
- 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实现图像灰度化
/*在研究Java实现将一张图片转成字符画的时候,发现将图像转化字符串是根据照片的灰度采用不同的字符画出来,形成一个灰度表.于是就研究了下关于灰度值这个东西,于是跳了一个大坑...因为鄙人用的ubun ...
- 2015-2016-2 《Java程序设计》 游戏化
2015-2016-2 <Java程序设计> 游戏化 实践「<程序设计教学法--以Java程序设计为例>」中的「游戏化(Gamification)理论」,根据 2015-201 ...
- paip.java UrlRewrite 的原理and实现 htaccess正则表达式转换
paip.java UrlRewrite 的原理and实现 htaccess正则表达式转换 #---KEYWORD #-正则表达式 正则表达式 表示 非指定字符串开头的正则 排除指定目录.. 作者 老 ...
- paip.java UrlRewrite 的原理and实现 htaccess正則表達式转换
paip.java UrlRewrite 的原理and实现 htaccess正則表達式转换 #---KEYWORD #-正則表達式 正則表達式 表示 非指定字符串开头的正则 排除指定文件夹.. 作者 ...
- PHP 页面静态化/纯静态化/伪静态化
个人博客迁移至独立博客:https://blog.plcent.com/,欢迎大家访问 概念 PHP静态化分为:纯静态化 和 伪静态化:纯静态化又分为:局部静态化 和 完全静态化 纯静态化:是把PHP ...
- PHP 404页面/如何设置404页面/URL静态化/URL伪静态化
php中如何设置404页面及其他错误页面 首先在项目根目录下新建文件,文件名为" .htaccess " 在该文件中写入一下配置项: ErrorDocument 404 /404. ...
随机推荐
- C# 使用 HttpPost 请求调用 WebService
之前调用 WebService 都是直接添加服务引用,然后调用 WebService 方法的,最近发现还可以使用 Http 请求调用 WebService.这里还想说一句,还是 web api 的调用 ...
- NOIP2017普及组T2题解
还是神奇的链接 上面依然是题目. 这道题依然很简单,比起2015年的普及组t2好像还是更水一些. 不过这道题能讲的比第一题多. 我们一起来看一下吧! 这一题,我们首先将书的编号全部读入,存在一个数组里 ...
- 计算器的改良(NOIP2000)
题目链接:计算器的改良 这道题,不是很难,但代码也短不到哪去. 我们这里决定采取边读入边计算的方法,因为题目没有明确说式子有多长. 我们需要计算什么? 我们需要知道等号两边未知数的系数和常数项即可. ...
- 744. Find Smallest Letter Greater Than Target
俩方法都是用二分查找,一个调库,一个自己写而已. 方法一,调库 static int wing=[]() { std::ios::sync_with_stdio(false); cin.tie(NUL ...
- mac os 下 Android Studio设置真机调试
http://www.cnblogs.com/developer-wang/p/6719555.html 如果没有 .bash_profile 只需要创建 .bash_profile,然后增加andr ...
- nigos core 安装配置
系统环境 Apache PHP GCC compiler GD development libraries 环境安装 yum install ...
- C#的math类的全部运算方法
Abs 返回指定数字的绝对值.Acos 返回余弦值为指定数字的角度.Asin 返回正弦值为指定数字的角度.Atan 返回正切值为指定数字的角度.Atan2 返回正切值为两个指定数字的商的角度.BigM ...
- 关于在Silverlight中添加图片的问题
在Silverlight中添加图片,目前支持的Image格式有jpg和png两种,如何在目录中添加,有些什么技巧呢? <StackPanel Background="White&quo ...
- Hdu1695 GCD 2017-06-27 22:19 30人阅读 评论(0) 收藏
GCD Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submis ...
- 11:self关键字
本小节知识点: 类方法中的self 对象方法中的self 全局变量成员变量局部变量 self总结 self使用注意 OC提