你的分享就是我们的动力 ---﹥

非常强大的URL规则重写地址方式

时间:2013-05-16 16:49来源:www.chengxuyuans.com 点击:

代码简介

这个URL规则方式重写URL地址是才用正则表达式的方式来做的!
只要通过设置规则参数和url规则,如:
{channel}/{type}/{date}/{id}.html
这样我们就可以通过我开发这个工具来进行重写地址了,

如果你以前用的是
p=index&type=template&date=20130405&id=1
通过编码可以得到:
/index/template/20130405/1.html

当然 也可以通过解码得到真正的URL地址

使用此工具类,Java的网站,URL地址的SEO优化变得so Easy
写一个Filter,是不是就可以了,好简单!

楼主:不愿意直接给你源码!!!!!!!
希望大家自己反编译研究!!!!!!!
就喜欢zhuang

代码片段

package com.wuwei.test;

import org.marker.web.url.Parameter;
import org.marker.web.url.URLRewrite;
/**
 * 测试URL规则
 * @author marker
 * */
public class Test {

	public static void main(String[] args) {
		URLRewrite re = new URLRewrite();
		
		
		//设置规则参数
		re.ruleParameter.put("{channel}", new Parameter("p","{channel}","([a-zA-Z_0-9]+)"));
		re.ruleParameter.put("{type}", new Parameter("type","{type}","([a-zA-Z_0-9]+)"));
		re.ruleParameter.put("{id}", new Parameter("id","{id}","([0-9]+)"));
		
		
		//初始化两个规则
		re.putRule("列表","{channel}.html");
		re.putRule("内容","{channel}/{type}/cms-thread-{id}.html");
		
		
		
		//文章类型的地址
		String url ="p=index&type=article&id=1";
		System.out.println("访问的地址:"+url);
		System.out.println("-----------------------");
		String gourl = re.encoder(url);
		System.out.println("URL编码:"+gourl);
		gourl = re.decoder(gourl);
		System.out.println("URL解码:"+gourl);
		
		System.out.println("==========================");
 
		//栏目类型的地址
		url ="p=about";
		System.out.println("访问的地址:"+url);
		System.out.println("-----------------------");
		gourl = re.encoder(url);
		System.out.println("URL编码:"+gourl);
		gourl = re.decoder(gourl);
		System.out.println("URL解码:"+gourl);
		
	}
}

转载注明地址http://www.chengxuyuans.com/code/java/60584.html