0

0

Spring Boot各类请求和响应的处理方法是什么

PHPz

PHPz

发布时间:2023-05-15 21:25:04

|

1973人浏览过

|

来源于亿速云

转载

1. HttpServletRequest与HttpServletResponse

浏览器输入:http://localhost:8080/community/alpha/http?code=10

@RequestMapping("/http")
public void http(HttpServletRequest request, HttpServletResponse response) {
    // 获取请求数据
    System.out.println(request.getMethod());
    System.out.println(request.getServletPath());
    Enumeration enumeration = request.getHeaderNames();
    while (enumeration.hasMoreElements()) {
        String name = enumeration.nextElement();
        String value = request.getHeader(name);
        System.out.println(name + ": " + value);
    }
    System.out.println(request.getParameter("code"));
    // 返回响应数据
    response.setContentType("text/html;charset=utf-8");
    try {
        PrintWriter writer = response.getWriter();
        writer.write("

nowcoder

"); } catch (IOException e) { e.printStackTrace(); } }
前端页面显示:nowcoder

同时,IDEA控制台输出:

GET
/alpha/http
host: localhost:8080
connection: keep-alive
sec-ch-ua: " Not;A Brand";v="99", "Google Chrome";v="97", "Chromium";v="97"
sec-ch-ua-mobile: ?0
sec-ch-ua-platform: "Windows"
upgrade-insecure-requests: 1
user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.99 Safari/537.36
accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
sec-fetch-site: none
sec-fetch-mode: navigate
sec-fetch-user: ?1
sec-fetch-dest: document
accept-encoding: gzip, deflate, br
accept-language: zh-CN,zh;q=0.9
cookie: Idea-10659edd=72fa12c3-9b68-4da6-8b68-38a81c822aa0
10

2. GET类型的请求

AlphaController中增加方法,处理GET类型的请求。

2.1 /students?current=1&limit=20

浏览器输入:http://localhost:8080/community/alpha/students?current=1&limit=100

@GetMapping("/students")
@ResponseBody
public String getStudents(
        @RequestParam(name = "current" ,required = false, defaultValue = "1") int current,
        @RequestParam(name = "limit" ,required = false, defaultValue = "10") int limit) {
    System.out.println(current);
    System.out.println(limit);
    return "some students";
}

前端页面显示:some students

同时,IDEA控制台输出:

1
100

2.2 /student/123

浏览器输入:http://localhost:8080/community/alpha/student/123

@GetMapping("/student/{id}")
@ResponseBody
public String getStudent(@PathVariable("id") int id) {
    System.out.println(id);
    return "one student";
}

前端页面显示:one students

同时,IDEA控制台输出:

123

3. POST类型的请求

AlphaController中增加方法,处理POST类型的请求。

浏览器输入:http://localhost:8080/community/html/student.html

@PostMapping("/student")
@ResponseBody
public String saveStudent(String name, int age) {
    System.out.println(name);
    System.out.println(age);
    return "success";
}

resources/static/html/student.html




    
    增加学生


  

姓名:

年龄:

前端页面显示一个表单,包含两行:姓名、年龄,还有一个 “保存” 按钮。

输入 “Lebron”、38 后,点击 “保存” 后,显示 “success”。

Postme
Postme

Postme是一款强大的AI写作工具,可以帮助您快速生成高质量、原创的外贸营销文案,助您征服全球市场。

下载

4. 响应HTML格式的数据

AlphaController中增加方法,向浏览器响应HTML格式的数据。

4.1 使用ModelAndView

浏览器输入:http://localhost:8080/community/alpha/teacher

@GetMapping("/teacher")
public ModelAndView getTeacher() {
    ModelAndView mav = new ModelAndView();
    mav.addObject("name", "Lebron");
    mav.addObject("age", 38);
    mav.setViewName("/demo/view");
    return mav;
}

前端页面显示:

Lebron
38

4.2 使用Model

浏览器输入:http://localhost:8080/community/alpha/school

@GetMapping("/school")
public String getSchool(Model model) {
    model.addAttribute("name", "xx大学");
    model.addAttribute("age", 100);
    return "/demo/view";
}

resources/templates/demo/view.html




    
    Teacher


    

前端页面显示:

xx大学
100

5. 响应JSON格式的数据

AlphaController中增加方法,向浏览器响应JSON格式的数据。

5.1 单组数据

浏览器输入:http://localhost:8080/community/alpha/emp

@GetMapping("/emp")
@ResponseBody
public Map getEmp() {
    Map emp = new HashMap<>();
    emp.put("name", "Kitty");
    emp.put("age", 20);
    emp.put("salary", 12000.00);
    return emp;
}

前端页面显示:

{"name":"Kitty","salary":12000.0,"age":20}

5.2 多组数据

浏览器输入:http://localhost:8080/community/alpha/emps

@GetMapping("/emps")
@ResponseBody
public List> getEmps() {
    List> list = new ArrayList<>();
    Map emp = new HashMap<>();
    emp.put("name", "Tom");
    emp.put("age", 20);
    emp.put("salary", 12000.00);
    list.add(emp);
    emp = new HashMap<>();
    emp.put("name", "Jerry");
    emp.put("age", 18);
    emp.put("salary", 15000.00);
    list.add(emp);
    emp = new HashMap<>();
    emp.put("name", "Leo");
    emp.put("age", 25);
    emp.put("salary", 8000.00);
    list.add(emp);
    return list;
}

前端页面显示:

[{"name":"Tom","salary":12000.0,"age":20},{"name":"Jerry","salary":15000.0,"age":18},{"name":"Leo","salary":8000.0,"age":25}]

相关专题

更多
C++ 高级模板编程与元编程
C++ 高级模板编程与元编程

本专题深入讲解 C++ 中的高级模板编程与元编程技术,涵盖模板特化、SFINAE、模板递归、类型萃取、编译时常量与计算、C++17 的折叠表达式与变长模板参数等。通过多个实际示例,帮助开发者掌握 如何利用 C++ 模板机制编写高效、可扩展的通用代码,并提升代码的灵活性与性能。

10

2026.01.23

php远程文件教程合集
php远程文件教程合集

本专题整合了php远程文件相关教程,阅读专题下面的文章了解更多详细内容。

29

2026.01.22

PHP后端开发相关内容汇总
PHP后端开发相关内容汇总

本专题整合了PHP后端开发相关内容,阅读专题下面的文章了解更多详细内容。

21

2026.01.22

php会话教程合集
php会话教程合集

本专题整合了php会话教程相关合集,阅读专题下面的文章了解更多详细内容。

21

2026.01.22

宝塔PHP8.4相关教程汇总
宝塔PHP8.4相关教程汇总

本专题整合了宝塔PHP8.4相关教程,阅读专题下面的文章了解更多详细内容。

13

2026.01.22

PHP特殊符号教程合集
PHP特殊符号教程合集

本专题整合了PHP特殊符号相关处理方法,阅读专题下面的文章了解更多详细内容。

11

2026.01.22

PHP探针相关教程合集
PHP探针相关教程合集

本专题整合了PHP探针相关教程,阅读专题下面的文章了解更多详细内容。

8

2026.01.22

菜鸟裹裹入口以及教程汇总
菜鸟裹裹入口以及教程汇总

本专题整合了菜鸟裹裹入口地址及教程分享,阅读专题下面的文章了解更多详细内容。

55

2026.01.22

Golang 性能分析与pprof调优实战
Golang 性能分析与pprof调优实战

本专题系统讲解 Golang 应用的性能分析与调优方法,重点覆盖 pprof 的使用方式,包括 CPU、内存、阻塞与 goroutine 分析,火焰图解读,常见性能瓶颈定位思路,以及在真实项目中进行针对性优化的实践技巧。通过案例讲解,帮助开发者掌握 用数据驱动的方式持续提升 Go 程序性能与稳定性。

9

2026.01.22

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Redis6入门到精通超详细教程
Redis6入门到精通超详细教程

共47课时 | 5.3万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号