SpringMVC-获取Servlet原生对象
SpringMVC-获取Servlet原生对象
直接在形参列表中声明原生对象,即可直接使用
@Controller
public class ApiController {
// 直接使用原生对象
public void data(HttpServletRequest req, HttpServletResponse resp){
}
}
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 | 验证和数据绑定中的错误信息获取对象! |
servletContext
我们获取ServletContext对象的方式有三种:
- 通过request调用getServletContext方法
- 通过session调用getServletContext方法
- 通过@Autowired全局注入
调用方法方式
session也可以作为形参直接获取到对象
public class ApiController {
public void data(HttpServletRequest req, HttpServletResponse resp, HttpSession session) throws Exception {
ServletContext servletContext = req.getServletContext();
ServletContext servletContext1 = session.getServletContext();
}
}
全局注入方式
在SpringMVC的初始化时,已经将Context对象放入IoC容器中了
使用@Autowired注解将其注入到全局变量中即可
@Controller
public class ApiController {
@Autowired
private ServletContext servletContext;
}
SpringMVC-获取Servlet共享域对象
上面的内容已经可以获取三大域对象了,但除此之外,SpringMVC也提供了三大域对象的获取方式
获取request对象
Spring额外提供了四种在request域中存放数据的方式:
- model
- modelMap
- map
- modelAndView
以上内容了解即可,当看到了别蒙