- 浏览: 1176377 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (411)
- ASP (6)
- ASP.NET (2)
- CSS (4)
- HTML (11)
- Javascript (34)
- Java (100)
- PHP (1)
- XML (2)
- Flash/Flex/AS (1)
- 编程理论 (6)
- 操作系统 (23)
- 架构与搭建 (13)
- 软件应用 (39)
- 移动开发及应用 (4)
- UI设计 (2)
- 数据库 (23)
- 围棋 (1)
- 闲语茶楼 (6)
- 金融 (1)
- 其他 (3)
- Linux/Unix (38)
- 项目管理 (3)
- cmd (2)
- ssh (3)
- SVN (1)
- 移动开发 (1)
- HTML5 (1)
- jquery (1)
- redis (1)
- nginx (2)
- webservice (1)
- vmware (1)
- ssl (1)
- eclipse (1)
- sqlite (1)
- spring (2)
最新评论
-
cnhome:
Java 8 下:// 编码String asB64 = Ba ...
不要使用sun.misc.BASE64Encoder -
请叫我翠西狗:
那如果我要用this.getServletContext() ...
JSP/Servlet使用代理或路由器映射时获取服务器地址为内网地址 -
nomblouder:
按照别的博客,别名一直是p4merge,导致一直报错comma ...
win与linux下git配置p4merge为合并比较工具的方法 -
linuxzhang:
请问我按你的方法修改了sts-3.7.3.RELEASE中的o ...
Eclipse中setter/getter方法自动添加属性注释 -
yzh__:
求解答。。。
Struts2定义默认拦截器时需要注意
一般通过url访问网站,url的格式都是
http://xxx.xxx.com?param=p1¶m=p2
这是最传统的访问方式,但是,对于一些具有特殊要求的系统,其所有的页面的地址并不一定是这样子的格式,或者是类似于struts风格的.do的方式,比如
其中的aa并不是action映射名称,而是其中一个默认key的参数,比如在一些个人主页类型的系统中,如
http://xxx.xxx.com/quzishen --> 其实这样做背后我们真正希望的url是
http://xxxx.xxx.com/blog/personal.do?name=quzishen
这样访问系统,我们希望也能够被系统自动解析并正处处理,该如何做呢?
其中的一种方式,就是进行url的重定向,这里我们介绍使用urlrewirete来实现。
---------------------------------------------------------------------------------------
1、首先,下载urlrewrite-2.6.0.jar放到WEB-INF/lib下。下载地址 http://download.csdn.net/source/2568398
2、你需要在web.xml中进行配置urlrewrite的filter,这样请求才能被urlrewrite过滤并处理,配置方式跟普通filter无区别
<filter> <filter-name>UrlRewriteFilter</filter-name> <filter-class>org.tuckey.web.filters.urlrewrite.UrlRewriteFilter</filter-class> <init-param> <param-name>confReloadCheckInterval</param-name> <param-value>500000</param-value> </init-param> <init-param> <param-name>logLevel</param-name> <param-value>sysout:ERROR</param-value> </init-param> </filter> <filter-mapping> <filter-name>UrlRewriteFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
其中,filter的参数如下(摘自文档),如果你只是想快速应用到系统中,可以暂时滤过下面内容。有空再好好研究即可。
1. confReloadCheckInterval: 配置文件重加载间隔. 0表示随时加载, -1表示不重加载, 默认-1
2. confPath: 配置文件路径. 是相对context的路径, 默认/WEB-INF/urlrewrite.xml
3. logLevel: 设置日志级别, 可以是: TRACE, DEBUG, INFO(默认), WARN, ERROR, FATAL, log4j, commons, slf4j, sysout:{level}(比如 sysout:DEBUG), 如果你使用普通的日志级别有一定困难, 可以调为: sysout:DEBUG(表明是使用控制台输出的调试级别)
4. statusPath: 设置改变状态路径, 不能和已经安装的应用冲突(注意, 默认是/rewrite-status), 注意, 必须以/开始
5. statusEnabled: 设置status是否开启, 期望得到的值是true, false, 默认true
6. statusEnabledOnHosts: 设置允许status的主机, *可以被用作通配符, 默认是”localhost, local, 127.0.0.1”
7. modRewriteConf: 设置rewrite模式, 默认是false, 使用mod-rewrite(可以参照apache服务器的mod_rewrite相关资料)方式的配置文件, 如果设置为true并且confPath没有设置则配置文件路径将会被默认为/WEB-INF/.htaccess
8. modRewriteConfText: 从这些参数的值加从载mod_rewrite样式的配置, 设置这些参数则其他所有的参数都会被忽略. 比如:
<init-param> <param-name>modRewriteConfText</param-name> <param-value> RewriteRule ^/~([^/]+)/?(.*) /u/$1/$2 [R] RewriteRule ^/([uge])/([^/]+)$ /$1/$2/ [R] </param-value> </init-param>
9. allowConfSwapViaHttp: 设置是否允许通过HTTP方式交互设置参数, 比如, 通过调用/rewrite-status/?conf=WEB-INF/urlrewrite2.xml
3、在WEB-INF下新建urlrewrite的配置文件 urlrewrite.xml (默认的名称,如果更改,需要跟上述配置中classpath进行匹配)
<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE urlrewrite PUBLIC "-//tuckey.org//DTD UrlRewrite 2.6//EN" "http://tuckey.org/res/dtds/urlrewrite2.6.dtd"> <urlrewrite> <rule> <from>/blog/(.*)</from> <to>/blog/personal.do?name=$1</to> </rule> </urlrewrite>
具体项目的配置,可以参见文章 http://blog.csdn.net/lgg201/archive/2010/02/27/5329364.aspx
至此配置已经全部结束,但是你可能想测试一下,自己的配置是否有问题,能否像测试java代码一样来通过单元测试完成这个过程?当然可以!
4、测试配置
编写单元测试类
public class UrlRewriteConfigurationTest extends TestCase{ private static final Logger log = Logger.getLogger(UrlRewriteConfigurationTest.class); private static final String REWRITE_CONF = "urlrewrite.xml"; private Conf conf; private UrlRewriter rewriter ; protected void setUp() { InputStream istream = getClass().getResourceAsStream("/"+REWRITE_CONF); conf = new Conf(istream, REWRITE_CONF); rewriter = new UrlRewriter(conf); } private String rewireteUrl(String fromUrl)throws Exception{ MockRequest request = new MockRequest(fromUrl); MockResponse response = new MockResponse(); RewrittenUrl rewrittenUrl = rewriter.processRequest(request, response); if (rewrittenUrl==null) return "failed"; String rewrittenUrlString = rewrittenUrl.getTarget(); return rewrittenUrlString; } public void testRewrite() throws Exception { String fromUrl="http://xxx.xxx.com/quzishen"; rewireteUrl(fromUrl); } }
通过单元测试,可以快速知道自己配置是否会有问题。至此全部完成。
发表评论
-
Maven使用mvn命令时跳过test的参数
2015-05-28 11:24 1762方法有两种: 方法1: mvn install -Dsk ... -
Spring中Propagation类的事务属性区别
2014-12-08 14:50 1951PROPAGATION_REQUIRED:支持当前事务,如果 ... -
Spring AOP中pointcut expression表达式解析
2014-08-27 15:39 3429Pointcut 是指那些方法需要被执行"AOP& ... -
用正则表达式替换手机号为星号*的写法
2014-08-11 15:43 10064现在网络越来越关注一些隐私,比如手机号隐藏当中的若干位数字 ... -
java使用相对路径连接sqlite
2014-08-01 15:48 6931在sqlite的连接源码中,可以看到 :resource: ... -
Eclipse中setter/getter方法自动添加属性注释
2014-08-01 12:11 16607这篇文章以前在公司内网发的,到现在也一直有用,发上来分享给有 ... -
memcached-session-manager配置
2014-07-09 18:01 966声明:本篇文章是根据memcach ... -
使用java原生url连接传输protobuf
2014-06-26 18:16 1470protobuf已经出来好多年了,原谅我最近才了解到goo ... -
Tomcat内存、连接数等性能参数设置
2014-02-20 14:37 17171、修改启动时内存参数、并指定JVM时区 (在windows ... -
使用JSP列出所有运行中的线程
2013-07-29 10:06 1053<html> <head> &l ... -
JVM系列五:JVM监测&工具[整理中]
2013-05-10 10:34 1135前几篇篇文章介绍了介绍了JVM的参数设置并给 ... -
JVM系列四:生产环境参数实例及分析【生产环境实例增加中】
2013-05-10 10:32 1265java application项目(非web项目) 改进 ... -
JVM系列三:JVM参数设置、分析
2013-05-10 10:30 1029不管是YGC还是Full GC,GC过程中都 ... -
JVM系列二:GC策略&内存申请、对象衰老
2013-05-10 10:19 1039JVM里的GC(Garbage Collec ... -
JVM系列一:JVM内存组成及分配
2013-05-10 10:14 1099java内存组成介绍:堆(Heap)和非堆(Non-h ... -
jenkins配置权限不对导致无法登陆的重置方法
2013-04-20 20:43 25421找到.jenkins/config.xml文件: 替换为: ... -
Spring3中替换默认拦截器的方法BeanFactoryPostProcessor
2012-08-14 16:51 4064由于Spring默认的静态资源处理器不能满足需求,需要做一些自 ... -
Hessian 权限认证
2012-08-07 11:23 1537Hessian 权限认证 Hessian的一些基本简介已经在上 ... -
利用java 6.0的脚本引擎执行字符串表达式运算
2012-08-06 23:09 1463例子都在这里了:http://www.java2s.com/C ... -
在spring、tomcat中使用多数据源并支持分布式事务管理
2012-08-06 22:10 2634原文:http://zxlaiye.iteye.c ...
相关推荐
《URLRewrite:掌握网页地址重写的关键技术》 URLRewrite是一款强大的URL管理工具,尤其在Java Web应用中广泛使用,它可以帮助开发者实现URL的重写和转换,以达到优化URL、隐藏真实路径、提高SEO效果等目的。在本篇...
当用户访问一个特定的URL时,URLRewrite会根据预设的规则对URL进行匹配,并根据匹配结果对URL进行相应的操作,如替换、添加、删除部分字符串,或者直接进行内部重定向,而浏览器的地址栏显示的仍然是原始的URL。...
本篇文章将围绕“UrlRewrite.rar”这一主题,深入探讨URL重写的基本原理以及如何使用UrlRewrite工具进行实践操作。 一、URL重写概述 URL重写,顾名思义,就是将实际的、可能复杂难懂的URL转换为用户友好的、易于...
在本研究总结中,我们将深入探讨URLRewrite的核心概念、使用场景以及配置方法,同时提供相关的学习资源,包括文档、代码示例、jar包、源代码和演示项目。 1. URL重写基础: URL重写技术的核心思想是通过HTTP请求的...
`urlrewrite`框架是Java Web开发中强大的URL管理工具,它提供了灵活的URL重写和重定向能力,有助于提升网站的用户体验和SEO效果。通过Eclipse工程的示例,开发者可以直观地学习和实践URL重写技术,进一步提升项目的...
UrlRewrite是一个强大的URL管理工具,常用于ASP.NET应用程序中,它允许开发者通过自定义规则对网站的URL进行重写和转换。这个技术的核心在于提供更友好的、搜索引擎优化(SEO)的URL,同时也可以帮助解决网站迁移或...
在`URLRewriter`工具或框架的帮助下,开发者可以实现这个功能,例如Apache的mod_rewrite模块或.NET中的URLRewrite模块。URL重定向的主要用途包括: 1. **SEO优化**:通过重定向,可以将旧的、不再使用的URL映射到新...
1. **安装**:下载并安装IIS URL重写2的扩展,通常是`IIS Urlrewrite2.exe`文件,通过IIS Manager进行安装。 2. **添加规则**:在IIS Manager中选择目标站点,然后在“管理服务”下找到“URL重写”,点击“添加规则...
在使用`URLrewrite`时,我们需要创建一个名为`urlrewrite.xml`的配置文件,其中定义了各种重写规则。例如,以下规则将所有以“/article”开头的请求重定向至“/content/article”: ```xml ^/article/(.*)$ <to>...
虽然IIS URL Rewrite的配置通常是在IIS管理器中进行,但如果你在Apache环境中工作,会使用httpd.conf配置文件。在这个文件中,你可以使用类似Apache的RewriteEngine、RewriteRule和RewriteCond指令来实现URL重写。...
"iis urlrewrite"标签进一步明确了我们讨论的是与IIS服务器相关的URL重写功能。IIS是微软提供的一个用于Windows操作系统的Web服务器,而URL Rewrite是IIS的一个扩展模块,用于处理和转换HTTP请求的URL。 在压缩包的...
1. 引入`System.Web.Rewrite`命名空间,这是使用`URLRewrite.dll`所需的库。 2. 创建`RewriteEngine`实例,它是处理重写规则的核心对象。 3. 定义重写规则,比如使用`RewriteRule`类创建规则,指定原始URL模式、目标...
URLRewrite是基于Apache开源项目Tuckey开发的一款强大的URL管理过滤器,它可以方便地进行URL重写和URL映射,使得复杂的服务器端请求路径可以被转换为简洁、易读的URL。在Java Web应用程序中,URLRewrite常用于隐藏...
在本教程中,我们将深入探讨URL重写的核心概念、使用场景以及如何借助`urlrewrite`工具来实现这一功能。 首先,URL重写的核心原理是利用服务器的内部重定向机制,将用户请求的可见URL转换为服务器内部处理的实际URL...
UrlRewrite.dll是微软IIS(Internet Information Services)服务器中的一个关键组件,主要负责URL重写功能。在网站开发和管理中,它扮演着至关重要的角色,尤其在优化搜索引擎优化(SEO)、实现友好的URL结构以及...
UrlRewrite是一个强大的URL重写工具,常用于Java Web应用中,尤其是与Struts2框架结合使用时,能够帮助开发者优化URL结构,提高网站的SEO友好性和用户体验。在这个"UrlRewrite例子"中,我们将深入探讨UrlRewrite的...
在实际开发中,`URLRewrite`常用于Spring MVC、Struts等框架的项目,与这些框架配合使用,可以更好地管理应用程序的URL结构。 7. **注意事项**: - 配置文件的放置位置:通常放在WEB-INF目录下,确保不在公开访问...
除了重定向,URL Rewrite还能实现URL的隐式重写,即在不改变用户浏览器地址栏显示的情况下,将请求的URL转换为另一形式。这在隐藏真实路径、美化URL或统一URL结构时很有用。比如,将`...
要使用URLRewrite 3.2.0,首先需要将其JAR包添加到Web应用程序的`WEB-INF/lib`目录下。接着,在Web应用的`WEB-INF`目录下创建`urlrewrite.xml`配置文件,编写重写规则。 ### 4. 示例配置 ```xml <urlrewrite> ^...
在本文中,我们将深入探讨如何使用UrlRewrite来实现伪静态,并了解其配置过程。 1. **什么是URL重写**: URL重写是指将动态URL转换为静态或者看似静态的URL,以提升网站的可读性和美观性。动态URL通常包含多个参数...