寒假学习18篇
3 接收Cookie数据
可以使用 `@CookieValue` 注释将 HTTP Cookie 的值绑定到控制器中的方法参数。
考虑使用以下 cookie 的请求:
```Java
JSESSIONID=415A4AC178C59DACE0B2C9CA727CDD84
```
下面的示例演示如何获取 cookie 值:
```Java
@GetMapping("/demo")
public void handle(@CookieValue("JSESSIONID") String cookie) {
//...
}
```
### 2.4 接收请求头数据
可以使用 `@RequestHeader` 批注将请求标头绑定到控制器中的方法参数。
请考虑以下带有标头的请求:
```Java
Host localhost:8080
Accept text/html,application/xhtml+xml,application/xml;q=0.9
Accept-Language fr,en-gb;q=0.7,en;q=0.3
Accept-Encoding gzip,deflate
Accept-Charset ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive 300
```
下面的示例获取 `Accept-Encoding` 和 `Keep-Alive` 标头的值:
```Java
@GetMapping("/demo")
public void handle(
@RequestHeader("Accept-Encoding") String encoding,
@RequestHeader("Keep-Alive") long keepAlive) {
//...
}
```
### 2.5 原生Api对象操作
https://docs.spring.io/spring-framework/reference/web/webmvc/mvc-controller/ann-methods/arguments.html
下表描述了支持的控制器方法参数
|Controller method argument 控制器方法参数|Description|
|-|-|
|`jakarta.servlet.ServletRequest`, `jakarta.servlet.ServletResponse` |请求/响应对象|
|`jakarta.servlet.http.HttpSession`|强制存在会话。因此,这样的参数永远不会为 `null` 。|
|`java.io.InputStream`, `java.io.Reader` | 用于访问由 Servlet API 公开的原始请求正文。|
|`java.io.OutputStream`, `java.io.Writer` |用于访问由 Servlet API 公开的原始响应正文。|
|`@PathVariable`|接收路径参数注解|
|`@RequestParam`|用于访问 Servlet 请求参数,包括多部分文件。参数值将转换为声明的方法参数类型。|
|`@RequestHeader`|用于访问请求标头。标头值将转换为声明的方法参数类型。|
|`@CookieValue`|用于访问Cookie。Cookie 值将转换为声明的方法参数类型。|
|`@RequestBody`|用于访问 HTTP 请求正文。正文内容通过使用 `HttpMessageConverter` 实现转换为声明的方法参数类型。|
|`java.util.Map`, `org.springframework.ui.Model`, `org.springframework.ui.ModelMap`|共享域对象,并在视图呈现过程中向模板公开。|
|`Errors`, `BindingResult` |验证和数据绑定中的错误信息获取对象!|
获取原生对象示例:
```Java
/**
* 如果想要获取请求或者响应对象,或者会话等,可以直接在形参列表传入,并且不分先后顺序!
* 注意: 接收原生对象,并不影响参数接收!
*/
@GetMapping("api")
@ResponseBody
public String api(HttpSession session , HttpServletRequest request,
HttpServletResponse response){
String method = request.getMethod();
System.out.println("method = " + method);
return "api";
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南