Skip to content

webGoBetter/gs-serving-web-content

Repository files navigation

tags
projects
spring-framework

本指南将帮助您了解创建带有Spring的“Hello World”网站的过程。

你将做出什么

您将构建一个具有静态主页的应用程序,并且将接受HTTP GET请求:

http://localhost:8080/greeting

并用显示HTML的网页响应。HTML的正文包含问候语:

"Hello, World!"

可以在查询字符串中使用可选的“名称”参数定制问候语:

http://localhost:8080/greeting?name=User

“name”参数值重写默认值“World”,并反映在响应中:

"Hello, User!"

创建Web控制器

在Spring构建Web站点的方法中,HTTP请求由控制器处理。您可以很容易地通过 @Controller 注释来标识这些请求。 在接下来的例子中,GreetingControoler 为/greeting 处理 GET 请求,通过返回 View 的名字,在这个例子中就是“greeting”。`View`负责渲染HTML内容:

src/main/java/hello/GreetingController.java

link:complete/src/main/java/hello/GreetingController.java[role=include]

这个控制器简洁明了,但是做了很多。让我们一步一步地分解它。

‘@RequestMapping’ 注解确保 /greeting 的HTTP请求映射到 greeting() 方法上。

Note
以上例子不指定 GETPUT, POST 等等,因为 @RequestMapping 默认映射所有的HTTP操作。使用 @RequestMapping(method=GET) 缩小这种映射。

@RequestParam 绑定查询字符串中的参数到 greeting() 方法的 name 参数中。查询字符串参数并不是 required;如果它在请求中不存在,那么将使用 "World" 这个 defaultValuename 参数的值被添加到一个 Model 对象上,最终使视图模板可以访问它。

方法的主体实现依赖于 视图技术执行服务器端的HTML渲染。在这个例子中是 Thymeleaf 。 Thymeleaf 自动解析 greeting.html 模板,在对 th:text 表达式求值的过程中将控制器中设置的 ${name} 的值渲染到模板中。

src/main/resources/templates/greeting.html

link:complete/src/main/resources/templates/greeting.html[role=include]

开发Web应用程序

开发Web应用程序的一个共同特点是编码更改,重新启动应用程序,并刷新浏览器以查看更改。整个过程可以消耗大量的时间。为了加快循环的步骤,春天的启动是一个方便的模块称为 spring-boot-devtools

  • 启用 热部署

  • 切换模板引擎以禁用缓存

  • 使livereload自动刷新浏览器

  • 基于进化而不是产品的其他合理默认值

使应用程序可执行

虽然可以将此服务打包为一个传统的 WAR 文件用于部署到外部应用服务器,更为简单的方法是创建了一个独立的应用程序。通过一个 good old Java `main()`方法,你能将一切打包成为一个单一的克执行 JAR 文件。在这一过程中,您使用Spring的提供的 Tomcat servlet容器作为HTTP运行时,而不是将它部署的到一个外部实例在中。

src/main/java/hello/Application.java

link:complete/src/main/java/hello/Application.java[role=include]

日志输出显示。应用程序应该在几秒钟内启动和运行。

测试应用程序

"Hello, World!"

通过 http://localhost:8080/greeting?name=User 提供一个查询字符串参数 name 。注意消息是如何从 "Hello, World!"变成"Hello, User!"的:

"Hello, User!"

这种变化表明, GreetingController 中的 @RequestParam 和预期的一样工作。name 被赋予了默认值 "World",但始终可以通过查询字符串显式重写。name parameter has been given a default value of "World", but can always be explicitly overridden through the query string.

添加主页

静态资源,如HTML、JavaScript或CSS,可以很容易地从 Spring Boot应用程序中获得,只需将它们放入源代码中的正确位置即可。默认情况下,通过类路径下的"/static" (or "/public")的资源,Spring boot提供了静态内容。 index.html 资源比较特别,因为如果她存在的话,会被用作"welcome page",这以为着它是root资源,我们这个例子即是 `http://localhost:8080/。所以创建这个文件:

src/main/resources/static/index.html

link:complete/src/main/resources/static/index.html[role=include]

当你重新启动应用程序你就会在http://localhost:8080/会看到HTML。

总结

祝贺你!您刚刚使用Spring开发了一个Web页面。

About

用Spring MVC提供Web内容 :: 了解如何使用Spring MVC创建Web页面。

Resources

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors