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<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("<h1>nowcoder</h1>");
- } 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
- <!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
中增加方法,向浏览器响应JSON
格式的数据。
5.1 单组数据
浏览器输入: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 多组数据
浏览器输入: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}]
到此这篇关于Spring Boot详解各类请求和响应的处理方法的文章就介绍到这了,更多相关Spring Boot请求和响应的处理内容请搜索w3xue以前的文章或继续浏览下面的相关文章希望大家以后多多支持w3xue!