java模板是什么格式_java – 用于下载的路由模板格式

有几种方法可以实现这一目标:

1)基本方法:PathHandler

Handlers.path()

.addExactPath("/path1", handler1)

.addPrefixPath("/path2", handler2);

handler1将仅匹配/ path1(或/ path1 /).

handler2将匹配/ path2,/ path2 /以及以/ path2 /开头的所有其他内容.

2)路由方法:RoutingHandler

如果使用RoutingHandler,则可以选择从路径中轻松提取变量.例如,这对于构建REST API很方便(请注意在RoutingHandler上使用Conven get方法).

Handlers.routing().get("/{test}/*", exchange -> {

PathTemplateMatch pathMatch = exchange.getAttachment(PathTemplateMatch.ATTACHMENT_KEY);

String itemId1 = pathMatch.getParameters().get("test"); // or exchange.getQueryParameters().get("test")

String itemId2 = pathMatch.getParameters().get("*"); // or exchange.getQueryParameters().get("*")

}))

*参数可以匹配任何内容(例如路径,例如a / b / c).

为了使用*参数,您需要在路由模板中定义之前定义的实际命名参数(在我的示例中为test).

请注意,路径模板中定义的参数将与查询参数(exchange.getQueryParameters())一起使用.这是默认行为.如果你不想要它,可以像这样创建路由处理程序:Handlers.routing(false).get(…)然后从交换机的附件中检索参数.

对于路由处理程序不匹配的任何路由,您可以使用RoutingHandler中提供的fallbackHandler.

Handlers.routing()

.get("/", handler1)

.get("/index.html", handler1)

.setFallbackHandler(handler2);

默认情况下,fallbackHandler只返回一个带有404状态代码的空响应主体. handler2将匹配任何其他请求,而不仅仅是GET请求.

综合实例

您当然可以将PathHandler和RoutingHandler结合起来以满足您的需求.

这是一个更现实的设置的小例子:

Undertow.builder().addHttpListener(8080, "0.0.0.0")

.setHandler(Handlers.path()

// REST API path

.addPrefixPath("/api", Handlers.routing()

.get("/customers", exchange -> {...})

.delete("/customers/{customerId}", exchange -> {...})

.setFallbackHandler(exchange -> {...}))

// Redirect root path to /static to serve the index.html by default

.addExactPath("/", Handlers.redirect("/static"))

// Serve all static files from a folder

.addPrefixPath("/static", new ResourceHandler(

new PathResourceManager(Paths.get("/path/to/www/"), 100))

.setWelcomeFiles("index.html"))

).build().start();

此应用程序还提供文件系统中的静态文件.例如,这对于提供javascript应用程序或静态html文件很方便.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值