请先关注 [低调大师说] 公众号
您现在的位置是:首页 > 文章详情

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

日期:2025-09-05点击:6062
主题:

前言:

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目录下,其他都大同小异了。

文件下载

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

更新日期:2025-09-05

关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有1条评论来说两句吧...

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

bobdive2022@gmx. 说:

aaddmmiinn

2025-08-13

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章