JAVA实现强大的URL规则重写地址方式
2015-04-16来源:

这个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技术专栏

推荐信息
Baidu
map