首页 文章 精选 留言 我的

精选列表

搜索[响应式微服务],共10028篇文章
优秀的个人博客,低调大师

SpringBoot2编写第一个Controller,响应你的http请求并返回结果

前言: SpringBoot的Controller模块用的是SpringMvc,所以用法和MVC没有差异。 本文章主要讲解 1.如何接收一个请求 2.如何获取请求的参数 3.常用的两种返回值JSONObject和ModelAndView 4.GET请求和POST请求 5.获取路径参数 6.HttpServletRequest和HttpServletResponse对象 编码 1.新建一个HelloController.java类,代码和结构如图所示 java 复制代码 package org.xujun.springboot.controller; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; @RestController public class HelloController { @GetMapping("hello") public String hello() { return "hello springboot"; } } 运行项目,并且访问[http://127.0.0.1:8080/hello]。结果如下图所示 2.请求并带参数,添加一个方法 java 复制代码 @GetMapping("hello") public String data(String name, Integer age) { System.out.println(name); System.out.println(age); return name; } 其中name和age为参数的Key,只要Key对应上即可获取到对应的值。要注意@GetMapping("data")中的URI必须不同,不然启动会报错。 运行项目,并且访问\[http://127.0.0.1:8080/data?name=xujun?age=18]。结果如下图所示 3.常用的两种返回值ajax和ModelAndView 通常我们会有两种常用的返回值,JSONObject用于相应ajax请求,ModelAndView用于输出一HTML个是的页面 输出JSONObject 本次使用的JSONObject包为阿里巴巴的fastjson包,因此先引入fastjson的jar包 打开pom.xml添加依赖 xml 复制代码 <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.62</version> </dependency> 如图: 然后编写Controller的方法 java 复制代码 @GetMapping("json") public JSONObject json() { JSONObject data = new JSONObject(); data.put("name", "xujun"); data.put("age", 18); return data; } 运行项目,并且访问[http://127.0.0.1:8080/json]。结果如下图所示 输出ModelAndView 由于ModelAndView用于输出页面的,所以我们需要配置SpringMvc的模板解析引擎,本次采用的模板解析引擎为Freemarker(对此模板解析引擎不推荐用JSP,后期会有文章讲解如何换模板引擎),因此先要引入Freemarker引擎的jar包。 打开pom.xml添加依赖 xml 复制代码 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-freemarker</artifactId> </dependency> 如图: 然后配置Freemarker模板解析引擎 打开application.properties添加 sh 复制代码 # Freemarker配置 # spring.freemarker.enabled : Freemarker是否启用 # spring.freemarker.template-loader-path : 载入路径 # spring.freemarker.prefix : 模板文件前缀 # spring.freemarker.suffix : 模板文件后缀 # spring.freemarker.content-type : 上下文类型 # spring.freemarker.charset : 字符编码 # spring.freemarker.settings.tag_syntax : 设置标签类型([],<>) # spring.freemarker.settings.date_format : Date格式化 # spring.freemarker.settings.time_format : Time格式化 # spring.freemarker.settings.datetime_format : Datetime格式化 spring.freemarker.enabled=true spring.freemarker.template-loader-path=classpath:/static/views/ spring.freemarker.prefix= spring.freemarker.suffix=.html spring.freemarker.content-type=text/html spring.freemarker.charset=UTF-8 spring.freemarker.settings.tag_syntax=auto_detect spring.freemarker.settings.date_format=yyyy-MM-dd spring.freemarker.settings.time_format=HH:mm:ss spring.freemarker.settings.datetime_format=yyyy-MM-dd HH:mm:ss 如图: 接着在resources/static/views编写一个Freemarker模板的html页面 新建一个index.html html 复制代码 <!DOCTYPE html> <html lang="zh-cn"> <head> <title>index</title> </head> <body> hello freemarker </body> </html> 如图: 最后编写Controller方法 java 复制代码 @GetMapping("index") public ModelAndView index() { ModelAndView mv = new ModelAndView(); mv.setViewName("index"); return mv; } 其中mv.setViewName("index");中index为模板的名字,因为前缀后缀在配置文件中已经配置,所以在此配置模板名字即可 运行项目,并且访问[http://127.0.0.1:8080/index]。结果如下图所示 4.GET请求和POST请求 由于请求方式有GET和POST,所以SpringMVC这边也有对应的注解与其对应,参考如下 @GetMapping 仅接收GET请求 @PostMapping 仅接收POST请求 @RequestMapping GET或POST请求都可接收 替换Controller方法头部对应注解即可 5.获取路径参数 有时候我们需要把URL中的某个部分取下来当作参数那就可以采用@PathVariable来绑定url参数 首先编写Controller方法 java 复制代码 @GetMapping("/list-{index}.html") public String url(@PathVariable String index) { return index; } 其中{index}为占位符,这样就可以将list-1.html中的1取出赋值到String index中。 运行项目,并且访问[http://127.0.0.1:8080/list-1.html]。结果如下图所示 6.HttpServletRequest和HttpServletResponse对象 有时候我们会在Controller中用到HttpServletRequest和HttpServletResponse对象,在Servlet中,doGet和doPost方法默认提供这两个对象,在SpringMVC中却没有。其实不然,要使用这两个对象,只要在对应的Controller方法的形参中添加这两个对象,SpringMVC就会自动注入。 如图: 总结:本文主要讲解了SpringBoot的Controller编写,由于SpringBoot采用SpringMvc框架,所以掌握SpringMvc写法即可,主要变化在于静态资源存放位置从WebContent/webapp转移到resources目录下,其他都大同小异了。

优秀的个人博客,低调大师

SpringCloud SpringBoot mybatis分布式微服务云架构开发Web应用

静态资源访问在我们开发Web应用的时候,需要引用大量的js、css、图片等静态资源。 默认配置Spring Boot默认提供静态资源目录位置需置于classpath下,目录名需符合如下规则: /static/public/resources/META-INF/resources举例:我们可以在src/main/resources/目录下创建static,在该位置放置一个图片文件。启动程序后,尝试访问http://localhost:8080/D.jpg。如能显示图片,配置成功。 渲染Web页面在之前的示例中,我们都是通过@RestController来处理请求,所以返回的内容为json对象。那么如果需要渲染html页面的时候,要如何实现呢? 模板引擎在动态HTML实现上Spring Boot依然可以完美胜任,并且提供了多种模板引擎的默认配置支持,所以在推荐的模板引擎下,我们可以很快的上手开发动态网站。 Spring Boot提供了默认配置的模板引擎主要有以下几种: ThymeleafFreeMarkerVelocityGroovyMustacheSpring Boot建议使用这些模板引擎,避免使用JSP,若一定要使用JSP将无法实现Spring Boot的多种特性,具体可见后文:支持JSP的配置 当你使用上述模板引擎中的任何一个,它们默认的模板配置路径为:src/main/resources/templates。当然也可以修改这个路径,具体如何修改,可在后续各模板引擎的配置属性中查询并修改。 Thymeleaf Thymeleaf是一个XML/XHTML/HTML5模板引擎,可用于Web与非Web环境中的应用开发。它是一个开源的Java库,基于Apache License 2.0许可,由Daniel Fernández创建,该作者还是Java加密库Jasypt的作者。 Thymeleaf提供了一个用于整合Spring MVC的可选模块,在应用开发中,你可以使用Thymeleaf来完全代替JSP或其他模板引擎,如Velocity、FreeMarker等。Thymeleaf的主要目标在于提供一种可被浏览器正确显示的、格式良好的模板创建方式,因此也可以用作静态建模。你可以使用它创建经过验证的XML与HTML模板。相对于编写逻辑或代码,开发者只需将标签属性添加到模板中即可。接下来,这些标签属性就会在DOM(文档对象模型)上执行预先制定好的逻辑。 示例模板: <table> <thead> <tr> <th th:text="#{msgs.headers.name}">Name</td> <th th:text="#{msgs.headers.price}">Price</td> </tr> </thead> <tbody> <tr th:each="prod : ${allProducts}"> <td th:text="${prod.name}">Oranges</td> <td th:text="${#numbers.formatDecimal(prod.price,1,2)}">0.99</td> </tr> </tbody> </table> 可以看到Thymeleaf主要以属性的方式加入到html标签中,浏览器在解析html时,当检查到没有的属性时候会忽略,所以Thymeleaf的模板可以通过浏览器直接打开展现,这样非常有利于前后端的分离。 在Spring Boot中使用Thymeleaf,只需要引入下面依赖,并在默认的模板路径src/main/resources/templates下编写模板文件即可完成。 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency> 完整项目的源码来源 技术支持1791743380

资源下载

更多资源
腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册