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

Wie werden verschiedene Anfragen und Antworten in Spring Boot verarbeitet?

PHPz
Freigeben: 2023-05-15 21:25:04
nach vorne
1730 Leute haben es durchsucht

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();
    }
}
Nach dem Login kopieren

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";
}
Nach dem Login kopieren

前端页面显示: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";
}
Nach dem Login kopieren

前端页面显示: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";
}
Nach dem Login kopieren

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>
Nach dem Login kopieren

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

输入 “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;
}
Nach dem Login kopieren

前端页面显示:

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";
}
Nach dem Login kopieren

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>
Nach dem Login kopieren

前端页面显示:

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;
}
Nach dem Login kopieren

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;
}
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:yisu.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage