- 浏览: 676898 次
- 性别:
- 来自: 安徽
文章分类
- 全部博客 (252)
- Html/Div+CSS (12)
- Js/Jquery (34)
- Flex (2)
- Ajax (3)
- Java (35)
- C# (15)
- Spring (16)
- Hibernate (13)
- Struts2 (12)
- Struts1 (7)
- DWR (1)
- iBatis/myBatis (9)
- Tag(JSTL、EL) (1)
- Android (44)
- SQL (7)
- SEO (7)
- Exception (3)
- Tool (10)
- Other (3)
- WebService (9)
- Apache (7)
- Ext (0)
- Utils (12)
- thinking in programme (2)
- Hadoop (0)
- ActiveMQ (0)
- HTML5/CSS3 (0)
- WPF (1)
- NodeJs (1)
- 设计模式 (0)
- 程序人生 (1)
- 随笔 (1)
- Linux (1)
- Load Balance (0)
最新评论
-
drinkjava2:
太复杂了而且不通用,利用ThreadLocal可完美解决这一问 ...
JDBC的多条件动态查询 -
u013107014:
multipartRequest.getFiles(" ...
多文件上传 by MultipartFile and Multiple -
liyys:
可惜没讲你mysql数据库的表的设计
iBatis入门 -
Mapple_leave:
效果还是挺不错的,谢谢了。
中文简体与繁体的转换 -
arcpad:
JS禁用浏览器退格键
产生背景
静态网页与动态网页比较:
静态网页:
优点: A 、 对搜索引擎友好,被收录的质量高; B 、访问速度快; C 、资源( cpu 等)占用少。
缺点: A 、对于大型门户,或者社区来说,不断的修改将会产生大量 I/O ,会导致磁盘出现碎片甚至出现磁盘坏道。相当恐怖一个隐患。用户信息一旦没有了就没戏玩了。 B 、储存空间占用会多一些。
动态网页:
优点:相对于静态,它的劣势也就是动态的优势所在——占用空间少,对硬盘友好。
缺点: A 、对搜索引擎不友好。搜索引擎会不收录带问号的网址 ? 因为搜索引擎怕由于问号而进入死循环。 B 、高并发时资源占用较多。
二、伪静态作用
1 、提高安全性,可以有效的避免一些参数名、 ID 等完全暴露在用户面前,如果用户随便乱输的话,不符合规则的话直接会返回个 404 或错误页面,这比直接返回 500 或一大堆服务器错误信息要好的多
2 、美化 URL ,去除了那些比如 *.do 之类的后缀名、长长的参数串等,可以自己组织精简更能反映访问模块内容的 URL
3 、更有利于搜索引擎的收入,通过对 URL 的一些优化,可以使搜索引擎更好的识别与收录网站的信息
三、 Java 伪静态实现方式
Java 上主要使用 urlRewrite ,下载地址 http://www.tuckey.org/urlrewrite/ ,从单词字面意义上可以发现就是对 URL 进行重写,用户得到的全部都是经过处理后的 URL 地址。其具体实现步骤如下:
1、 下载 urlrewrite 的 jar 包,并复制到项目中去;
2、 在 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>WARN</param-value> </init-param> <!-- 这里配置urlrewrite.xml文件的地址,如果和web.xml同在WEB-INF下则不需配置此项 --> <init-param> <param-name>confPath</param-name> <param-value>/WEB-INF/classes/urlrewrite.xml</param-value> </init-param> </filter> <!-- 伪静态过滤器映射--> <filter-mapping> <filter-name>UrlRewriteFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
3 、编写 urlrewrite.xml 伪静态化的规则文件,这个文件我们可以从下载网址上下载下来,然后进行修改,这里以 Struts2 的 Action 跳转为例:
<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE urlrewrite PUBLIC "-//tuckey.org//DTD UrlRewrite 3.1//EN" "http://tuckey.org/res/dtds/urlrewrite3.1.dtd"> <urlrewrite> <!-- 1、匹配一个参数的 --> <rule> <!-- /FileShare/myUpload/myUploadList/pageNo/1.html --> <from>^/([a-zA-Z]*)\/([a-zA-Z]*)\/([a-zA-Z]*)_((?:[a-zA-Z]+)|(?:[0-9]+)).html$</from> <to>/$1!$2.action?$3=$4</to> <!-- <from>^/myUpload/myUploadList/pageNo/((?:[a-zA-Z]+)|(?:[0-9]+)).html$</from> <to>/myUpload!myUploadList.action?pageNo=$1</to> --> </rule> <!-- 2、匹配两个参数的 --> <rule> <from>^/([a-zA-Z]*)\/([a-zA-Z]*)\/([a-zA-Z]*)_((?:[a-zA-Z]+)|(?:[0-9]+))\/([a-zA-Z]*)_((?:[a-zA-Z]+)|(?:[0-9]+)).html$</from> <to>/$1!$2.action?$3=$4&$5=$6</to> </rule> <!-- ${applicationScope.basePath }/myUpload!myUploadList.action?pageNo=1 --> <!-- 1、匹配一个参数的 --> <outbound-rule> <from>^/([a-zA-Z]*)\/([a-zA-Z]*)!([a-zA-Z]*).action\?([a-zA-Z]*)=((?:[a-zA-Z]+)|(?:[0-9]+))$</from> <to>/$1/$2/$3/$4_$5.html</to> <!-- <from>^/FileShare/myUpload!myUploadList.action\?pageNo=([0-9]+)$</from> <to>/FileShare/myUpload/myUploadList/page/$1.html</to> --> </outbound-rule> <!-- 2、匹配两个参数的 --> <outbound-rule> <from>^/([a-zA-Z]*)\/([a-zA-Z]*)!([a-zA-Z]*).action\?([a-zA-Z]*)=((?:[a-zA-Z]+)|(?:[0-9]+))&([a-zA-Z]*)=((?:[a-zA-Z]+)|(?:[0-9]+))$</from> <to>/$1/$2/$3/$4_$5/$6_$7.html</to> </outbound-rule> </urlrewrite>
说明:
1) 、 outbound-rule ,先说这个是因为在开发编写时,一般先写这部分然后再先 rule 的, outbound-rule 是将页面上的超链接选项地址转化为伪静态地址,这里需要注意的是页面中的超链接需要经过 response.encodeUrl(url) 转化,或采用 <C:URL> 标签进行转化 ;
2) 、 outbound-rule 中的 from 表示页面上的地址, to 表示在网页上显示出来的伪静态地址;
3) 、 outbound-rule 中的 form 和 to 需要加上项目名称,而 rule 不需要的;
4) 、 rule 处理伪静态地址, form 包含通过正则表达式对请求进行匹配, to 即为实际的请求地址;
5) 、因为这里用到正则,所以需要注意转义: &=>& ?=>/? 等
6) 、 $1,$2 代表与你配置正规表达式 /(\w+)/(\w+)/ 相对应的参数。 <to type="forward"> 默认的是 type="forward" 。另一个常用的规则就是连接外部的网站。就要用到。 <to type="redirect"> ;
7) 、 ^: 匹配字符串的开始, $ :匹配字符串的结束;
8) 、 ([a-zA-Z]*)\/([a-zA-Z]*) 中的“ \ ”表示转义;
其实上面的我们可以看出就是在设定一些规则(在编写正则的时候需要细心,编写正则时,可以在 http://www.rubular.com/ 上进行验证),这和 Rest 风格的编程很类似,设计的规则越好,其展示出来的链接地址越直观,简洁。
4、 修改 jsp 页面上的地址(需要添加 jstl 相关的 jar : jstl.jar 、 standard.jar ):
一个参数的:
<c:url value="/myUpload!myUploadList.action?pageNo=1" var="myUpload"></c:url> <li> <a href='${myUpload }' target="main">My Upload</a> </li>
两个参数的:
<s:set name="id" value="id"></s:set> <s:set name="pageNo" value="pagination.getPageNo()"></s:set> <c:url value='/modifyUpload!entryModify.action?uploadFileId=${id}&pageNo=${pageNo }' var="modifyFileUrl" ></c:url> <a href='${modifyFileUrl }' target="main" >Edit</a>
发表评论
-
log4j xml配置详解
2014-06-18 10:37 1140<?xml version="1.0&qu ... -
test
2013-07-29 09:16 0private static CacheImpl insta ... -
多文件上传 by MultipartFile and Multiple
2012-12-03 09:13 14353最近的一个项目中,需要用到 ... -
布局框架-SiteMesh
2012-11-30 08:57 2594最近在一个项目中使用 ... -
Servlet
2012-12-07 08:36 1550一、认识 Servlet : ... -
连接池
2012-12-10 08:42 1448... -
忆Java String
2012-11-15 08:38 1269平时 .NET 写多了, Java ... -
Eclipse中右键快速定位文件资源的工具
2012-11-09 08:43 2014当你开发.NET项目后,使用VS习惯了再来使用Java和Ecl ... -
Java中MessageFormat对象实现格式化字符串输出,类似C#中的string.format方法
2012-09-29 11:39 3672平时.NET做多了,再做Java时,总会进行一些比较,比如说J ... -
byte[]与InputStream互转
2012-09-29 11:39 1585InputStream转byte[] private ... -
统一中英文长度问题
2012-07-20 00:17 1939最近因为在做一个项目要求很多都是英文,所以这就涉及到在页 ... -
Java中Process的waitFor()阻塞问题
2012-07-21 01:00 8947在做视频转换时,调用外部的 exe 去进行一些视频 ... -
Tomcat注册成系统服务
2012-07-17 00:00 1564为了部署项目后不出现黑色的 doc 命令框,所以很 ... -
Java中java.util.Date时间和java.sql.Date时间的相互转化
2012-01-30 22:49 2963刚刚写用 JS 禁用退格键时( http ... -
使用BeanUtils类简化request和resultset转换
2012-01-21 20:23 2972当提交表单时,如果没有使用Struts等框架的话,你的代 ... -
JDBC的多条件动态查询
2012-01-19 11:05 7198前面我已经提到了现在的项目无非就是列表里的分页加多条件查 ... -
JDBC分页
2012-01-19 10:15 5529不知道大家做项目做到最后有什么感觉没有,其实大家做来做去 ... -
Java农历(阴历)工具类
2012-01-20 11:30 2361在真实的项目开发中会可能会遇到项目需要对阴历即我们所说的农历节 ... -
Eclipse中java项目引用dll库的路径设置(System.loadLibrary()调用Dll路径问题)
2012-01-16 14:13 4273右击项目名|选择属性properties|在左边列表内选择“J ... -
联系人导出(msn、邮箱)
2012-01-16 11:48 8353在项目开发中,不知道大家有没有涉及到导出邮箱或msn的联系人( ...
相关推荐
在这个"java urlrewrite 实现伪静态化 demo源码"中,我们可以深入理解如何使用URLRewrite框架来转化动态URL为更加友好的静态形式。 URLRewrite的核心概念是规则配置,通过定义一系列规则,可以将带有参数的动态URL...
提供的`UrlRewriteDemo`可能包含了演示如何使用UrlRewrite实现伪静态的示例代码和配置文件,可以帮助你更好地理解并实践上述概念。 通过UrlRewrite组件,我们可以轻松地实现URL重写和伪静态,从而提升网站的用户...
URLRewrite.dll是微软IIS(Internet Information Services)服务器中的一个核心组件,用于实现URL重写功能,对于实现伪静态起着关键作用。 **URLRewrite.dll介绍** URLRewrite.dll是IIS扩展模块的一部分,主要功能...
`Url Rewrite伪静态组件`是Microsoft为IIS(Internet Information Services)提供的一款强大工具,用于实现这种功能。本文将深入探讨这个组件的原理、安装与配置过程,以及其在实际应用中的重要性。 首先,让我们...
这个工具的主要目的是实现URL的伪静态化,提高网站的搜索引擎优化(SEO)效果,并且能够自动转换页面内的链接,使得程序员在编写代码时无需考虑URL的具体格式。 **主要功能** 1. **URL伪静态化**:Url Rewrite ...
UrlRewrite是一个强大的URL管理工具,它主要用于将复杂的URL转换为简单、易记且友好的形式,这个过程被称为URL重写或伪静态处理。在Web开发中,URL重写技术对于提升用户体验、优化搜索引擎排名(SEO)以及维护网站...
### Url Rewrite Filter 实现页面伪静态化:详细步骤与实例解析 #### 一、引言 在现代Web开发中,为了提升用户体验、提高搜索引擎友好度以及优化网站结构,页面伪静态化成为了一种常见的技术手段。本文将详细介绍...
这个标题所指的测试文件主要用于检测服务器环境是否支持使用PHP的mod_rewrite模块来实现伪静态功能。下面将详细讲解这个主题。 **PHP-_rewrite** PHP-rewrite是基于Apache Web服务器的mod_rewrite模块与PHP结合的一...
在本示例源码中,我们将深入理解UrlReWrite的工作原理、应用场景以及如何通过源码实现。 1. **Url重写基本概念** - **Url重写**:Url重写是指将用户请求的实际URL(可能包含动态参数)转换为一个更加友好、简洁的...
标题 "urlrewrite重写URL伪静态请求路径" 涉及到的是Web开发中的一个重要概念——URL重写,这是为了优化网站的SEO(搜索引擎优化)和用户体验而进行的一种技术手段。URL重写允许我们将复杂的动态URL转换为简洁、易于...
在这个实例中,我们将深入探讨如何利用`URL Rewrite`工具,特别是`UrlRewriteFilter 4.0.3`版本,来实现网站的伪静态功能。 `UrlRewriteFilter`是一个基于Apache开源项目Tuckey的Java过滤器,用于在Web应用中执行...
在ASP.NET中,可以使用URL Routing或者IIS的URL Rewrite模块来实现伪静态。 **URL Routing** 是ASP.NET MVC框架中的一个重要特性,允许开发者定义自定义的URL模式,从而将动态请求映射到控制器和动作。通过设置路由...
在Java Web开发中,"伪静态 URLRewrite"是一个重要的技术概念,主要用于优化网站的URL结构,使其看起来更像静态页面,从而提升用户体验和搜索引擎优化(SEO)。`URLRewrite`是一个基于Apache开源项目Tuckey开发的...
通过合理配置urlrewrite规则,不仅可以实现伪静态,还可以进行重定向、隐藏某些参数、改变请求路径等多种功能。而正则表达式的灵活运用,使这一切成为可能。 在压缩包中的“正则表达式.txt”文件,可能包含了更多...
在实际应用中,开发者应根据项目需求选择合适的方法,结合IIS Rewrite等工具,灵活地实现ASP伪静态化、URL重写和静态化,以达到最佳效果。安装文件`isapi_rwl_0055.msi`可能是IIS Rewrite模块的一个版本或补丁,用于...
这个"UrlReWrite(Url重写或伪静态)完美示例源码"包含了实现这些功能的具体代码,对于开发者来说是一份宝贵的参考资料。通过阅读和分析源码,我们可以: - 学习如何配置和编写URL重写规则。 - 了解内部实现逻辑,包括...
例如,AspxToHtmlDemo可能是一个演示如何实现这些功能的示例项目,它可能包含了实现静态化和伪静态化的代码示例、配置文件以及相应的解释文档。 总之,掌握和应用这些技术,能够帮助开发者优化网站性能,提高用户...
在Java中实现URL重写(URL rewrite)是为了实现伪静态,这是一种优化网站SEO(搜索引擎优化)的技术。通过将动态URL转换为看似静态的URL格式,可以提高网站的可读性和搜索引擎友好性。以下是对给定代码的详细解释: ...
`urlrewrite`是一个基于Apache Tomcat的URL重写过滤器,它可以方便地实现URL的重写和伪装,包括实现伪静态功能。要使用`urlrewrite`,你需要先将其添加到你的项目依赖中,通常是在`pom.xml`文件中引入对应的Maven...
网人WRMPS6.2.0 Rewrite组件是一款专门用于实现伪静态功能的软件,它主要应用于服务器环境,以提供更友好的URL结构,提高网站的SEO优化效果。伪静态技术是将动态网页的URL转换为静态化或者看似静态化的形式,使得...