SpringMVC面经
一、SpringMVC工作原理
步骤 | 描述 |
---|---|
Step1 |
客户端(浏览器)发送请求,直接请求到DispatcherServlet。 DispatcherServlet是SpringMVC的核心组件,是请求的入口,负责协调各个组件的工作。 |
Step2 |
DispatcherServlet根据请求信息调用HandlerMapping(适配器),解析请求对应的Handle(也就是Controller处理器) HandleMapping是请求的处理器适配器,负责为请求找到合适的HandlerExecutionChain处理执行链,包括处理器(Handler)与拦截器等。 |
Step3 |
解析到Controller处理器后,开始到Service层执行具体业务逻辑,在Dao层对相应的数据进行操作。 |
Step4 |
处理器Controller完成业务逻辑后,会返回一个ModelAndView对象。其中Model是返回的数据对象,View是返回的逻辑视图。 |
Step5 |
接着ViewResolver(视图解析器)就会根据逻辑视图,根据视图名等信息,获得最终实际的View对象。 |
Step6 |
最后DispatcherServlet将Model对象中的数据传递给View视图进行视图渲染,把渲染后的View视图返回给请求者(浏览器),完成整个SpringMVC的工作流程。 |
二、SpringMVC的核心注解
注解 | 作用 |
---|---|
@Controller |
标记一个类作为SpringMVC的控制器。SpringMVC会扫描标记了该注解的类,然后扫描这个类下面带有@RequestMapping注解的方法,根据注解信息为该方法生成一个处理器对象。 |
@RestController |
@RestController = @ResponseBody + @Controller |
@RequestMapping |
用于配置处理器的HTTP请求(post/get),URL等信息,可以作用在类和方法上,这样MVC就会对该方法生成一个处理器对象。 |
@ResponseBody |
@Controller类下的返回对象都以JSON的形式返回。 |
@RequestParam |
从Body中获取参数。 |
@PathVariable |
从URL中获取参数。 |
三、SpringMVC拦截器
实现拦截器必须实现HandlerInterceptor,项目中的登录验证拦截就是在这里实现的。该接口中定义了三个方法:
方法 | 作用 |
---|---|
preHandle |
目标方法(Controller)执行之前,执行该方法 |
postHandle |
目标方法(Controller)执行之后,DispatcherServlet进行视图的渲染之前执行 |
afterCompletion |
在完成整个后端请求后执行 |
版权声明:本文为qq_43703196原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。