代码拉取完成,页面将自动刷新
package com.example.learnspring.controller;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import java.io.File;
import java.io.IOException;
import java.util.Arrays;
import java.util.List;
/**
* Created with IntelliJ IDEA.
* Description:
*
* @author: zxj
* @date: 2023-11-05
* @time: 22:11:45
*/
@RequestMapping("/param")
@RestController
public class ParamController {
@RequestMapping("/m1")
public String method1(String name) {
return "收到name: " + name;
}
@RequestMapping("/m2")
public String method2(int age) {
// 对于基本类型来说
// 如果前端传的参数不对, 就会返回 400 -- 说明前端传的参数不对
// 如果前端不传 age 对应的值, 就会返回 500 -- 服务报错
// 所以, 对于基本类型来说, 最好都使用包装器 int -> Integer
return "收到age: " + age;
}
@RequestMapping("/m3")
public String method3(String name, Integer age) {
// 接受多个参数
return "收到name: " + name + ", age: " + age;
}
static class Person {
public int age;
public String name;
@Override
public String toString() {
return "Person{" +
"age=" + age +
", name='" + name + '\'' +
'}';
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
@RequestMapping("/m4")
public String method4(Person person) {
// 传递Person对象, Spring 会默认将得到的KV进行相应的数值填充
// 如果k匹配就填充对应的v
// 如果没有匹配就默认是java类型中的默认值
return "收到person: " + person;
}
@RequestMapping("/m5")
public String method5(@RequestParam(value = "name", required = false) String myName) {
return myName;
}
@RequestMapping("/m6")
public String method6(String[] strings) {
return Arrays.toString(strings);
}
@RequestMapping("/m7")
public String method7(@RequestParam List<String> listParam) {
return listParam.toString();
}
@RequestMapping("/m8")
public String method8(@RequestBody Person person) {
// 将 body 中的 json 字符串转化为对象
return person.toString();
}
@RequestMapping("/m9/{id}/{name}")
public String method9(@PathVariable Integer id, @PathVariable String name) {
return "解析参数 id: " + id + ", name: " + name;
}
@RequestMapping("/m10")
public String getFile(@RequestPart("file") MultipartFile file) throws IOException {
// 获取文件名
String filename = file.getOriginalFilename();
// 文件上传到指定的路径
file.transferTo(new File("D:/tmp/" + file.getOriginalFilename()));
return "接受到文件的名称: " + filename;
}
@RequestMapping("/m11")
public String getCookie(HttpServletRequest request) {
Cookie[] cookies = request.getCookies();
if (cookies != null) {
for (Cookie cookie : cookies) {
System.out.println(cookie.getName() + ":" + cookie.getValue());
}
}
return "success";
}
@RequestMapping("/getCookie")
public String getCookie(@CookieValue("id") String id) {
System.out.println("id: " + id);
return "success";
}
@RequestMapping("/setSession")
public String setSession(HttpServletRequest request) {
HttpSession session = request.getSession(true);
session.setAttribute("name", "张三");
return "session 存储成功";
}
@RequestMapping("/getSession")
public String getSession(HttpServletRequest request) {
HttpSession session = request.getSession(false);
String name = null;
if (session != null && session.getAttribute("name") != null) {
name = (String) session.getAttribute("name");
}
return "获取到 name: " + name;
}
@RequestMapping("/getSession2")
public String getSession2(@SessionAttribute(value = "name",required = false) String name) {
return "获取到 name: " + name;
}
@RequestMapping("/getSession3")
public String getSession3(HttpSession session) {
String name = (String) session.getAttribute("name");
return "获取到 name: " + name;
}
@RequestMapping("getHeader")
public String getHeader(HttpServletRequest request) {
String userAgent = request.getHeader("User-Agent");
return userAgent;
}
@RequestMapping("getHeader1")
public String getHeader1(@RequestHeader("User-Agent") String userAgent) {
return userAgent;
}
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。