我们会发现,前面写的两个程序,无论访问什么地址,都是可以访问到Hello from Vert.x,这显然不是我们想要的结果,也不是我们之后所需要用到的。
我们需要配置指定路由,通过路由进行访问接口,这样才是我们想要结果。
1、同样方式复制出RouterVerticle文件。
package vertx; import io.vertx.core.AbstractVerticle; import io.vertx.core.Promise; import io.vertx.ext.web.Router; public class RouterVerticle extends AbstractVerticle { //第一步 声明Router Router router; @Override public void start(Promise<Void> startPromise) throws Exception { //第二步 初始化Router router = Router.router(vertx); //第三步 配置Router解析url router.route("/").handler( req -> { req.response() .putHeader("content-type", "text/plain") .end("Hello from Vert.x!"); } ); //第四步 将Router与vertx HttpServer 绑定 vertx.createHttpServer().requestHandler(router).listen(8888, http -> { if (http.succeeded()) { startPromise.complete(); System.out.println("HTTP server started on port 8888"); } else { startPromise.fail(http.cause()); } }); } }
2、启动测试
这样我们再访问根路径的时候,就可以访问到Hello from Vert.x。
访问其他路径的时候,就会出现Resource not found。
将router改为get请求
router.get("/").handler( req -> { req.response() .putHeader("content-type", "text/plain") .end("Hello from Vert.x!"); } );
将router改为post请求
router.post("/").handler( req -> { req.response() .putHeader("content-type", "text/plain") .end("Hello from Vert.x!"); } );