这个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,是不是就可以了,好简单! 实现的代码如下:
01
package com.wuwei.test;
02
03
import org.marker.web.url.Parameter;
04
import org.marker.web.url.URLRewrite;
05
/**
06
* 测试URL规则
07
* @author marker
08
* */
09
public class Test {
10
11
public static void main(String[] args) {
12
URLRewrite re = new URLRewrite();
//设置规则参数
16
re.ruleParameter.put("{channel}", new Parameter("p","{channel}","([a-zA-Z_0-9]+)"));
17
re.ruleParameter.put("{type}", new Parameter("type","{type}","([a-zA-Z_0-9]+)"));
18
re.ruleParameter.put("{id}", new Parameter("id","{id}","([0-9]+)"));
19
20
21
//初始化两个规则
22
re.putRule("列表","{channel}.html");
23
re.putRule("内容","{channel}/{type}/cms-thread-{id}.html");
24
25
26
27
//文章类型的地址
28
String url ="p=index&type=article&id=1";
29
System.out.println("访问的地址:"+url);
30
System.out.println("-----------------------");
31
String gourl = re.encoder(url);
32
System.out.println("URL编码:"+gourl);
33
gourl = re.decoder(gourl);
34
System.out.println("URL解码:"+gourl);
35
36
System.out.println("==========================");
37
38
//栏目类型的地址
39
url ="p=about";
40
System.out.println("访问的地址:"+url);
41
System.out.println("-----------------------");
42
gourl = re.encoder(url);
43
System.out.println("URL编码:"+gourl);
44
gourl = re.decoder(gourl);
45
System.out.println("URL解码:"+gourl);
46
47
}
48
}
更多信息请查看IT技术专栏