1、什么是Spring MVC?
Spring MVC是一个基于Java实现MVC设计模式请求驱动的轻量级Web框架,通过把模型-视图-控制器分离,将web层进行职责解耦,把复杂的web应用分成逻辑清晰的几部分,简化开发,减少出错,方便组内开发人员之间的配合。
2、Spring MVC的优点有那些?
1)可以支持各种视图技术,而不仅仅局限于JSP;
2)与Spring框架集成(如IoC容器、AOP等);
3)清晰的角色分配:
前端控制器(dispatcherServlet) ;
请求到处理器映射(handlerMapping);
处理器适配器(HandlerAdapter);
视图解析器(ViewResolver)。
4)支持各种请求资源的映射策略。
3、Spring MVC的主要组件?
1)DispatcherServlet:
中央控制器,把请求给转发到具体的控制类
2)Controller:
具体处理请求的控制器
3)HandlerMapping:
映射处理器,负责映射中央处理器转发给controller时的映射策略
4)ModelAndView:
服务层返回的数据和视图层的封装类
5)ViewResolver:
视图解析器,解析具体的视图
6)Interceptors :
拦截器,负责拦截我们定义的请求然后做处理工作
4、MVC是什么?
MVC是一种设计模式:
模型(model)
视图(view)
控制器(controller)
三层架构的设计模式,用于实现前端页面的展现与后端业务数据处理的分离。
5、MVC设计模式的好处有哪些?
分层设计,实现了业务系统各个组件之间的解耦,有利于业务系统的可扩展性,可维护性。
有利于系统的并行开发,提升开发效率。
6、Spring MVC常用的注解有哪些?
@RequestMapping+@Post/GetMapping:
用于映射一个url到一个类或方法上。
@RequestBody:
接收请求体的参数。
@RequestParam:
接收请求路径的参数。
@PathVariable:
接收路径参数。
@ResponseBody:
把返回对象转化为json对象响应给客户。
一般用@Controller注解定义控制器
也可以使用@RestController它相当于@ResponseBody + @Controller
7、Spring MVC怎么样设定重定向和转发的?
转发:
在返回值前面加"forward:"
如:“forward:user.do?name=method4”
重定向:
在返回值前面加"redirect:",
如:“redirect:http://www.baidu.com”
8、SpringMVC的返回值类型
1)ModelAndView:跳转页面,同时传输数据给前端
2)String
3)void …(HttpServletResponse resp)
重定向
try {
resp.sendRedirect(url);
} catch () {
…
}
4)自定义类型对象
9、SpringMvc的Controller是不是单例模式,如果是,有什么问题,怎么解决?
答:是单例模式,所以在多线程访问时会有线程安全问题。解决方案是尽量不要在Controller中写字段。



