什么是Spring MVC ?
Spring MVC是一个基于Java的实现了MVC设计模式的请求驱动类型的轻量级Web框架,通过把Model,View,Controller分离,将web层进行职责解耦,把复杂的web应用分成逻辑清晰的几部分,简化开发,减少出错。
Spring MVC的优点?
与Spring框架集成
可以支持各种视图技术,而不仅仅局限于JSP
清晰的角色分配:前端控制器,处理器适配器,视图解析器
说一下 spring mvc 运行流程?
1、DispatcherServlet前端控制器接收发过来的请求,交给HandlerMapping处理器映射器
2、HandlerMapping处理器映射器,根据请求路径找到相应的HandlerAdapter处理器适配器(处理器适配器就是那些拦截器或Controller)
3、HandlerAdapter处理器适配器,处理一些功能请求,返回一个ModelAndView对象(包括模型数据、逻辑视图名)
4、ViewResolver视图解析器,先根据ModelAndView中设置的View解析具体视图
5、然后再将Model模型中的数据渲染到View上
快速记忆技巧:
核心控制器捕获请求、
查找Handler、
执行Handler、
选择ViewResolver、
通过ViewResolver渲染视图并返回。
spring mvc 有哪些组件?
前端控制器(DispatcherServlet)
处理器映射器(HandlerMapping)
处理器适配器(HandlerAdapter)
拦截器(HandlerInterceptor)
语言环境处理器(LocaleResolver)
主题解析器(ThemeResolver)
视图解析器(ViewResolver)
文件上传处理器(MultipartResolver)
异常处理器(HandlerExceptionResolver)
数据转换(DataBinder)
消息转换器(HttpMessageConverter)
请求转视图翻译器(RequestToViewNameTranslator)
页面跳转参数管理器(FlashMapManager)
处理程序执行链(HandlerExecutionChain)
@RequestMapping 的作用是什么?
@RequestMapping是一个用来处理请求地址映射的注解,可用于类或者方法上。用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径。
@Autowired 的作用是什么?
@Autowired 是一个注释,它可以对类成员变量、方法及构造函数进行标注,让 spring 完成 bean 自动装配的工作。
SpringMVC中函数的返回值是什么?
1.ModelAndView
2.Viod
3.String
4.JSON
SpringMVC中控制器注解一般都用哪个?有没有别的注解可以替代?
1.一般都用@Controller注解
2.可以使用@RestController注解替代
SpringMVC常用注解有哪些?
1.@Controlelr
2.@RequestMapping
3.@RespondBoby
4.@PathVariable
5.@RequestParam
6.@ControllerAdvice
7.@ExceptionHandler
SpringMVC的异常处理?
1.使用@ExceptionHandler注解
2.实现HandlerExceptionResolve接口
3.使用@ControllerAdvice注解+@ExceptionHandler注解
SpringMVC怎样设定重定向和请求转发?
1.转发:在返回值前面加forward
2.重定向:在返回值前面加redirect
SpringMVC和struts2的区别?
1.springMVC的入口是一个servlet,而struts2是一个filter
2.SpringMVC是基于方法开发,而struts2是基于类开发
3.SpringMVC通过参数解析器将request请求内容解析,而struts2采用值栈储请求和响应数据