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.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值