请求
请求参数注解
/**
* 控制器方法内可用注解
* @PathVariable 从 URL 路径中获取变量值
* @RequestParam 从 URL 查询参数中获取值
* @RequestBody 将请求体中的 JSON/XML 数据绑定到对象
* @ModelAttribute 将请求参数绑定到模型对象(常用于表单提交)
*/
@GetMapping("/user/{user_id}")
public User getUser(@PathVariable Long user_id) {
// 类似laravel $request->route('user_id')
}
@GetMapping("/search")
public User getUser(@RequestParam String keyword) {
// domain.com/search?keyword=xiaoming
// 类似laravel $request->query->get('keyword')
}
@PostMapping("/submit")
public String submitForm(@ModelAttribute UserForm userForm) {
// 自动将表单字段映射到 userForm 对象
return "result";
}
@PostMapping("/user")
public User createUser(@RequestBody User user) {
// 将请求体中的 JSON 转为 User 对象
return userService.save(user);
}
获得请求客户端的IP
@RestController
public class IpController {
@GetMapping("/ip")
public String getClientIp(HttpServletRequest request) {
String ipAddress = request.getRemoteAddr(); // 直接获取,可能返回代理 IP
return "Client IP: " + ipAddress;
}
}
请求头
import javax.servlet.http.HttpServletRequest;
import org.springframework.web.bind.annotation.RequestHeader;
@RestController
public class YourController {
@GetMapping("/headers")
public String getHeaders(@RequestHeader("Your-Header-Name") String yourHeaderName) {
// 处理逻辑
return "Header value: " + yourHeaderName;
}
@GetMapping("/all-headers")
public String getAllHeaders(@RequestHeader Map<String, String> headers) {
// 遍历并处理所有的头信息
return headers.toString();
}
@GetMapping("/headers-with-request")
public String getHeadersWithRequest(HttpServletRequest request) {
String headerValue = request.getHeader("Your-Header-Name");
// 处理逻辑
return "Header value: " + headerValue;
}
}