JAVA實現(xiàn)強大的URL規(guī)則重寫地址方式

字號:


    這個URL規(guī)則方式重寫URL地址是才用正則表達式的方式來做的!只要通過設(shè)置規(guī)則參數(shù)和url規(guī)則,如:
    {channel}/{type}/{date}/{id}.html
    這樣我們就可以通過我開發(fā)這個工具來進行重寫地址了,
    如果你以前用的是
    p=index&type=template&date=20130405&id=1
    通過編碼可以得到:
    /index/template/20130405/1.html
    當(dāng)然 也可以通過解碼得到真正的URL地址,使用此工具類,Java的網(wǎng)站,URL地址的SEO優(yōu)化變得so Easy
    寫一個Filter,是不是就可以了,好簡單! 實現(xiàn)的代碼如下:
    01
    package com.wuwei.test;
    02
    03
    import org.marker.web.url.Parameter;
    04
    import org.marker.web.url.URLRewrite;
    05
    /**
    06
    * 測試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
    //初始化兩個規(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("訪問的地址:"+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
    }