gpt4 book ai didi

vert.x 使用多个处理程序

转载 作者:行者123 更新时间:2023-12-04 22:44:08 25 4
gpt4 key购买 nike

是否可以为路径添加 2 个处理程序?

我需要加载 html文件夹中的内容并检查 session我访问时的值 /小路。

如果我放置 router.route().handler(StaticHandler.create().setWebRoot("webroot"));它将读取来自 webroot 的内容文件夹。

当我使用以下代码时,它将执行处理程序代码。

router.route("/").handler(routingContext -> {
Session session = routingContext.session();
String name = session.get("uname");
// some code
});

但是,当我尝试访问此路径时,有什么方法可以执行这两个处理程序?

我试过
HttpServerResponse response = routingContext.response();
response.sendFile("webroot/index.html");

但它只是读取 index.html文件,它不读取 CSS。而且我找不到读取整个目录的方法。

最佳答案

你当然可以 :)

这是你的 Verticle 我注册了两个处理程序

@Override
public void start() throws Exception {
Router router = Router.router(vertx);
router.route().path("/hello").handler(new Handler0());
router.route().path("/hello").handler(new Handler1());

vertx.createHttpServer().requestHandler(router::accept).listen(8080);
}

class Handler0 implements Handler<RoutingContext> {

@Override
public void handle(RoutingContext ctx) {
ctx.put("hi", "your nice");
ctx.next(); // IMPORTANT!!
}
}

class Handler1 implements Handler<RoutingContext> {

@Override
public void handle(RoutingContext ctx) {
String hi = ctx.get("hi");
if (hi.equals("your nice") {
ctx.request().response().end(hi);
} else {
ctx.fail(401);
}
}
}

ctx.next() 调用下一个Handler
错误处理使用 ctx.fail

希望这可以帮助 :)

关于vert.x 使用多个处理程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34940693/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com