Heim  >  Artikel  >  Java  >  Wie werden verschiedene Anfragen und Antworten in Spring Boot verarbeitet?

Wie werden verschiedene Anfragen und Antworten in Spring Boot verarbeitet?

PHPz
PHPznach vorne
2023-05-15 21:25:041707Durchsuche

1. HttpServletRequest und HttpServletResponse

Browser-Eingabe: 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<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"));
    // 返回响应数据
    response.setContentType("text/html;charset=utf-8");
    try {
        PrintWriter writer = response.getWriter();
        writer.write("<h2>nowcoder</h2>");
    } catch (IOException e) {
        e.printStackTrace();
    }
}

Frontend-Seitenanzeige: nowcoder

Gleichzeitig IDEA-Konsolenausgabe :

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; /webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
sec-fetch-site: none
sec-fetch-mode : navigation
sec-fetch-user : ?1
sec-fetch-dest: document
accept-encoding: gzip, deflate, br
accept-sprache: zh-CN,zh;q=0.9
cookie: Idea-10659edd= 72fa12c3-9b68-4da6-8b68- 38a81c822aa0
10

2. GET-Typ-Anfrage

Fügen Sie Methoden in AlphaController hinzu, um GET-Typ-Anfragen zu verarbeiten.

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

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>增加学生</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>

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

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

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

<!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大学
100

5. 响应JSON格式的数据

AlphaController中增加方法,向浏览器响应JSON2.1 /students?current=1&limit=20

Browsereingabe: http://localhost:8080/community/alpha/students?current=1&limit=100

@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;
}

Anzeige der Vorderseite: einige Studenten

Gleichzeitig IDEA-Konsolenausgabe:

1

100

2.2 /student/123

Browsereingabe: http://localhost:8080/community/alpha/student/123
@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;
}

Frontend Seitenanzeige: ein Schüler
🎜🎜Gleichzeitig gibt die IDEA-Konsole Folgendes aus: 🎜🎜🎜123🎜🎜🎜3. POST-Typanforderung🎜🎜Fügen Sie eine Methode in AlphaController hinzu, um POST zu verarbeiten Typanfragen fragen. 🎜🎜Browser-Eingabe: http://localhost:8080/community/html/student.html🎜rrreee🎜resources/static/html/student.html🎜rrreee🎜Auf der Startseite wird ein Formular mit zwei Zeilen angezeigt: Name, Alter , Es gibt auch einen „Speichern“-Button. 🎜🎜Nachdem Sie „Lebron“ und 38 eingegeben haben, klicken Sie auf „Speichern“ und „Erfolg“ wird angezeigt. 🎜🎜4. Auf Daten im HTML-Format reagieren🎜🎜Fügen Sie eine Methode in AlphaController hinzu, um dem Browser auf Daten im HTML-Format zu antworten. 🎜🎜4.1 Verwenden Sie ModelAndView.🎜🎜Browser-Eingabe: http://localhost:8080/community/alpha/teacher ://localhost:8080/community/alpha/school🎜rrreee🎜resources/templates/demo/view.html🎜rrreee🎜Auf der Startseite wird Folgendes angezeigt: 🎜🎜🎜xx University🎜100🎜🎜🎜5. Reagieren Sie auf Daten in JSON-Format🎜🎜 Fügen Sie eine Methode in AlphaController hinzu, um dem Browser mit Daten im JSON-Format zu antworten. 🎜5.1 Einzeldatensatz 12000.0, „age“:20}🎜🎜🎜5.2 Mehrere Datensätze🎜🎜Browser-Eingabe: http://localhost:8080/community/alpha/emps🎜rrreee🎜Frontend-Seitenanzeige:🎜🎜🎜[{"name :: „Tom“, „Gehalt“: 12000,0, „Alter“: 20}, {“Name“: „Jerry“, „Gehalt“: 15000,0, „Alter“: 18}, {“Name“: „Leo“, „Gehalt“: 8000,0, „Alter“:25}]🎜🎜

Das obige ist der detaillierte Inhalt vonWie werden verschiedene Anfragen und Antworten in Spring Boot verarbeitet?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen