Maison >Java >javaDidacticiel >Quelle est la méthode de traitement des diverses requêtes et réponses dans Spring Boot ?
Entrée du navigateur : 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(); } }
Affichage de la page frontale : nowcoder
En même temps, sortie de la console IDEA :
2. Requête de type GETAjoutez des méthodes dansGET
/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"
demandes de mise à niveau non sécurisées : 1
agent utilisateur : 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 : naviguer
sec-fetch-user : ?1
sec-fetch-dest: document
accepter-encodage: gzip, deflate, br
accepter-langue: zh-CN,zh;q=0.9
cookie: Idea-10659edd= 72fa12c3-9b68-4da6-8b68- 38a81c822aa0
10
AlphaController
pour gérer les requêtes de type GET
. AlphaController
中增加方法,处理GET
类型的请求。
浏览器输入: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
浏览器输入: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
在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”。
在AlphaController
中增加方法,向浏览器响应HTML
格式的数据。
浏览器输入: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
浏览器输入: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
在AlphaController
中增加方法,向浏览器响应JSON
2.1 /students?current=1&limit=20
@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; }Affichage de la page frontale : certains étudiants
En même temps, sortie de la console IDEA :1
🎜🎜En même temps, la sortie de la console IDEA : 🎜🎜🎜123🎜🎜🎜3 Requête de type POST🎜🎜Ajoutez une méthode dans@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; }Front-end affichage de la page : un étudiant
AlphaController
pour gérer le POST. Les requêtes de type
demandent. 🎜🎜Entrée du navigateur : http://localhost:8080/community/html/student.html🎜rrreee🎜resources/static/html/student.html🎜rrreee🎜La page d'accueil affiche un formulaire contenant deux lignes : nom, âge , Il y a aussi un bouton "Enregistrer". 🎜🎜Après avoir entré "Lebron" et 38, cliquez sur "Enregistrer" et "succès" s'affichera. 🎜🎜4. Répondez aux données au format HTML🎜🎜Ajoutez une méthode dans AlphaController
pour répondre aux données au format HTML
au navigateur. 🎜🎜4.1 Utiliser ModelAndView🎜🎜Entrée du navigateur : http://localhost:8080/community/alpha/teacher🎜rrreee🎜Affichage de la page frontale : 🎜🎜🎜Lebron🎜38🎜🎜🎜4.2 Utiliser Model🎜🎜Entrée du navigateur : http ://localhost:8080/community/alpha/school🎜rrreee🎜resources/templates/demo/view.html🎜rrreee🎜La page d'accueil affiche : 🎜🎜🎜xx University🎜100🎜🎜🎜5. Format JSON🎜🎜 Ajoutez une méthode dans AlphaController
pour répondre au navigateur avec des données au format JSON
. 🎜🎜5.1 Ensemble unique de données🎜🎜Entrée du navigateur : http://localhost:8080/community/alpha/emp🎜rrreee🎜Affichage de la page frontale : 🎜🎜🎜{"name": "Kitty", "salaire": 12000.0, "age":20}🎜🎜🎜5.2 Plusieurs ensembles de données🎜🎜Entrée du navigateur : http://localhost:8080/community/alpha/emps🎜rrreee🎜Affichage de la page frontale :🎜🎜🎜[{"name ":"Tom ","salaire":12000.0,"age":20},{"name":"Jerry","salaire":15000.0,"age":18},{"name":"Léo", "salaire": 8000,0, "âge": 25}]🎜🎜Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!