`
guohf
  • 浏览: 404910 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

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)注意:转义&=>&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.apache整合404找不到地址问题

  httpd.conf中配制,伪路径由tomcat进行处理。

分享到:
评论
1 楼 fatedgar 2012-05-04  
我想要一种结果像这样:
在外网服务器上有个项目他的URL是:http://10.252.4.4:8077/jkda3
我想在本地输入:http://happysys:8080/jkda3就连接到上面的URL中去了
这个可以实现不?

相关推荐

    java urlrewrite 实现伪静态化 demo源码

    java urlrewrite 实现伪静态化 demo源码 http://www.cnblogs.com/liujun0930/archive/2011/12/05/2276553.html

    JAVA实现URL rewrite伪静态_.docx

    JAVA实现URL rewrite伪静态_.docx

    java伪静态简单实例

    java伪静态简单实例 java urlrewrite 伪静态简单实例

    伪静态 urlrewrite

    java web项目做伪静态用的 jar包以及用法

    Java高并发:静态页面生成方案--UrlRewrite

    UrlRewrite就是我们通常说的地址重写,用户得到的全部都是经过处理后的URL地址。 优点 一:提高安全性,可以有效的避免一些参数名、ID等完全暴露在用户面前,如果用户随便乱输的话,不符合规则的话直接会返回个404或错误...

    urlrewrite重写demo

    urlrewrite重写demo,伪静态技术实现

    urlrewrite3.04的demo

    urlrewrite 没听说吗? 用于url美化的 不过好像大多数会考虑伪静态~~~~~! 这个demo是eclipse工程 包括全部包 实现静态模拟及传参

    url_Rewrite中文帮助文档

    java 伪静态 url_Rewrite中文帮助文档

    UrlReWriteDemo

    java实现的伪静态demo,欢迎下载学习交流。

    (301重定向)urlrewritefilter-4.0.3

    实现网站伪静态301重定向,urlrewritefilter-4.0.3.jar

    JEECMS3.0.4使用教程

    在设计上自身预先做了搜索引擎优化,增强对搜索引擎的友好性 采用伪静态页面技术,可自定义路径结构,无需urlrewrite 轻松建设大规模网站,可通过次级域名建立子站群,各子站后台管理权限分离,全站实现单点登录。

    jeecms-src.rar_com.jeec_freemarker_freemarker struts2_单点登录

    JEECMS是JavaEE版网站管理系统(Java Enterprise Edition Content...采用伪静态页面技术,可自定义路径结构,无需urlrewrite 轻松建设大规模网站,可通过次级域名建立子站群,各子站后台管理权限分离,全站实现单点登录

    jee cms学习文档

    · 采用伪静态页面缓存技术,管理方便,速度可与静态页面相媲美,用户自定义路径结构,无需urlrewrite · 轻松建设大规模网站,可通过次级域名建立子站群,各子站后台管理权限分离,全站实现单点登录

    jeecms3.0.4

    在设计上自身预先做了搜索引擎优化,增强对搜索引擎的友好性 ,采用伪静态页面技术,可自定义路径结构,无需urlrewrite ,轻松建设大规模网站,可通过次级域名建立子站群,各子站后台管理权限分离,全站实现单点登录。

    jeecmsv2.3.2 内容管理系统 (hibernate3+struts2+spring2+freemarker)

    JEECMS是JavaEE版网站管理系统(Java Enterprise ...· 采用伪静态结合页面缓存技术,可自定义路径结构,无需urlrewrite · 轻松建设大规模网站,可通过次级域名建立子站群,各子站后台管理权限分离,全站实现单点登录

    jeecms-2.4.2(源码+安装包)

    JEECMS是国内Java版开源网站内容管理系统(java cms、jsp ...· 采用伪静态页面技术,可自定义路径结构,无需urlrewrite · 轻松建设大规模网站,可通过次级域名建立子站群,各子站后台管理权限分离,全站实现单点登录

    JEEcms目前国内的cms领跑者

    JEECSM是JavaEE版网站管理系统(Java Enterprise Edition ...·采用伪静态页面技术,可自定义路径结构,无需urlrewrite ·轻松建设大规模网站,可通过次级域名建立子站群,各子站后台管理权限分离,全站实现单点登陆!

    JEECMS v2.3.2 正式版用源码

    JEECMS是JavaEE版网站管理系统(Java Enterprise Edition Content...采用伪静态页面技术,可自定义路径结构,无需urlrewrite 轻松建设大规模网站,可通过次级域名建立子站群,各子站后台管理权限分离,全站实现单点登录

    urlrewritefilter-4.0.3.zip

    urlrewritefilter-4.0.3 伪静态是相对真实静态来讲的,通常我们为了增强搜索引擎的友好面,都将文章内容生成静态页面,但是有的朋友为了实时的显示一些信息。或者还想运用动态脚本解决一些问题。不能用静态的方式来...

    hibernate3+struts2+spring2+freemarker 主流技术架构 实例

    包括: +----doc +-----jeecms基础概念.txt ...• 采用伪静态结合页面缓存技术,可自定义路径结构,无需urlrewrite • 轻松建设大规模网站,可通过次级域名建立子站群,各子站后台管理权限分离,全站实现单点登录

Global site tag (gtag.js) - Google Analytics