最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Spring Boot詳解各類請(qǐng)求和響應(yīng)的處理方法

 更新時(shí)間:2022年07月18日 17:09:05   作者:LeBron Le  
平時(shí)只是在用SpringBoot框架,但并沒有詳細(xì)研究過請(qǐng)求和響應(yīng)執(zhí)行的一個(gè)具體過程,所以本文主要來梳理一下SpringBoot請(qǐng)求和響應(yīng)的處理過程

1. HttpServletRequest與HttpServletResponse

瀏覽器輸入:http://localhost:8080/community/alpha/http?code=10

@RequestMapping("/http")
public void http(HttpServletRequest request, HttpServletResponse response) {
    // 獲取請(qǐng)求數(shù)據(jù)
    System.out.println(request.getMethod());
    System.out.println(request.getServletPath());
    Enumeration<String> 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"));
    // 返回響應(yīng)數(shù)據(jù)
    response.setContentType("text/html;charset=utf-8");
    try {
        PrintWriter writer = response.getWriter();
        writer.write("<h1>nowcoder</h1>");
    } catch (IOException e) {
        e.printStackTrace();
    }
}

前端頁面顯示:nowcoder

同時(shí),IDEA控制臺(tái)輸出:

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類型的請(qǐng)求

AlphaController中增加方法,處理GET類型的請(qǐng)求。

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

同時(shí),IDEA控制臺(tái)輸出:

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

同時(shí),IDEA控制臺(tái)輸出:

123

3. POST類型的請(qǐng)求

AlphaController中增加方法,處理POST類型的請(qǐng)求。

瀏覽器輸入: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

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>增加學(xué)生</title>
</head>
<body>
  <form method="post" action="/community/alpha/student">
    <p>
      姓名:<input type="text" name="name">
    </p>
    <p>
      年齡:<input type="text" name="age">
    </p>
    <p>
      <input type="submit" value="保存">
    </p>
  </form>
</body>
</html>

前端頁面顯示一個(gè)表單,包含兩行:姓名、年齡,還有一個(gè) “保存” 按鈕。

輸入 “Lebron”、38 后,點(diǎn)擊 “保存” 后,顯示 “success”。

4. 響應(yīng)HTML格式的數(shù)據(jù)

AlphaController中增加方法,向?yàn)g覽器響應(yīng)HTML格式的數(shù)據(jù)。

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大學(xué)");
    model.addAttribute("age", 100);
    return "/demo/view";
}

resources/templates/demo/view.html

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>Teacher</title>
</head>
<body>
    <p th:text="${name}"></p>
    <p th:text="${age}"></p>
</body>
</html>

前端頁面顯示:

xx大學(xué)
100

5. 響應(yīng)JSON格式的數(shù)據(jù)

AlphaController中增加方法,向?yàn)g覽器響應(yīng)JSON格式的數(shù)據(jù)。

5.1 單組數(shù)據(jù)

瀏覽器輸入:http://localhost:8080/community/alpha/emp

@GetMapping("/emp")
@ResponseBody
public Map<String, Object> getEmp() {
    Map<String, Object> 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 多組數(shù)據(jù)

瀏覽器輸入:http://localhost:8080/community/alpha/emps

@GetMapping("/emps")
@ResponseBody
public List<Map<String, Object>> getEmps() {
    List<Map<String, Object>> list = new ArrayList<>();
    Map<String, Object> 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}]

到此這篇關(guān)于Spring Boot詳解各類請(qǐng)求和響應(yīng)的處理方法的文章就介紹到這了,更多相關(guān)Spring Boot請(qǐng)求和響應(yīng)的處理內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • java GUI編程之布局控制器(Layout)實(shí)例分析

    java GUI編程之布局控制器(Layout)實(shí)例分析

    這篇文章主要介紹了java GUI編程之布局控制器(Layout),結(jié)合實(shí)例形式分析了java GUI編程中布局控制器(Layout)具體功能、用法及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下
    2020-01-01
  • SpringBoot整合Prometheus如何實(shí)現(xiàn)資源監(jiān)控

    SpringBoot整合Prometheus如何實(shí)現(xiàn)資源監(jiān)控

    本文介紹了如何使用Prometheus監(jiān)控SpringBoot應(yīng)用,Prometheus是一個(gè)開源的監(jiān)控和告警工具,SpringBootActuator提供了監(jiān)控和管理SpringBoot應(yīng)用的工具,通過添加依賴、配置Actuator和Prometheus,可以實(shí)現(xiàn)對(duì)SpringBoot應(yīng)用的實(shí)時(shí)監(jiān)控
    2024-12-12
  • 聊聊@value注解和@ConfigurationProperties注解的使用

    聊聊@value注解和@ConfigurationProperties注解的使用

    這篇文章主要介紹了@value注解和@ConfigurationProperties注解的使用,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • @Value設(shè)置默認(rèn)值后,獲取不到配置值的原因分析

    @Value設(shè)置默認(rèn)值后,獲取不到配置值的原因分析

    這篇文章主要介紹了@Value設(shè)置默認(rèn)值后,獲取不到配置值的原因,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • 在X分鐘內(nèi)學(xué)會(huì)C#的入門簡(jiǎn)明教程

    在X分鐘內(nèi)學(xué)會(huì)C#的入門簡(jiǎn)明教程

    C#是一個(gè)優(yōu)雅的、類型安全的面向?qū)ο笳Z言。使用C#,開發(fā)者可以在.NET框架下構(gòu)建安全而強(qiáng)大的應(yīng)用程序,閱讀本文可以快速的入門C#編程語言,需要的朋友可以參考下
    2014-03-03
  • SpringCloud Zuul過濾器和谷歌Gauva實(shí)現(xiàn)限流

    SpringCloud Zuul過濾器和谷歌Gauva實(shí)現(xiàn)限流

    這篇文章主要介紹了SpringCloud Zuul過濾器和谷歌Gauva實(shí)現(xiàn)限流,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-03-03
  • spring boot 使用profile來分區(qū)配置的操作

    spring boot 使用profile來分區(qū)配置的操作

    這篇文章主要介紹了spring boot使用profile來分區(qū)配置的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • java實(shí)現(xiàn)幸運(yùn)抽獎(jiǎng)功能

    java實(shí)現(xiàn)幸運(yùn)抽獎(jiǎng)功能

    這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)幸運(yùn)抽獎(jiǎng)功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • Java面試突擊之Bean作用域詳解

    Java面試突擊之Bean作用域詳解

    Spring?框架作為一個(gè)管理?Bean?的?IoC?容器,那么?Bean?自然是?Spring?中的重要資源了,那?Bean?的作用域是什么意思?又有幾種類型呢?接下來我們一起來看
    2022-08-08
  • lombok插件無法使用的原因及解決方案

    lombok插件無法使用的原因及解決方案

    這篇文章主要介紹了lombok插件無法使用的原因及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-08-08

最新評(píng)論

嘉义县| 富川| 延津县| 海伦市| 武义县| 调兵山市| 吉木萨尔县| 边坝县| 武义县| 确山县| 民和| 中宁县| 河北区| 武鸣县| 怀集县| 洪泽县| 嵊州市| 徐汇区| 东台市| 班戈县| 马公市| 平凉市| 海南省| 射洪县| 息烽县| 团风县| 子长县| 旬阳县| 呈贡县| 凤阳县| 饶阳县| 上高县| 榆林市| 汨罗市| 即墨市| 威海市| 龙岩市| 华池县| 阳山县| 阿城市| 惠东县|