接上一章的动态页面静态化。
方法二、通过url重写。既动态页面与静态页面使用同样的url来实现。
例如:原请求为:href="tradesite.jspa?path=jtwl&id=1234"
重写后为:href="tradesite/jtwl/1234.htm"
通过这样的重写我们能保证动态页面与静态页面使用同样的url地址访问。这样在生成静态页的时候就不存在替换动态url链接的操作了。
实现步骤:
1.在web.xml中加入
<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>trace</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>UrlRewriteFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
没错就是一个过滤器而已。定义了使用哪个类来进行url重写、
当然要导入相应的url重写jar包:urlrewrite-3.0.4.jar
class:指明使用这个类的路径。
<param-name>logLevel</param-name>
<param-value>trace</param-value>
指明debug模式。
filter-mapping>
<filter-name>UrlRewriteFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
表示对所有的url都进行重写。
还没有完。
这时候要建立url重写规则配置文件urlrewrite.xml。主要是通过正则表达式来匹配实际要访问的url去。
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE urlrewrite PUBLIC "-//tuckey.org//DTD UrlRewrite 3.0//EN" "http://tuckey.org/res/dtds/urlrewrite3.0.dtd">
<urlrewrite default-match-type="regex">
<rule>
<from>^/more/([a-zA-Z0-9]+)/([0-9]+)\.htm$</from>
<to>/secondpage.jspa?path=$1&id=$2</to>
</rule>
<rule>
<from>^/difang/([a-zA-Z0-9]+)/([0-9]+)\.htm$</from>
<to>/difangsite.jspa?path=$1&locpid=$2</to>
</rule>
<rule>
<from>^/index\.htm$</from>
<to>/index.jspa</to>
</rule>
<rule>
<from>^/localservice/([a-zA-Z0-9]+)\.htm$</from>
<to>/localservice.jspa?path=$1</to>
</rule>
<rule>
<from>^/toolclass/([a-zA-Z0-9]+)/([0-9]+)\.htm$</from>
<to>/toolclassbytpid.jspa?path=$1&tpid=$2</to>
</rule>
<rule>
<from>^/toolsite/([a-zA-Z0-9]+)/([0-9]+)\.htm$</from>
<to>/toolsitebycid.jspa?path=$1&tcid=$2</to>
</rule>
<rule>
<from>^/tradeservice/([a-zA-Z0-9]+)\.htm$</from>
<to>/tradeservice.jspa?path=$1</to>
</rule>
<rule>
<from>^/trade/([a-zA-Z0-9]+)/([0-9]+)\.htm$</from>
<to>/tradesite.jspa?path=$1&tradepid=$2</to>
</rule>
<rule>
<from>^/([a-zA-Z0-9_\-/]*)css/(.*\.css)$</from>
<to>/css/$2</to>
</rule>
<rule>
<from>^/([a-zA-Z0-9_\-/]*)js/(.*\.js)$</from>
<to>/js/$2</to>
</rule>
<rule>
<from>^/([a-zA-Z0-9_\-/]*)pic/(.*)$</from>
<to>/pic/$2</to>
</rule>
</urlrewrite>
配置文件的名称必须这样命名。因为在filter中已经规定了它会负责读取urlrewrite.xml然后进行请求。
通过这个配置文件也都能看得出只要页面中的链接能匹配到这里的配置规则、则会将它转译到新的url再次进行跳转。
它的神奇之处在于 能替换所有的url包括页面中需要引入的css、js、image等文件夹。
这样你在生成静态页时既不需要你重新修改页面链接。生成的文件目录名正好是你配置规则转译之前的目录结构。例如href="tradesite/jtwl/1234.htm"
生成后的目录即位:根目录/tradesite/jtwl/1234.htm/
在特殊需求下还会变为:根目录/tradesite/jtwl/1234/curr/
时间毫秒值1293413755437.htm
这样在每次生成静态页时则不会覆盖原来的文件。而可以设定规则让用户每次访问到的为时间值最大的那个文件。
分享到:
相关推荐
以下是对动态页面静态化方案的详细解释: 1. **Java与JSP**: Java是一种广泛使用的后端编程语言,JSP(JavaServer Pages)是Java中用于创建动态网页的技术。在传统的JSP应用中,服务器接收到请求后,会解析JSP...
ASP.NET URL重写和动态生成静态页面是两个关键的技术,它们在提高网站性能、优化搜索引擎排名(SEO)以及提供用户友好的URL等方面发挥着重要作用。 首先,我们来深入理解ASP.NET URL重写。URL重写是一种技术,允许...
在ASP.NET开发中,URL重写和页面静态化是两种重要的技术,它们对提升网站性能、优化搜索引擎排名以及保持良好的用户体验具有显著作用。下面将详细解释这两种技术,并结合HttpModuleDemo示例进行深入探讨。 一、URL...
1. **URL重写**:将包含参数的动态URL转化为易于理解的、关键词丰富的静态化链接,如“/product-name.html”代替“/index.php/product/id/123”。这样不仅利于用户记忆,也有助于搜索引擎快速识别页面内容。 2. **...
在ASP.NET中,动态页面静态化主要有两种方式:预编译(Precompilation)和运行时静态化(Runtime Output Caching)。 1. 预编译: 预编译是ASP.NET提供的一种在部署前将所有ASPX页面转换为编译好的DLL文件的过程。...
在实际应用中,开发者应根据项目需求选择合适的方法,结合IIS Rewrite等工具,灵活地实现ASP伪静态化、URL重写和静态化,以达到最佳效果。安装文件`isapi_rwl_0055.msi`可能是IIS Rewrite模块的一个版本或补丁,用于...
Java JSP页面静态化是一种常见的优化技术,其主要目的是通过将动态内容转化为静态HTML页面,以减少对数据库的访问次数,提高网站的响应速度和用户体验。以下是对这一主题的详细阐述: 1. **JSP页面静态化原理**: ...
本文将深入探讨ASP.NET动态页面静态化的核心概念、实现方式以及URLRewriter工具的应用。 1. **核心概念**: - **动态页面**:基于ASP.NET的网页通常由服务器端的.NET Framework处理,根据用户请求动态生成HTML。 ...
本篇文章将详细探讨“jsp动态转静态URL重写”的概念、重要性以及实现方法。 一、动态URL与静态URL的区别 1. 动态URL:动态URL通常包含“?”、“=”、"&"等特殊字符,用于传递参数给服务器执行相应的动态脚本,例如...
描 述:UrlReWrite(Url重写或伪静态)完美示例源码 UrlReWrite(Url重写或伪静态)完美示例源码,已利用ActionlessForm解决原始地址form回传的问题 例如:/products.aspx?category=books 转换为/products/Books....
在本文中,我们将深入探讨URL重写、地址重写、伪静态以及如何将ASP.NET C#应用程序中的动态页面转换为HTML,以提高网站性能和SEO排名。 一、URL重写基础 URL重写是一种技术,它允许开发者隐藏实际的URL路径,提供...
在实践中,我们可以结合使用URL重写、页面静态化和伪静态化,为ASP.NET应用程序构建高性能且对搜索引擎友好的网站。例如,AspxToHtmlDemo可能是一个演示如何实现这些功能的示例项目,它可能包含了实现静态化和伪静态...
尽管页面仍然是由服务器动态生成,但通过URL重写,可以使得这些页面的访问路径呈现出静态HTML文件的形式,如 `example.com/about.html`。这样做可以提高页面加载速度,因为静态页面往往比动态页面响应更快。同时,伪...
URL重写则是改变网址显示形式的技术,它允许我们将复杂的动态URL转换为简洁、有意义的静态化URL,以提高用户体验和SEO效果。例如,将一个带有查询参数的URL `www.example.com/article.php?id=123` 重写为更友好的 `...
首先,让我们了解什么是URL重写和伪静态。URL重写是一种技术,它允许你改变URL的结构,而实际资源的位置不变。这在隐藏复杂查询字符串、创建用户友好的短链接或改善SEO方面非常有用。伪静态则是将动态生成的网页以...
4. 配置URL重写:使用URL重写技术,如Tuckey的UrlRewriteFilter,使得用户请求原本的动态URL时,服务器实际返回的是静态HTML。 5. 部署与测试:将项目部署到服务器上,通过浏览器访问,检查静态页面的生成和显示...
URL重写技术允许我们将复杂的、包含参数的动态URL转换为简洁、易读的静态化形式。在ASP.NET中,我们可以使用如URLRewriter.dll这样的库来实现这个功能。URLRewrite模块通过对HTTP请求进行拦截和修改,使得服务器能够...
总的来说,"asp.net+动态页面静态化数据库版"案例提供了如何在ASP.NET环境中结合数据库实现动态页面静态化的实例。通过学习此案例,开发者可以理解如何提升网站性能,降低服务器负载,并提高用户体验。同时,对于SEO...
在进行页面静态化时,我们还需要考虑一些问题,比如如何处理动态内容(如用户登录状态、个性化推荐)、如何同步静态文件和动态数据、以及如何清理过期的静态文件等。这些问题可以通过设计合理的缓存策略和定时任务来...
3. **URL重写**:为了保持URL的友好性和一致性,通常还需要对URL进行重写处理,使得静态页面的URL看起来仍然是动态的。 #### 二、Java EE环境下的实现方法 在Java EE环境下实现动态网站静态化有多种方式,下面介绍...