SpringMVC常用注解
@RequestMapping 指定请求资源路径**
@ResponseBody 注解表示将该方法的返回值 直接返回到客户端,一般我们返回的都是 json
@RequestBody 接收前台 json参数
@RequestParam 接收前台表单参数 key = value 形式参数 ? a=1 & b=2
@PathVariable 获取路径参数的** http:ip:port/user/{id}
@RestController 相当于 @ResponseBody 和 @Controller的合体
@ControllerAdvice controller的增强注解,用于统一处理功能:如统一异常处理
@ExceptionHandler 异常处理
@CookieValue 指定cookie中的参数
@RequestHeader 指定请求消息头中的参数
SpringMVC的运行流程
- 用户发送请求到 前端控制器DispatcherServlet
- 前端控制器 收到请求后 调用 处理器映射器HandlerMapping,请求获取Handle
- 处理器映射器 根据 请求的url 找到具体的处理器,生成 处理器对象及处理器拦截器(如果有则生成)一并返回给 前端控制器
- 前端控制器 调用 处理器适配器HandlerAdapter
- 处理器适配器HandlerAdapter 经过适配调用 具体的处理器(Handler--》也叫后端控制器)
- Handler 执行完后 返回 视图对象ModelAndView
- 处理器适配器HandlerAdapter 把后端控制器的执行结果ModelAndView 返回给 前端控制器DispacherServlet
- 前端控制器DispacherServlet 把 视图对象 传递给 ViewResolver视图解析器 进行解析
- 视图解析器ViewResolver 解析完成后返回 具体视图View
- DispacherServlet 再对 View 进行渲染视图(即 把模型数据填充至视图中)
- DispacherServlet 响应用户
过滤器、拦截器、Aop的区别
过滤器(Filter):
在 Java Web 中,过滤器是 Servlet 的一种。它的主要作用是对用户请求进行拦截和过滤,用来修改请求、响应和头信息。过滤器的使用范围很广,可以用来做权限控制、字符编码转换、日志记录等功能。
拦截器(Interceptor):
拦截器是 Spring 框架中的一种组件,它可以在具体的方法执行前、执行后或者执行异常时进行拦截。拦截器与 Servlet Filter 不同,它可以直接访问 Spring 容器中的 Bean。
AOP(Aspect Oriented Programming):
AOP 是一种编程思想,它是面向对象编程(OOP)的补充和扩展,它的主要作用是对业务逻辑进行拦截和增强。在 Spring 框架中,AOP 可以很好地解耦业务逻辑,实现横切关注点功能,比如日志记录、安全控制等。
总结:
过滤器和拦截器在功能和作用上有些相似,都可以对请求进行拦截和处理。而 AOP 则是一种更高级的编程思想,它通过代理的方式将剥离出来的逻辑和代码动态地织入业务逻辑中,从而实现代码的复用和解耦。
SpringMVC如何上传图片
以上均为个人理解,侵删
有不对的地方或者欠缺的地方,欢迎各位大佬补充