亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? urlrewritertest.java

?? jsp中 urlRewrite的源代碼 很有用的喔
?? JAVA
字號:
/**
 * Copyright (c) 2005, Paul Tuckey
 * All rights reserved.
 *
 * Each copy or derived work must preserve the copyright notice and this
 * notice unmodified.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 *
 */
package org.tuckey.web.filters.urlrewrite;

import junit.framework.TestCase;
import org.tuckey.web.MockRequest;
import org.tuckey.web.MockResponse;
import org.tuckey.web.filters.urlrewrite.utils.Log;

import javax.servlet.ServletException;
import java.io.IOException;

/**
 * @author Paul Tuckey
 * @version $Revision: 1.19 $ $Date: 2005/12/07 10:22:16 $
 */
public class UrlRewriterTest extends TestCase {

    private MockResponse response = new MockResponse();

    public void setUp() {
        Log.setLevel("DEBUG");
        response = new MockResponse();
    }

    public void test1() throws IOException, ServletException {
        Conf conf = new Conf();
        Rule rule1 = new Rule();
        rule1.setFrom("/aaa");
        rule1.setTo("/bbb");
        conf.addRule(rule1);
        conf.initialise();

        UrlRewriter urlRewriter = new UrlRewriter(conf);

        MockRequest request = new MockRequest("/aaa");
        RewrittenUrl rewrittenRequest = urlRewriter.processRequest(request, response);

        assertTrue(rewrittenRequest.isForward());
        assertEquals("/bbb", rewrittenRequest.getTarget());

        // test null url
        request = new MockRequest();
        rewrittenRequest = urlRewriter.processRequest(request, response);
        assertNull(rewrittenRequest);

        // test query string
        request = new MockRequest("/aaa");
        request.setQueryString("bb=cc");
        rewrittenRequest = urlRewriter.processRequest(request, response);
        assertEquals("/bbb?bb=cc", rewrittenRequest.getTarget());
    }

    public void testAbsoluteRedir() throws IOException, ServletException {
        Conf conf = new Conf();
        Rule rule1 = new Rule();
        rule1.setFrom("^(.*)$");
        rule1.setToType("permanent-redirect");
        rule1.setTo("http://sss.sss.sss");
        conf.addRule(rule1);
        conf.initialise();

        UrlRewriter urlRewriter = new UrlRewriter(conf);

        MockRequest request = new MockRequest("/aaa");
        RewrittenUrl rewrittenRequest = urlRewriter.processRequest(request, response);

        rewrittenRequest.doRewrite(request, response, null);
        assertEquals("http://sss.sss.sss", response.getHeader("Location"));

    }


    public void testNoRules() throws IOException, ServletException {
        Conf conf = new Conf();
        conf.initialise();
        UrlRewriter urlRewriter = new UrlRewriter(conf);
        MockRequest request = new MockRequest("/aaa");
        RewrittenUrl rewrittenRequest = urlRewriter.processRequest(request, response);
        assertNull(rewrittenRequest);
    }


    public void testSetSimple() throws IOException, ServletException {
        Conf conf = new Conf();
        Rule rule1 = new Rule();
        rule1.setFrom("^/aaa([0-9]+)(.*)$");
        SetAttribute setAttribute1 = new SetAttribute();
        setAttribute1.setName("blah");
        setAttribute1.setValue("someval");
        rule1.addSetAttribute(setAttribute1);

        SetAttribute setAttribute2 = new SetAttribute();
        setAttribute2.setType("session");
        setAttribute2.setName("sblah");
        setAttribute2.setValue("$1");
        rule1.addSetAttribute(setAttribute2);

        SetAttribute setAttribute3 = new SetAttribute();
        setAttribute3.setType("response-header");
        setAttribute3.setName("Cache-control");
        setAttribute3.setValue("none");
        rule1.addSetAttribute(setAttribute3);

        SetAttribute setAttribute4 = new SetAttribute();
        setAttribute4.setName("action");
        setAttribute4.setValue("delete");
        rule1.addSetAttribute(setAttribute4);

        conf.addRule(rule1);
        conf.initialise();

        UrlRewriter urlRewriter = new UrlRewriter(conf);

        MockRequest request = new MockRequest("/aaa4?asdadasd");
        urlRewriter.processRequest(request, response);

        assertEquals("someval", request.getAttribute("blah"));

        assertEquals("4", request.getSession().getAttribute("sblah"));
        assertEquals("delete", request.getAttribute("action"));
        assertEquals("none", response.getHeader("Cache-control"));

    }

    public void testSetSimpleWithRule() throws IOException, ServletException {
        Conf conf = new Conf();
        Rule rule0 = new Rule();
        rule0.setFrom("/bbb([0-9]+)");
        rule0.setTo("/qqq");
        rule0.setToLast("false");

        Rule rule1 = new Rule();
        rule1.setFrom("^/aaa([0-9]+)$");
        SetAttribute setAttribute1 = new SetAttribute();
        setAttribute1.setType("status");
        setAttribute1.setValue("404");
        rule1.addSetAttribute(setAttribute1);

        conf.addRule(rule0);
        conf.addRule(rule1);
        conf.initialise();

        UrlRewriter urlRewriter = new UrlRewriter(conf);

        MockRequest request = new MockRequest("/bbb2?asdadasd");
        RewrittenUrl rewrittenRequest = urlRewriter.processRequest(request, response);

        assertEquals("/qqq?asdadasd", rewrittenRequest.getTarget());
        assertEquals(200, response.getStatus());

    }

    public void testBadConf() throws IOException, ServletException {
        Conf conf = new Conf();
        Rule rule1 = new Rule();
        conf.addRule(rule1);
        conf.initialise();
        UrlRewriter urlRewriter = new UrlRewriter(conf);
        MockRequest request = new MockRequest("/aaa");
        RewrittenUrl rewrittenRequest = urlRewriter.processRequest(request, response);
        assertNull(rewrittenRequest);
    }

    /**
     * Goal is to be able to process 2000 reqs a second for a simple rule set of 10000.
     */
    public void testLoadsOfRules() throws IOException, ServletException {
        // turn off logging
        Log.setLevel("ERROR");

        float testAmount = 10000; // number of times to run test
        float timePerRule = 3;  // ms per rule

        // test with 1000 rules, more than anybody would normally have
        Conf conf = new Conf();
        for (int i = 0; i < 1000; i++) {
            Rule rule = new Rule();
            rule.setFrom("^/([a-z]+)/([0-9]+)/" + i + "/$");
            rule.setTo("/blah/a/$2/");
            conf.addRule(rule);
        }
        conf.initialise();
        UrlRewriter urlRewriter = new UrlRewriter(conf);

        MockRequest request = new MockRequest("/dir/999/45/");
        // warm up
        urlRewriter.processRequest(request, response);

        long timeStart = System.currentTimeMillis();
        for (float i = 0; i < testAmount; i++) {
            urlRewriter.processRequest(request, response);
            if (i % 500 == 0 && i > 0) {
                System.out.println("avg so far " + ((System.currentTimeMillis() - timeStart) / i) + "ms per rule");
            }
        }
        long took = System.currentTimeMillis() - timeStart;
        System.out.println("took " + took + "ms " + (took / testAmount) + "ms  p er rule");
        assertTrue((took / testAmount) < timePerRule);
    }


    /**
     * Special test for rule application with no to element.
     */
    public void testNoToElement() throws IOException, ServletException {
        Rule rule1 = new Rule();
        rule1.setFrom(".*");
        Condition condition1 = new Condition();
        condition1.setType("header");
        condition1.setName("accept");
        condition1.setValue(".*image/gif.*");
        SetAttribute setAttribute1 = new SetAttribute();
        setAttribute1.setName("imageType");
        setAttribute1.setValue("gif");
        rule1.addSetAttribute(setAttribute1);
        rule1.addCondition(condition1);
        rule1.initialise(null);

        Rule rule2 = new Rule();
        rule2.setFrom(".*");
        Condition condition2 = new Condition();
        condition2.setType("header");
        condition2.setName("accept");
        condition2.setValue(".*image/jpeg.*");
        SetAttribute setAttribute2 = new SetAttribute();
        setAttribute2.setName("imageType");
        setAttribute2.setValue("jpeg");
        rule2.addSetAttribute(setAttribute2);
        rule2.addCondition(condition2);
        rule2.initialise(null);

        Rule rule3 = new Rule();
        rule3.setFrom(".*");
        Condition condition3 = new Condition();
        condition3.setType("header");
        condition3.setName("accept");
        condition3.setValue(".*image/png.*");
        SetAttribute setAttribute3 = new SetAttribute();
        setAttribute3.setName("imageType");
        setAttribute3.setValue("png");
        rule3.addSetAttribute(setAttribute3);
        rule3.addCondition(condition3);
        rule3.initialise(null);

        Rule rule4 = new Rule();
        rule4.setFrom(".*");
        Condition condition4 = new Condition();
        condition4.setType("header");
        condition4.setName("user-agent");
        condition4.setValue("SonyEricssonT68.*");
        SetAttribute setAttribute4 = new SetAttribute();
        setAttribute4.setName("imageType");
        setAttribute4.setValue("png");
        rule4.addSetAttribute(setAttribute4);
        rule4.addCondition(condition4);
        rule4.initialise(null);

        Conf conf = new Conf();
        conf.addRule(rule1);
        conf.addRule(rule2);
        conf.addRule(rule3);
        conf.addRule(rule4);

        conf.initialise();
        UrlRewriter urlRewriter = new UrlRewriter(conf);

        MockRequest request = new MockRequest("/images/my.png");
        request.setHeader("accept", "image/png,*/*;q=0.5");

        RewrittenUrl rewrittenUrl1 = urlRewriter.processRequest(request, response);

        assertEquals("png", (String) request.getAttribute("imageType"));
        assertEquals(null, rewrittenUrl1);

    }


}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美制服丝袜第一页| 国产成人在线网站| 日本道色综合久久| 亚洲一区在线免费观看| 色综合咪咪久久| 亚洲最大的成人av| 欧美日韩一二三区| 免费精品视频在线| 精品剧情v国产在线观看在线| 麻豆极品一区二区三区| 欧美一二三四在线| 韩国在线一区二区| 国产精品久久久久久户外露出| 不卡在线观看av| 伊人色综合久久天天人手人婷| 欧美手机在线视频| 久草在线在线精品观看| 国产亚洲视频系列| 91免费观看在线| 三级精品在线观看| 国产亚洲综合在线| 在线观看视频一区二区| 麻豆精品在线观看| 国产精品国产三级国产a| 在线看日本不卡| 久久99国产精品久久99果冻传媒| 久久久99精品免费观看不卡| 色综合久久99| 日韩精品电影在线| 国产精品美女一区二区三区| 在线亚洲高清视频| 韩国视频一区二区| 一区二区三区蜜桃| 久久精品夜色噜噜亚洲aⅴ| 色综合久久久久久久| 蜜臀av亚洲一区中文字幕| 综合网在线视频| 日韩欧美在线一区二区三区| 99视频一区二区| 麻豆精品在线看| 亚洲线精品一区二区三区| 久久无码av三级| 欧美久久一区二区| 成人av在线一区二区三区| 秋霞电影网一区二区| 亚洲欧美偷拍卡通变态| 精品对白一区国产伦| 欧美在线高清视频| thepron国产精品| 久久激情综合网| 亚洲国产日韩综合久久精品| 国产嫩草影院久久久久| 日韩视频在线永久播放| 欧美性受xxxx| 91在线丨porny丨国产| 狠狠色综合日日| 日本伊人精品一区二区三区观看方式 | 久久中文娱乐网| 911精品国产一区二区在线| 色综合天天综合色综合av | 国产精品三级在线观看| 日韩欧美精品在线视频| 欧美男女性生活在线直播观看| 北条麻妃国产九九精品视频| 国产精品一区二区不卡| 精品一区二区日韩| 久久精工是国产品牌吗| 免费精品视频最新在线| 日本在线播放一区二区三区| 五月天激情综合| 亚洲成人免费影院| 亚洲高清在线精品| 亚洲综合丝袜美腿| 一区二区三区国产精品| 亚洲免费观看高清完整版在线观看| 久久久精品tv| 国产人妖乱国产精品人妖| 久久色中文字幕| 久久亚洲免费视频| 久久人人97超碰com| 久久综合av免费| 国产片一区二区| 中文字幕免费不卡在线| 国产精品拍天天在线| 国产精品国产三级国产有无不卡| 久久久青草青青国产亚洲免观| 欧美一区二区福利视频| 91精品在线免费观看| 欧美一区二区大片| 久久久无码精品亚洲日韩按摩| 中文字幕欧美三区| 中文字幕亚洲电影| 亚洲国产一区二区a毛片| 亚洲第一av色| 老司机免费视频一区二区| 国产福利不卡视频| 不卡的av中国片| 91在线高清观看| 欧美精选午夜久久久乱码6080| 91精品国产欧美一区二区成人| 精品久久久久久久久久久久久久久| 欧美videos大乳护士334| 久久久噜噜噜久久人人看 | 亚洲欧美日韩一区二区三区在线观看 | 美女视频一区二区| 国产老妇另类xxxxx| jizzjizzjizz欧美| 欧美日韩在线一区二区| 精品久久人人做人人爱| 国产精品电影一区二区三区| 亚洲国产欧美日韩另类综合 | 国产欧美一区二区三区鸳鸯浴 | 亚洲精品国产高清久久伦理二区| 婷婷开心激情综合| 国产河南妇女毛片精品久久久| av在线免费不卡| 4438x成人网最大色成网站| 久久亚洲一级片| 一区二区久久久| 韩国av一区二区三区四区 | 91精品国产色综合久久不卡电影| 久久久蜜桃精品| 视频一区欧美精品| 国产91丝袜在线播放0| 欧美日韩午夜精品| 国产亚洲精品精华液| 日韩高清不卡一区| 99精品视频在线观看免费| 91精品蜜臀在线一区尤物| 国产精品久久午夜夜伦鲁鲁| 日本午夜精品视频在线观看| 成人精品高清在线| 日韩久久免费av| 性做久久久久久久久| 国产xxx精品视频大全| 欧美精品乱码久久久久久按摩| 国产精品美日韩| 国产美女精品人人做人人爽| 欧美视频完全免费看| 成人欧美一区二区三区在线播放| 免费人成在线不卡| 在线看日韩精品电影| 国产精品欧美一区喷水| 精品亚洲国产成人av制服丝袜| 欧美日韩中文精品| 亚洲日本成人在线观看| 国产在线看一区| 91精品国产欧美一区二区18| 亚洲综合在线免费观看| 99久久精品国产一区二区三区| 精品成人a区在线观看| 毛片av一区二区| 欧美精品1区2区3区| 亚洲精品一二三区| www.66久久| 亚洲欧洲av在线| 成人激情动漫在线观看| 国产日韩欧美不卡在线| 国产一区二区电影| 久久久精品免费观看| 国产在线麻豆精品观看| 久久综合色8888| 久久国产乱子精品免费女| 欧美不卡一区二区三区| 免费成人深夜小野草| 6080午夜不卡| 蜜臀av一级做a爰片久久| 欧美一级高清片在线观看| 日本vs亚洲vs韩国一区三区二区 | 日韩不卡免费视频| 欧美精品高清视频| 日韩电影免费一区| 欧美一二三在线| 国产一区二区三区高清播放| 欧美精品一区二区精品网| 国内一区二区在线| 国产偷v国产偷v亚洲高清 | 一本一本久久a久久精品综合麻豆| 欧美激情中文字幕一区二区| 岛国一区二区在线观看| 中文欧美字幕免费| 色偷偷久久一区二区三区| 亚洲一区在线免费观看| 欧美精品123区| 国模大尺度一区二区三区| 国产欧美日韩另类视频免费观看 | 亚洲天堂a在线| 91国偷自产一区二区三区观看| 亚洲二区在线视频| 日韩美女天天操| 9久草视频在线视频精品| 美脚の诱脚舐め脚责91| 久久精品人人爽人人爽| 91视频观看视频| 无码av中文一区二区三区桃花岛| 日韩西西人体444www| 久草精品在线观看| 亚洲日本va午夜在线电影| 欧美日韩成人综合天天影院 | 国产一区二区三区四区在线观看|