java UTD对点发送信息_Routd是Java的一个小而简单的URL路由库

Routd

Routd is a small and simple URL routing library for Java. It is currently not trie-based, and may not be as performant as trie-based implementations. However, it does contain a tree-based implementation, which should be sufficient for most cases.

Getting Started

Download the latest .jar. Or, add the following dependency to your pom.xml:

org.bigtesting

routd

1.0.7

Or, if you are using Gradle:

dependencies {

compile "org.bigtesting:routd:1.0.7"

}

Usage

There are two classes of interest in the Routd library: Route and Router.

First, you create Routes:

Route r1 = new Route("/");

Route r2 = new Route("/client/:name");

Route r3 = new Route("/customer/:id");

Route r4 = new Route("/user/*/account");

...and add them to a Router:

Router router = new TreeRouter();

router.add(r1);

router.add(r2);

router.add(r3);

router.add(r4);

Then you can retrieve the routes:

assertEquals(r1, router.route("/"));

assertEquals(r2, router.route("/client/Tim"));

assertEquals(r3, router.route("/customer/123"));

assertEquals(r4, router.route("/user/john/account"));

With the routes, you can get the parameter values from a path:

Route route = new Route("/customer/:id/named/:name/*");

String path = "/customer/1/named/John/Doe";

assertEquals("1", route.getNamedParameter("id", path));

assertEquals("John", route.getNamedParameter("name", path));

assertNull(route.getNamedParameter("blah", path));

assertEquals("Doe", route.splat(path)[0]);

...and you can also get the path parameter elements directly:

Route route = new Route("/customer/:id/named/:name/*");

List elements = route.getPathElements();

assertEquals(5, elements.size());

StaticPathElement firstStaticElement = (StaticPathElement)elements.get(0);

assertEquals("customer", firstStaticElement.name());

assertEquals(0, firstStaticElement.index());

NamedParameterElement firstNamedElement = (NamedParameterElement)elements.get(1);

assertEquals("id", firstNamedElement.name());

assertEquals(1, firstNamedElement.index());

assertEquals("[0-9]+", firstNamedElement.regex());

NamedParameterElement secondNamedElement = (NamedParameterElement)elements.get(3);

assertEquals("name", secondNamedElement.name());

assertEquals(3, secondNamedElement.index());

assertNull(secondNamedElement.regex());

SplatParameterElement splatElement = (SplatParameterElement)elements.get(4);

assertEquals(4, splatElement.index());

Notes

Routers currently expect URL paths to be undecoded. That is, paths should retain any URL encodings. The router will handle any URL decoding required.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值