這個(gè)URL規(guī)則方式重寫(xiě)URL地址是才用正則表達(dá)式的方式來(lái)做的!只要通過(guò)設(shè)置規(guī)則參數(shù)和url規(guī)則,如:
{channel}/{type}/{date}/{id}.html
這樣我們就可以通過(guò)我開(kāi)發(fā)這個(gè)工具來(lái)進(jìn)行重寫(xiě)地址了,
如果你以前用的是
p=index&type=template&date=20130405&id=1
通過(guò)編碼可以得到:
/index/template/20130405/1.html
當(dāng)然 也可以通過(guò)解碼得到真正的URL地址,使用此工具類,Java的網(wǎng)站,URL地址的SEO優(yōu)化變得so Easy
寫(xiě)一個(gè)Filter,是不是就可以了,好簡(jiǎn)單! 實(shí)現(xiàn)的代碼如下:
01
package com.wuwei.test;
02
03
import org.marker.web.url.Parameter;
04
import org.marker.web.url.URLRewrite;
05
/**
06
* 測(cè)試URL規(guī)則
07
* @author marker
08
* */
09
public class Test {
10
11
public static void main(String[] args) {
12
URLRewrite re = new URLRewrite();
//設(shè)置規(guī)則參數(shù)
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
//初始化兩個(gè)規(guī)則
22
re.putRule("列表","{channel}.html");
23
re.putRule("內(nèi)容","{channel}/{type}/cms-thread-{id}.html");
24
25
26
27
//文章類型的地址
28
String url ="p=index&type=article&id=1";
29
System.out.println("訪問(wèn)的地址:"+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("訪問(wèn)的地址:"+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
}
更多信息請(qǐng)查看IT技術(shù)專欄
2025國(guó)考·省考課程試聽(tīng)報(bào)名