網(wǎng)站首頁 編程語言 正文
1. HttpServletRequest與HttpServletResponse
瀏覽器輸入:http://localhost:8080/community/alpha/http?code=10
@RequestMapping("/http")
public void http(HttpServletRequest request, HttpServletResponse response) {
// 獲取請求數(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控制臺輸出:
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
同時(shí),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
同時(shí),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>增加學(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}]
原文鏈接:https://blog.csdn.net/hutianle/article/details/125810453
相關(guān)推薦
- 2023-07-05 【nacos優(yōu)化】定時(shí)刪除access日志
- 2023-03-21 Android?Hilt依賴注入的實(shí)現(xiàn)淺析_Android
- 2022-10-14 scikit-learn工具包中分類模型predict_proba、predict、decision
- 2024-04-04 springboot整合mongodb批量修改和添加索引,與設(shè)置mongodb保存更新超時(shí)時(shí)間
- 2022-10-04 C語言零基礎(chǔ)徹底掌握預(yù)處理上篇_C 語言
- 2022-08-05 python內(nèi)置模塊之上下文管理contextlib_python
- 2023-03-22 C語言中不定參數(shù)?...?的語法以及函數(shù)封裝_C 語言
- 2023-04-01 C++11中強(qiáng)類型枚舉的使用_C 語言
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細(xì)win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運(yùn)行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運(yùn)算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認(rèn)證信息的處理
- Spring Security之認(rèn)證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯(cuò)誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實(shí)現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡單動(dòng)態(tài)字符串(SD
- arthas操作spring被代理目標(biāo)對象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊(duì)列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠(yuǎn)程分支