请求

未匹配的标注

请求参数注解

/**
 * 控制器方法内可用注解
 * @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;
    }

}

请求路径、主机和方法

本文章首发在 LearnKu.com 网站上。

上一篇 下一篇
唐章明
讨论数量: 0
发起讨论 只看当前版本


暂无话题~