页面静态化(JSP动态页面转静态化)

urlrewritefilter 下载: http://tuckey.org/urlrewrite/#download

所用基于动态的url http://www.nihaoblog.com/content.jsp?id=1&contentid=404按照各大搜索引擎的喜好,应该美化成http://www.nihaoblog.com/content/1_404.html静态网页的方式,尽管目前的google及几大搜索引擎宣称支持动态页网的抓取,但与传统的html文件相比较抓取率仍不在一个数量级。Apche的mod_rewrite模块具有此功能,但是对于租用虚拟主机的用户来说就比较麻烦不太可能对所有运营商有更多的要求,需要条件依赖就不具通用性。

    目前有一个解决方法,通过 UrlRewriteFilter可以完全实现动态URL表态化,你可以将它直接应用到你的web应用中,不管你用的是jsp+javabean还是struts.
    
下面是使用方法:
    1、下载 http://tuckey.org/urlrewrite/#download目前版本是1.2,解压缩后将文件考到相应的web-inf/lib和web-inf下,。
     2、配置web.xml
xml 代码
  1. <filter>   
  2.        <filter-name>UrlRewriteFilter</filter-name>   
  3.        <filter-class>org.tuckey.web.filters.urlrewrite.UrlRewriteFilter</filter-class>   
  4. </filter>   
  5. <filter-mapping>   
  6.        <filter-name>UrlRewriteFilter</filter-name>   
  7.        <url-pattern>/*</url-pattern>   
  8. </filter-mapping>  
根据自己的需要,将相应目录下的url转给UrlRewriteFilter来处理。
   3、配置urlwrite规则文件WEB-INF/urlrewrite.xml
配置如下:
  1. <rule>   
  2.     <from>/content/([0-9]+)_([0-9]+).html</from>   
  3.     <to>/content.jsp?id=$1&amp;contentid=$2</to>   
  4. </rule>  
xml 代码
   
注意:有多个参数时,中的连接符号&应该是&
熟悉正则表达式的朋友可能一看就是明白rule的匹配原理了。更多的配置可以参照 http://tuckey.org/urlrewrite/manual/

每个网页或请求都是一个url地址,一般,这个地址可能是.do,.page,.action之类的并加上'?'号、'&'号查询串等构成的一个长长的的url。很urgly。

一般的url----------------------------------------------------------较好的url
http://www.xxx.net/user/profile.do?id=20001 ====> http://www.xxx.net/user/20001
http://www.xxx.net/forum/board.do?name=java ====> http://www.xxx.net/forum/java
http://www.xxx.net/forum/thread.do?id=29923 ====> http://www.xxx.net/thread/29923

后者明显较为直观和漂亮。

使用url rewrite可以很好的改善这个状况。网站url rewrite应用是非常广泛的,良好的url设计给用户带来的非常好的体验,同时也能吸引搜索引擎的注意。

一种rewrite称为一个规则,上面的例子就是3个规则。rewrite技术可以在代理服务器实现,或者可以在tomcat之类的java web服务器实现。 Apache HTTP Server 2.x 和 mod_proxy提供了不错的Rewrite处理方法。so如果使用apache,则直接在apache中配置Rewrite即可。但是对于没有使用代理,或者不完全要在代理服务器配置Rewrite的web应用,通过第三方Jar包也是可以实现很perfect的rewrite技术的。这是本帖的着重点。

这个第三方包的地址是:http://tuckey.org/urlrewrite/ (待会再去这个网站,现在先别去)

这个包使用正则表达式仿照了apache rewrite的做法。而实现原理也是很明晰的:filter,forward,redirect机制组合:

在web.xml配置一个UrlRewriteFilter,拦截所有进来的请求,对服务要求的请求进行rewrite。比如,对http://www.xxx.net/user/([0-9]+)请求,forward到/profile.do?id=$1。这就是一条规则。在这个第三方包中的规则文件urlrewrite.xml中可以这样定义:

代码
  1. <rule>  
  2.     <from>^/user/([0-9]+)/?$from>  
  3.     <to type="forward">/profile.do?id=$1to>  
  4. <rule>  
<script>render_code();</script>

 

对我来说,一般我会配置一个通用的rule,使所有没有包含"."的url forward到.do的action上来(本人使用strut做系统较多)

 

代码
  1. <rule>  
  2.     <note>  
  3.          - 这是一个通用请求url rewrite   
  4.          - 将请求forword url加上“.do”的处理器上。   
  5.          - 例:   
  6.          -    请求 http://{domain}/user/login     将被forward到 http://{domain}/user/login.do   
  7.          -    请求 http://{domain}/user/login/    将被forward到 http://{domain}/user/login.do   
  8.          -    请求 http://{domain}/user/logout/   将被forward到 http://{domain}/user/logout.do   
  9.     note>  
  10.     <from>^/([_a-zA-Z]+[_0-9a-zA-Z-/]*[_0-9a-zA-Z]+)/?$from>  
  11.     <to type="forward">/$1.doto>  
  12. <rule>  
<script>render_code();</script>

 

上面只是介绍个大概,并不是urlrewriter这个jar包的使用指南。如果你觉得这种rewrite做法不错的话,不如直接访问这个网站吧 http://tuckey.org/urlrewrite/

第一步:从http://tuckey.org/urlrewrite/ 上下载urlrewrite-3.0.3.jar包,放到webapp classpath下

第二步:在web.xml配置UrlRewriteFilter:

 

代码
  1. <filter>  
  2.     <filter-name>UrlRewriteFilterfilter-name>  
  3.     <filter-class>  
  4.          org.tuckey.web.filters.urlrewrite.UrlRewriteFilter   
  5.     filter-class>  
  6.     <init-param>  
  7.         <param-name>logLevelparam-name>  
  8.         <param-value>WARNparam-value>  
  9.     init-param>  
  10. filter>  
  11. <filter-mapping>  
  12.     <filter-name>UrlRewriteFilterfilter-name>  
  13.     <url-pattern>/*url-pattern>  
  14. filter-mapping>  

<script>render_code();</script>

 

第三步:在web-inf下新建urlrewrite.xml文件,简单填入以下内容:

 

代码
  1. <!--sp-->xml version="1.0" encoding="utf-8"?>  
  2.      "http://tuckey.org/res/dtds/urlrewrite3.0.dtd">  
  3.   
  4. <urlrewrite>  
  5.     <rule>  
  6.         <note>  
  7.              - 这是一个通用请求url rewrite   
  8.              - 将请求forword url加上“.do”的处理器上。   
  9.              - 例:   
  10.              -    请求 http://{domain}/user/login     将被forward到 http://{domain}/user/login.do   
  11.              -    请求 http://{domain}/user/login/    将被forward到 http://{domain}/user/login.do   
  12.              -    请求 http://{domain}/user/logout/   将被forward到 http://{domain}/user/logout.do   
  13.         note>  
  14.         <from>^/([_a-zA-Z]+[_0-9a-zA-Z-/]*[_0-9a-zA-Z]+)/?$from>  
  15.         <to type="forward">/$1.doto>  
  16.     rule>  
  17.   
  18. urlrewrite>  

<script>render_code();</script>

 

第四步:启动web应用,将原来需要.do的请求改为去掉.do后请求,看看结果。

第五步:更详细的规则定义,请看http://tuckey.org/urlrewrite/manual/3.0/

springboot+thymeleaf+nginx实现动态页面静态化方案 原文地址:http://www.glxxw2018.com/study/blog/detail/9K6elibXWb.html 1、前面有一篇博客介绍了《使用Nginx的try_files实现动态页面静态化的简单解决方案》,主要介绍,在nginx可以先使用静态页面,没有找到静态页面后尝试使用反向代理访问后端请求的实现方式。本篇博客主要介绍,如何生成静态内容页面。如博客的内容页面。 2、如果你... 阅读详情

相关推荐

Kubeflow系统性学习教程:从入门到高级实践

Kubeflow学习教程摘要(150字): Kubeflow是基于Kubernetes的云原生MLOps平台,提供端到端机器学习解决方案。核心功能包括Jupyter Notebooks开发环境、Pipelines工作流编排、分布式训练支持和模型服务部署。教程采用三阶段学习路径:初学者搭建Kind集群体验Notebooks;中级开发自定义Pipeline组件;高级实现企业级应用。通过容器化和K8s CRD深度集成,解决环境一致性、实验跟踪和资源调度等MLOps痛点,相比MLflow/Airflow更适合大规模

自可乐的博客 862

urlrewrite静态页面的使用例子

一个很简单的使用urlrewrite实现静态页面的实现,只要把该文件解压后直接导入到eclipse里就行了,或者直接把WEB下的文件拷到TOMCAT的ROOT下去,即可运行。

JSP动态页面静态实例教程

本文还有配套的精品资源,点击获取 简介:在IT领域,将JSP动态页面化为静态HTML页面是一项优化策略,用于提升网站速度、减轻服务器负担并优化搜索引擎排名。本实例将指导如何使用MyEclipse这一Java开发工具进行JSP静态化。内容包括动态与静态页面的区别、静态化的必要性、使用MyEclipse进行静态化的过程,以及不同的静态化策略和实施中应注意的事项。 1...

weixin_42590539的博客 905

Java-UrlRewrite中文官方文档

1. 下载jar包, 并加入到WEB-INF/lib下 2. 在WEB-INF/web.xml中增加下面的配置 UrlRewriteFilter org.tuckey.web.filters.urlrewrite.UrlRewriteFilter UrlRewriteFilter /* REQUEST FOR...

babyjj59240的专栏 352

urlrewrite.xml配置

<!DOCTYPE urlrewrite PUBLIC "-//tuckey.org//DTD UrlRewrite 4.0//EN" "http://tuckey.org/res/dtds/urlrewrite4.0.dtd"> <!-- 写法参照 ^/info([0-9]+).html$ /ptinfo/ptinfoaction!selec

LionJeise的博客 655

页面静态化

urlrewritefilter 下载: http://tuckey.org/urlrewrite/#download 所用基于动态的url http://www.nihaoblog.com/content.jsp?id=1&amp;contentid=404按照各大搜索引擎的喜好,应该美化成http://www.nihaoblog.com/content/1_404.html静态网页的方式,尽管...

Java 小试 233

说说 URL 的静态化

静态网页基本已经是被时代淘汰了,未来很长一段时间都会是动态网页的天下,随着前端、后端技术的迭代,静态网页在速度方面的优势会越来越弱,相反动态网页的发展只能会更加的宽广顺畅。CDN 技术在未来支持动态网页已经是板上钉钉了,并且还会附增更加智能的安全防护能力。奉劝各位站长不要在纠结于静态和动态的选择了,顺应时代是不会错的!

草根博客站长明月登楼的CSDN博客 993

如何将动态URL静态化

现在百度算法升级,对网站的站内优化越来越侧重,做好网站站内优化迫在眉睫,往往seo们都为站内url、用户体验、网站结构优化伤透脑筋。今天为大家说一下站内 “url”动态如何做成静态化?为什么要把动态URL静态化?怎么实现动态URL静态化呢? (一)为什么要把动态URL静态化? 大量的事实表明,静态的URL在搜索引擎中的排名较动态的URL要更好一些,而且蜘蛛程序确实在爬行动态URL的时候存在一定

hb0746的专栏 1万+

页面静态化(JSP动态页面静态化)相关

urlrewritefilter 下载: http://tuckey.org/urlrewrite/#download 所用基于动态的url http://www.nihaoblog.com/content.jsp?id=1&contentid=404按照各大搜索引擎的喜好,应该美化成http://www.nihaoblog.com/content/1_404.html静态网页的方式,尽管

zhangxiong0797的专栏 3324

()页面静态化(JSP动态页面静态化)

本文来自:http://springkingster.javaeye.com/blog/175114 页面静态化(JSP动态页面静态化) urlrewritefilter 下载: http://tuckey.org/urlrewrite/#download 所用基于动态的url http://www.nihaoblog.com/content.jsp?id=1&amp;contentid...

fytcm的专栏 160

jsp页面静态化问题

首先说说为什么要静态化。《载他人,感觉很实用》 对于现在的Web Application来说,动态页面是占有绝对高的地位的,正因为有了动态化,才有了现在Web的丰富多彩,但是如同所有别的事实一样,好处往往都是有代价的。 为了产生出动态的效果,每一次对页面的请求都会要求服务器对页面进行编译或者执行,这些操作都很消耗系统资源。如果这期间还有和数据库的通讯,那么代价将会更大。 如果一个页面在一定

waiting的专栏 1907

Thymeleaf动态页面静态化

Thymeleaf 目标 Thymeleaf的介绍 Thymeleaf的入门 Thymeleaf的语法及标签 搜索页面渲染 商品详情页静态化功能实现 1.Thymeleaf介绍 1动态页面: 通过执行asp、php、jsp和.net等程序生成客户端网页代码的网页。通常可以通过网站后台管理系统对网站的内容进行更新管理。发布新闻,发布公司产品,交流互动,博客,网上调查等,这都是动态网站的一些功能。也是我们常见的。 常见的扩展名有:.asp、php、jsp、cgi和aspx 等。 注意:动态页面的“动态”是网

1663988740 1435

JSP页面静态化

首先说说为什么要静态化。 对于现在的Web Application来说,动态页面是占有绝对高的地位的,正因为有了动态化,才有了现在Web的丰富多彩,但是如同所有别的事实一样,好处往往都是有代价的。 为了产生出动态的效果,每一次对页面的请求都会要求服务器对页面进行编译或者执行,这些操作都很消耗系统资源。如果这期间还有和数据库的通讯,那么代价将会更大。 如果一个页面在一定的时间内,其内容没有发生

IT藏经阁:收集各种精华帖 910

实现页面静态化,PHP是如何实现的?

随着网站的内容的增多和用户访问量的增多,无可避免的是网站加载会越来越慢,受限于带宽和服务器同一时间的请求次数的限制,我们往往需要在此时对我们的网站进行代码优化和服务器配置的优化。 一般情况下会从以下方面来做优化 1、动态页面静态化 2、优化数据库 3、使用负载均衡 4、使用缓存 5、使用CDN加速 现在很多网站在建设的时候都要进行静态化的处理,为什么网站要进行静态化处理呢?我们...

谢谢你,慌乱了我的年华 8326

静态页面动态页面的区别

什么是静态页面?什么是动态页面?两者有什么区别?很多不了解前端技术的人可能会认为静态页面就是一个内容固定不变,没有任何效果的页面,而动态页面则是页面非常丰富,有各种交互效果和动态效果的页面。其实这个理解是错误的。通过本篇文章的阅读,详细为大家分享一下静态页面动态页面到底是什么,两者有什么区别。 什么是静态页面动态页面?   通俗的来讲,静态页面是随着HTML代码的生成,页面的内容和显示效果就基本不会发生变化(除非修改页面代码),而动态页面,虽然同样页面代码不发生变化,但是其显示的内容确实可以随着时间环

技术专家 1万+

页面静态化技术

页面静态化 1动态页面: 通过执行asp、php、jsp和.net等程序生成客户端网页代码的网页。通常可以通过网站后台管理系统对网站的内容进行更新管理。发布新闻,发布公司产品,交流互动,博客,网上调查等,这都是动态网站的一些功能。也是我们常见的。 常见的扩展名有:.asp、php、jsp、cgi和aspx 等。 注意:动态页面的“动态”是网站与客户端用户互动的意思,而非网页上有动画的就是动态页面。...

m0_46351336的博客 1714

JspHtml页面的方法

这几天公司需要生成静态的HTML页面以减小数据库与服务器的压力和负担,于是在网络上一阵狂搜,找到几篇相当不错的文章和一些相当有用的资料。为了方便,我整理在自己的BLOG,以供参考! 在接下来的应用中,我自己想到另一种解决方案,就是通过Ajax + Struts + XML解决静态页面方案,一并写下来,与大家分享! 1.生成静态页面技术解决方案之一(载) 2.生成静态页面技术解决方...

junjunbest的博客 5794

2024最新婚恋相亲系统源码 红娘金媒10.3 PC+小程序+公众号 接入三端

2024最新婚恋相亲系统源码 红娘金媒10.3 PC+小程序+公众号 接入三端1. 红娘服务红娘服务模块是该系统的一大特色。专业红娘会通过分析用户的个人资料和偏好,为用户提供精准的配对建议和个性化服务。用户可以预约红娘服务,通过红娘的介入,提升配对成功率。2. 相亲活动相亲活动模块用于组织和管理线下或线上相亲活动。用户可以报名参加系统组织的各类相亲活动,通过集体活动认识更多异性。系统会发布活动信息,审核报名用户,并向报名成功的用户推送活动通知和后续反馈。3. 交友匹配交友匹配模块是系统的核心功能。通过大数据分析和智能算法,系统会根据用户的资料和偏好,为其推荐潜在的匹配对象。匹配结果会展示给用户,帮助他们找到合适的交友对象。4. 付费获取联系方式该功能允许用户通过支付一定费用获取其他用户的联系方式。这样既能保护用户的隐私,又能为系统带来收益。用户可以提交付费请求,通过支付系统完成支付后获取目标用户的联系方式。5. 付费交友付费交友模块提供高级会员服务。用户可以通过支付费用成为高级会员,享受更多的高级功能和特权,如无限制的私聊次数、优先匹配。 项目使用php开

kingrace
博客等级 码龄18年 0粉丝 0原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值