免费免费网站模板,网站带做收录排名,公司官网怎么维护,小学校园网站建设方案静态资源
Vert.x-Web带有开箱即用的处理器(StaticHandler)#xff0c;用于处理静态Web资源(.html, .css, .js, …)#xff0c; 因此可以非常轻松地编写静态Web服务器。 默认静态文件目录为类路径下的webroot目录#xff0c;对于maven的项目#xff0c;按规范放在src/main/…静态资源
Vert.x-Web带有开箱即用的处理器(StaticHandler)用于处理静态Web资源(.html, .css, .js, …) 因此可以非常轻松地编写静态Web服务器。 默认静态文件目录为类路径下的webroot目录对于maven的项目按规范放在src/main/resources/webroot下但可以配置。例如: Vert.x Web相关代码如下:
public class WebServer1 {public static void main(String[] args) {Vertx vertx Vertx.vertx();HttpServer server vertx.createHttpServer();Router router Router.router(vertx);// StaticHandler来处理静态文件// 需要注意的是静态文件要放到webroot(resources/webroot)里面StaticHandler staticHander StaticHandler.create()//.create(D:/www/test/) // 指定web-root, 注意Windows下的路径格式, 是/, 而不是\.setCachingEnabled(true).setDirectoryListing(false).setIndexPage(index.html);router.route(/html/*).handler(staticHander);server.requestHandler(router).listen(8080);}
}index.html的代码如下:
!DOCTYPE html
html
headmeta charsetutf-8meta nameviewport contentwidthdevice-width, initial-scale1, maximum-scale1titleHello Vert.X/titlelink relstylesheet href./static/layui/css/layui.cssscript src./static/layui/layui.js/script
/head
bodydiv classlayui-containerdiv classlayui-row layui-col-space12 stylemargin-top: 18px;/divdiv classlayui-carddiv classlayui-card-header stylebackground-color: #dddddd;bHello Vert.x Web/b/divdiv classlayui-card-bodyVert.x-Web is a set of building blocks for building web applications with Vert.x./div/div/div/div
/body
/html通过浏览器访问http://127.0.0.1:8080/html/浏览器返回index.html页面的内容。
模板
Vert.x Web为若干流行的模板引擎提供了开箱即用的支持通过这种方式来提供生成动态页面的能力。TemplateEngine定义了使用模板引擎的接口。 当渲染模板时会调用render方法。
最简单的使用模板的方式不是直接调用模板引擎而是使用模板处理器TemplateHandler。 这个处理器会根据 HTTP 请求的路径来调用模板引擎。
缺省情况下模板处理器会在类路径下的templates目录中查找模板文件。这是可以配置的。该处理器会返回渲染的结果并默认设置Content-Type消息头为text/html 。这也是可以配置的。
Vert.x Web提供了每一种模板引擎的配置。 使用模板引擎需要先引入对应依赖并在创建模板处理器时提供所使用的模板引擎实例。 接下来以使用Thymeleaf模板引擎为例首先需要在maven项目中引入依赖
dependencygroupIdio.vertx/groupIdartifactIdvertx-web-templ-thymeleaf/artifactIdversion4.5.10/version
/dependency注意对于Thymeleaf模板引擎不同版本的用法是有比较大的区别的网上很多案例都是基于4.x版本之前的。4版本的用法建议参考github上的官方案例vertx-examples-4.x。 以下写个thymeleaf模板并进行渲染模板存放目录: webroot/templates/thymeleaf/ Vert.x Web相关代码:
ThymeleafTemplateEngine engine ThymeleafTemplateEngine.create(vertx);
router.route(/thy/hello.html).handler(routingContext - {JsonObject data new JsonObject().put(osName, System.getProperty(os.name)).put(osArch, System.getProperty(os.arch)).put(osVersion, System.getProperty(os.version)).put(jvmName, System.getProperty(java.runtime.name)).put(jvmVersion, System.getProperty(java.runtime.version));engine.render(data, webroot/templates/thymeleaf/hello-templ.html, ar - { // 模板位置if (ar.succeeded()) {routingContext.response().end(ar.result());} else {routingContext.fail(ar.cause());}});
});模板相关代码:
!DOCTYPE html
html
headmeta charsetutf-8meta nameviewport contentwidthdevice-width, initial-scale1, maximum-scale1titleHello Vert.X/titlelink relstylesheet href../html/static/layui/css/layui.cssscript src../html/static/layui/layui.js/script
/head
bodydiv classlayui-containerdiv classlayui-row layui-col-space15div classlayui-col-md8table classlayui-tabletheadtr stylebackground-color: #94BDD8;th服务器属性/thth属性值/th/tr/theadtbodytrtdOS Info/tdtd th:text${osName} , ${osVersion} , ${osArch}/td/trtrtdJVM Info/tdtd th:text${jvmName} , ${jvmVersion} /td/tr/tbody/table/div/div/div
/body
/html浏览器访问http://127.0.0.1:8080/thy/hello.html 返回如下: