SpringBoot2编写第一个Controller,响应你的http请求并返回结果
前言
SpringBoot的Controller模块用的是SpringMvc,所以用法和MVC没有差异。
本文主要讲解
1.如何接收一个请求
2.如何获取请求的参数
3.常用的两种返回值JSONObject和ModelAndView
4.GET请求和POST请求
5.获取路径参数
6.HttpServletRequest和HttpServletResponse对象
1.新建一个HelloController.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.请求并带参数
添加一个Controller方法
@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个是的页面
3.1.输出JSONObject
本次使用的JSONObject包为阿里巴巴的fastjson包,因此先引入fastjson的jar包
打开pom.xml添加依赖
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.62</version>
</dependency>
如图:
然后编写一个Controller的方法
@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]。结果如图
3.2.输出ModelAndView
由于ModelAndView用于输出页面的,所以我们需要配置SpringMvc的模板解析引擎,本次采用的模板解析引擎为Freemarker(对此模板解析引擎不推荐用JSP,后期会有文章讲解如何换模板引擎),因此先要引入Freemarker引擎的jar包。
打开pom.xml添加依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-freemarker</artifactId>
</dependency>
如图:
然后配置Freemarker模板解析引擎
打开application.properties添加
# 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
<!DOCTYPE html>
<html>
<head>
<title>index</title>
</head>
<body>
hello freemarker
</body>
</html>
如图:
最后编写Controller方法
@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方法
@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目录下,其他都大同小异了。
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
前言 简介 相信玩过SSM的同学都清楚,要搭建一个SSM工程的初期需要调试很多配置文件,并且需要手动引入很多Jar包。尤其是新手应对Jar缺失、冲突等尤其痛苦。于是就诞生了Spring Boot框架。Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。 发展史 Spring boot 1.1(2014 年 6 ...
- 下一篇
SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
前言 什么是 MyBatis? MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生类型、接口和 Java 的 POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。 参考资料:https://mybatis.org/mybatis-3/zh/ Jar包说明 本次采用mybatis-spring-boot-starter_v2.1.1版本,对应的MyBatis版本为3.5.3。并...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- 2048小游戏-低调大师作品
- CentOS7设置SWAP分区,小内存服务器的救世主
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- CentOS7,CentOS8安装Elasticsearch6.8.6
- CentOS8安装Docker,最新的服务器搭配容器使用
- SpringBoot2整合Redis,开启缓存,提高访问速度
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池