7.面试题——Spring MVC

1.什么是Spring MVC?

Spring MVC是Spring框架中的一个模块,它基于MVC(模型-视图-控制器)设计模式,为Web应用程序提供了一个全面的解决方案。Spring MVC作为一种轻量级的Web框架,主要用于构建Web应用程序的表述层(也称为表现层或前端控制层)。它通过将应用程序的不同部分(如数据访问、业务逻辑和表现层)分离,提高了应用程序的可维护性和可扩展性。

在Spring MVC中,用户请求首先被前端控制器(如DispatcherServlet)接收,然后根据请求信息将请求转发给相应的控制器(Controller)。控制器负责处理业务逻辑,并调用模型(Model)层来处理数据。处理完成后,控制器将结果返回给前端控制器,并由前端控制器选择合适的视图(View)来展示数据。视图层可以是JSP、Thymeleaf等模板引擎,用于将数据渲染成用户可读的格式,最终呈现给用户。

Spring MVC的优势在于它提供了良好的松耦合性、灵活的配置方式和丰富的功能扩展点,使得开发者能够更加方便地构建复杂的Web应用程序。同时,由于它是Spring框架的一部分,因此能够与其他Spring模块无缝集成,进一步简化了开发过程。

2.Spring MVC的流程?

(1)用户发送请求至前端控制器DispatcherServlet;
(2)DispatcherServlet收到请求后,调用HandlerMapping处理器映射器,请求获取Handler;
(3)处理器映射器根据请求url找到具体的处理器Handler,生成处理器对象及处理器拦截器(如果有则生成),一并返回给DispatcherServlet;
(4)DispatcherServlet 调用 HandlerAdapter处理器适配器,请求执行Handler;
(5)HandlerAdapter 经过适配调用 具体处理器进行处理业务逻辑;
(6)Handler执行完成返回ModelAndView;
(7)HandlerAdapter将Handler执行结果ModelAndView返回给DispatcherServlet;
(8)DispatcherServlet将ModelAndView传给ViewResolver视图解析器进行解析;
(9)ViewResolver解析后返回具体View;
(10)DispatcherServlet对View进行渲染视图(即将模型数据填充至视图中)
(11)DispatcherServlet响应用户。

3.Spring MVC的优点

(1)可以支持各种视图技术,而不仅仅局限于JSP;

(2)与Spring框架集成(如IoC容器、AOP等);

(3)清晰的角色分配:前端控制器(dispatcherServlet) ,请求到处理器映射(handlerMapping),处理器适配器(HandlerAdapter),视图解析器(ViewResolver)。

(4) 支持各种请求资源的映射策略。

4.SpringMVC常用的注解有哪些?

@RequestMapping:用于处理请求 url 映射的注解,可用于类或方法上。用于类上,则表示类中的所有响应请求的方法都是以该地址作为父路径。
@RequestBody:注解实现接收http请求的json数据,将json转换为java对象。
@ResponseBody:注解实现将conreoller方法返回对象转化为json对象响应给客户。

5.SpringMVC 统一异常处理的思想和实现方式

使用 SpringMVC 之后,代码的调用者是 SpringMVC 框架,也就是说最终的异常会抛到框架中,然后由框架指定异常处理类进行统一处理

  • 方式一: 创建一个自定义异常处理器(实现 HandlerExceptionResolver接口),并实现里面的异常处理方法,然后将这个类交给 Spring 容器管理
  • 方式二: 在类上加注解(@ControllerAdvice)表明这是一个全局异常处理类在 方 法 上 加 注 解(@ExceptionHandler), 在 ExceptionHandler 中有一个value 属性,可以指定可以处理的异常类型
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Retrograde-lx

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值