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)注意:转义&=>&amp;  ?=>/?等。

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实现伪静态化的更多相关文章

  1. JAVA使用urlrewrite实现伪静态化

    什么是伪静态? 伪静态字面理解就是假的静态,说的官方点就是“地址重写,用户得到的全部地址都是经过处理后的URL地址”. 为什么要伪静态呢? 提高安全性,可以有效的避免一些参数名.ID等完全暴露在用户面 ...

  2. JSP页面静态化总结之一使用URLRewrite实现url地址伪静态化

    JSP页面静态化总结之一使用URLRewrite实现url地址伪静态化 1使用URLRewrite实现url地址伪静态化1.1URLRewirte的用处 1.满足搜索引擎的要求. 2.隐藏技术实现,提 ...

  3. IIS7伪静态化URL Rewrite模块

    原文 IIS7伪静态化URL Rewrite模块 在Win7安装了IIS7.5之后,搭建一些网站或者博客,但是IIS7.5本身没有URL Rewrite功能,也就是无法实现网址的伪静态化. 从网上找了 ...

  4. java实现图像灰度化

    /*在研究Java实现将一张图片转成字符画的时候,发现将图像转化字符串是根据照片的灰度采用不同的字符画出来,形成一个灰度表.于是就研究了下关于灰度值这个东西,于是跳了一个大坑...因为鄙人用的ubun ...

  5. 2015-2016-2 《Java程序设计》 游戏化

    2015-2016-2 <Java程序设计> 游戏化 实践「<程序设计教学法--以Java程序设计为例>」中的「游戏化(Gamification)理论」,根据 2015-201 ...

  6. paip.java UrlRewrite 的原理and实现 htaccess正则表达式转换

    paip.java UrlRewrite 的原理and实现 htaccess正则表达式转换 #---KEYWORD #-正则表达式 正则表达式 表示 非指定字符串开头的正则 排除指定目录.. 作者 老 ...

  7. paip.java UrlRewrite 的原理and实现 htaccess正則表達式转换

    paip.java UrlRewrite 的原理and实现 htaccess正則表達式转换 #---KEYWORD #-正則表達式 正則表達式 表示 非指定字符串开头的正则 排除指定文件夹.. 作者 ...

  8. PHP 页面静态化/纯静态化/伪静态化

    个人博客迁移至独立博客:https://blog.plcent.com/,欢迎大家访问 概念 PHP静态化分为:纯静态化 和 伪静态化:纯静态化又分为:局部静态化 和 完全静态化 纯静态化:是把PHP ...

  9. PHP 404页面/如何设置404页面/URL静态化/URL伪静态化

    php中如何设置404页面及其他错误页面 首先在项目根目录下新建文件,文件名为" .htaccess " 在该文件中写入一下配置项: ErrorDocument 404 /404. ...

随机推荐

  1. 【C#】解析C#程序集的加载和反射

    目录结构: contents structure [+] 程序集 程序集的加载 发现程序集中的类型 反射对类型成员的常规操作 发现类型的成员 创建类型的实例 绑定句柄减少进程的内存消耗 解析自定义特性 ...

  2. 比较完整的HIS系统解释(转载记录)

    HIS系统即医院信息系统(全称为Hospital Information System).在国际学术界,它已被公认为是新兴的医学信息学的重要分支.HIS系统的有效运行,将提高医院各项工作的效率和质量, ...

  3. 【转】使用PHP导入和导出CSV文件

    项目开发中,很多时候要将外部CSV文件导入到数据库中或者将数据导出为CSV文件,那么具体该如何实现呢?本文将使用PHP并结合mysql,实现了CSV格式数据的导入和导出功能.我们先准备mysql数据表 ...

  4. 2018.11.24 poj3415Common Substrings(后缀数组+单调栈)

    传送门 常数实在压不下来(蒟蒻开O(3)都过不了). 但有正确性233. 首先肯定得把两个字符串接在一起. 相当于heightheightheight数组被height<kheight<k ...

  5. pat1079+1086+1090+1094(树的遍历)感想

    今天做了这4道题,虽然大部分以前做过,但还是有些知识掌握不全. 总结一下所用的树的知识及解决方法 (1)非二叉树的遍历: 非二叉树就是图,所以它的存储结构类似邻接表,c++提供了vector数组可以很 ...

  6. 安装完ubuntu后需要安装的软件

    ubuntu安装完sudo apt-get install vim g++ openssh-server libgl1-mesa-dev vmtools

  7. matlab生成滤波器系数组

    用MATLAB生成的滤波器系数是可以控制增益的,一般归一化的目的是控制增益为1.滤波器的阶数由数据速率,过渡带宽.通带波纹和阴带波纹来决定, 在下图中FS,Apass,Astop固定之后,只要Fpas ...

  8. mac中导出CSV格式在excel中乱码

    1 - 首先需要查看文档的编码格式: 安装enca:  brew install enca 使用命令 enca  file路径即可查到文件的编码格式 Universal transformation ...

  9. 20145232 韩文浩 《Java程序设计》第10周学习总结

    13.1 网络概述 13.1.1计算机网络概述 网络编程的实质:两个(或多个)设备(例如计算机)之间的数据传输. 计算机网络的定义:通过一定的物理设备将处于不同位置的计算机连接起来组成的网络,这个网络 ...

  10. BUG 图片元素img下 高度超出 出现多余空白

    BUG 图片元素img下 高度超出 出现多余空白 1.将图片转换为块级对象 即,设置img为“display:block;”.   2.设置图片的垂直对齐方式 即设置图片的vertical-align ...