概念
SpringMVC是一个轻量级的Web框架,通过模型-视图-控制器三层架构,对前端页面渲染和后端数据处理进行分离,实现解耦,提高开发效率和可维护性。
核心组件
前端控制器(dispatchServlet),接受请求,响应结果,相当于转发器,具有分发功能
处理器映射器(handlerMapping),根据URL来寻找Handler
处理器适配器(handlerAdapter)
处理器(handler),需要我们自己开发
视图解析器(ViewResolver),进行视图解析,根据视图逻辑解析成真正的视图
视图(view):需要我们自己开发页面
流程
过程:用户发送请求到DispatherServlet,经由DispatherServlet发送请求到HandlerMapping中,就是去spring的配置中根据name,class属性去查找handler返回给DispatherServlet。
然后再将handler发送给HandlerAdapter,根据handler在控制层进行处理,返回modelandview到DispatherServlet,然后发送modelandview到ViewResolver进行视图解析,返回视图对象,经过view进行渲染返回真正的视图,然后响应给客户端。
MVC框架(三层架构的设计模式)
1.model
2.view
3.controller
Spring MVC常用的注解
@RequestMapping:用于类和方法上,标注处理请求的路径,其中value属性用来指定URL地址,method指定请求类型,GET、POST、PUT、DELETE等
@ResponseBody:将对象转换为Json字符串
@RequestBody:将Json字符串转换给Java对象
@RestController:相当于@ResponseBody + @Controller
@PathVariable:实现RestFul风格时用的注解,能够在URL地址值中,获取变量值
@RequestMapping
@RequestParam注解的作用
从前端传过来的Request中获取参数,标注在方法的形参上
@Controller注解的作用
@Controller标记在类上,被它标记的类就是Spring MVC中的Controller对象。能够对请求进行处理,返回ModelAndView对象。
Spring MVC如何实现重定向和转发
转发:在返回值前加上“forward”
重定向:在返回值前加上“redirect”
WebApplicationContext
继承自ApplicationContext的一个接口,对ApplicationContext进行了扩展,它是为web开发准备的,它允许从相对于Web根目录的路径中装载配置文件完成初始化。它新增了作用域:request/session/global session。它的实现类有XMLWebApplicationContext和AnnotationConfigWebApplicationContext。