2.解压所下载的文件,把urlrewrite-2.6.0.jar复制到项目的WebRoot/WEB-INF/lib/目录下
3.把urlrewrite.xml复制到项目的WebRoot/WEB-INF/目录下
4.在web.xml文件中加入filter
<filter-name>UrlRewriteFilter</filter-name> <filter-class>org.tuckey.web.filters.urlrewrite.UrlRewriteFilter</filter-class> <param-name>logLevel</param-name> <param-value>WARN</param-value> <filter-name>UrlRewriteFilter</filter-name> <url-pattern>/*</url-pattern>
5.配置urlrewrite.xml
1.普通url静态化 例如:
要把http://localhost/prjtest/user/list.jsp转换成http://localhost/prjtest/user/list.html这种是最简单的,当一个servlet跳转到list.jsp页面列出user列表时,在urlrewrite.xml中这样配置:
<from>^/user/list.html</from> <totype="redirect">/user/list.jsp</to>
当请求/user/list.html这个页面时,实际上相当于请求/user/list.jsp页面,在servlet的跳转要这样写:response.sendRedirect("./user/list.html");
2要把http://localhost/prjtest/user/view.jsp?cid=1&cname=admin转换成http://localhost/prjtest/user/view/1_admin.html在urlrewrite.xml中这样配置:
<from>^/user/view/([0-9]+)_([a-z]+).html$</from> <totype="redirect">/user/view.jsp?cid=$1cname=$2</to>
6特别说明
为什么地址栏不变?
原因就在于浏览器显示的是最后被给定的URL。当一个URL被提交后,在某一个组件返回一个相应给浏览器之前,你的应用可能转发请求多次。所有这些都发生在服务器端,浏览器并不知道发生了什么事。当一个Http相应被放回时,它并没有包含地址信息,所以浏览器仅仅显示用来作为初始请求的地址。
要想让地址栏也变成静态化的URL,很简单,将<to type="redirect">改成<to type="forward">即可
<!-------------转jsp相同,需要修改的地方是:----------------->
<filter-mapping>
<filter-name>struts2 </filter-name>
<url-pattern>*.do </url-pattern>
<dispatcher>REQUEST </dispatcher>
<dispatcher>FORWARD </dispatcher>
<dispatcher>INCLUDE </dispatcher>
</filter-mapping>
1.1URLRewirte的用处
1.满足搜索引擎的要求。
2.隐藏技术实现,提高网站的移植性。
3.满足美感的要求(个人感觉这个用处太牵强)。
1.2项目部署
1.首先在http://tuckey.org/urlrewrite/下载urlrewirtefilter,现在有2.6.0和3.2.0两个版本,这里我选择的是前面一个稳定版本。
2.解压所下载的文件,把urlrewrite-2.6.0.jar复制到项目的WebRoot/WEB-INF/lib/目录下,然后编译。
3.把urlrewrite.xml复制到项目的WebRoot/WEB-INF/目录下
4.在web.xml文件中加入以下:
1 <!-- 动态地址静态化 -->
2 <filter>
3 <filter-name>UrlRewriteFilter</filter-name>
4 <filter-class>org.tuckey.web.filters.urlrewrite.UrlRewriteFilter</filter-class>
5 <init-param>
6 <param-name>logLevel</param-name>
7 <param-value>WARN</param-value>
8 </init-param>
9 </filter>
10 <filter-mapping>
11 <filter-name>UrlRewriteFilter</filter-name>
12 <url-pattern>/*</url-pattern>
13 </filter-mapping>
5.需要配置urlrewrite.xml文件来实现url静态化,下面将详细说明
1.3 如何静态化
到这里相关的配置已经完成,下面看如何把动态地址静态化:
(1)普通url静态化
例如:要把http://localhost/prjtest/user/list.jsp转换成http://localhost/prjtest/user/list.html
这种是最简单的,当一个servlet跳转到list.jsp页面列出user列表时,在urlrewrite.xml中这样配置:
1 <rule>
2 <from>^/user/list.html</from>
3 <to>/user/list.jsp</to>
4 </rule>
当请求/user/list.html这个页面时,实际上相当于请求/user/list.jsp页面
在servlet的跳转要这样写:
response.sendRedirect("./user/list.html");
(2)带参数的url静态化
例如:要把http://localhost/prjtest/user/view.jsp?cid=1&cname=admin转换成
http://localhost/prjtest/user/view/1_admin.html
在urlrewrite.xml中这样配置:
1 <rule>
2 <from>^/user/view/([0-9]+)_([a-z]+).html$</from>
3 <to>/user/view.jsp?cid=$1&cname=$2</to>
4 </rule>
当请求/user/view/1_admin.html这个页面时,实际上相当于请求/user/list.jsp?cid=1&cname=admin页面,在servlet的跳转要这样写(cid,cname为变量):
response.sendRedirect("./user/view/"+ cid +"_"+ cname +".html");
注意:配置文件中用"&"来代替"&"。
一个通用的正则表达式:[a-zA-Z0-9]+
1.4 小结
使用URLRewirte可以方便的进行地址伪静态化,配置规则也相对比较方便。不过在项目设计的时候需要制定地址匹配规则,以使在开发的过程中直接利用该规则进行编码。如果是对已有的项目进行地址伪静态化比较麻烦,需要对所有的页面、跳转进行修改,工作量较大,同时也容易忽略一些URL。
一句话,其实它并没有达到静态化要求,只是相当于将地址进行了改写。
相关推荐
在本文中,我们将深入探讨如何使用UrlRewrite来实现伪静态,并了解其配置过程。 1. **什么是URL重写**: URL重写是指将动态URL转换为静态或者看似静态的URL,以提升网站的可读性和美观性。动态URL通常包含多个参数...
通过上述步骤,我们可以使用`UrlRewriteFilter 4.0.3`轻松实现网站的伪静态。这种技术不仅能够提高网站的可读性和美观性,还能对SEO产生积极影响,让搜索引擎更好地抓取和理解网页内容。同时,通过灵活的规则配置,...
在这个"java urlrewrite 实现伪静态化 demo源码"中,我们可以深入理解如何使用URLRewrite框架来转化动态URL为更加友好的静态形式。 URLRewrite的核心概念是规则配置,通过定义一系列规则,可以将带有参数的动态URL...
在ASP.NET中,`UrlRewrite`模块同样可以用于实现伪静态。例如,可以设置规则将`/product.aspx?id=123`转换为`/product/123.html`。这样做不仅可以优化SEO,还可以避免用户看到带有`.aspx`扩展名的URL,提升用户体验...
Url Rewrite Filter 是一款基于Java...1. **URL伪静态化**:Url Rewrite Filter 可以将带有参数的动态URL,如`http://localhost:8080/myindex.do?method=listIndex&user=ezplus`,重定向到看起来像是静态页面的URL,如`...
要使用URLRewrite.dll实现伪静态,你需要进行以下步骤: 1. **安装URLRewrite模块**:首先确保你的IIS服务器已经安装了URLRewrite模块,如果没有,可以通过Web Platform Installer进行安装。 2. **配置rewrite规则*...
总结,JSP中使用URLRewrite实现URL伪静态化能够提高网站的专业性,增强用户体验,同时对SEO有显著的提升。理解并熟练掌握URLRewriteFilter的配置和规则编写,将使你的Web应用程序更具竞争力。通过不断实践和优化,你...
描 述:UrlReWrite(Url重写或伪静态)完美示例源码 UrlReWrite(Url重写或伪静态)完美示例源码,已利用ActionlessForm解决原始地址form回传的问题 例如:/products.aspx?category=books 转换为/products/Books....
### Url Rewrite Filter 实现页面伪静态化:详细步骤与实例解析 #### 一、引言 在现代Web开发中,为了提升用户体验、提高搜索引擎友好度以及优化网站结构,页面伪静态化成为了一种常见的技术手段。本文将详细介绍...
在本例子中,我们将探讨如何使用URLRewrite模块来为ASP.NET网站实现实现伪静态。 首先,我们需要理解为什么需要伪静态。静态网页易于被搜索引擎抓取,而动态网页往往因为参数过多、变化频繁而不利于爬虫。因此,将...
标题“urlrewrite2伪静态与使用文档(IIS)”涉及到的是在IIS(Internet Information Services)服务器环境中,使用urlrewrite2模块实现URL重写和伪静态功能的技术内容。URL重写是Web开发中的一项关键技术,它允许...
UrlRewrite是一个强大的URL管理工具,它主要用于将复杂的URL转换为简单、易记且友好的形式,这个过程被称为URL重写或伪静态处理。在Web开发中,URL重写技术对于提升用户体验、优化搜索引擎排名(SEO)以及维护网站...
`Url Rewrite伪静态组件`是Microsoft为IIS(Internet Information Services)提供的一款强大工具,用于实现这种功能。本文将深入探讨这个组件的原理、安装与配置过程,以及其在实际应用中的重要性。 首先,让我们...
标题 "urlrewrite重写URL伪静态请求路径" 涉及到的是Web开发中的一个重要概念——URL重写,这是为了优化网站的SEO(搜索引擎优化)和用户体验而进行的一种技术手段。URL重写允许我们将复杂的动态URL转换为简洁、易于...
在Java Web开发中,"伪静态 URLRewrite"是一个重要的技术概念,主要用于优化网站的URL结构,使其看起来更像静态页面,从而提升用户体验和搜索引擎优化(SEO)。`URLRewrite`是一个基于Apache开源项目Tuckey开发的...
Discuz! X2 配置URL伪静态Rewrite规则,里面详细讲解了apache服务器下 Discuz! X2 配置URL伪静态Rewrite规则和IIS下得Discuz! X2 配置URL伪静态Rewrite规则
这个"UrlReWrite(Url重写或伪静态)完美示例源码"包含了实现这些功能的具体代码,对于开发者来说是一份宝贵的参考资料。通过阅读和分析源码,我们可以: - 学习如何配置和编写URL重写规则。 - 了解内部实现逻辑,包括...