1. springMvc用来干什么的
springmvc是一个基于java的轻量级的web框架,将model, view, controller进行分离简化开发
SpringMVC优点:支持各种视图技术,与spring框架集成,清晰的角色分配,支持各种请求资源的映射策略
支持各种视图技术与spring集成
三层架构: 表现层, 业务层, 持久层
可以和其他spring框架进行无缝集成
Springmvc和struts2共同点和不同点:
共同点:①都是表现层框架都是基于mvc模型编写的
②底层都离不开servletapi
③处理请求的机制都是一个核心控制器
不同点:①springmvc的接口是servlet,Struts2的接口是filter
②springmvc是基于方法设计的,Struts2是基于类设计的
Springmvc使用更加简洁
2. springmvc常用的注解
@component, @repository , @service, @attribute, @controller, @requestMapping, @resources, @autowried, @pathvariable, @requestparam, @responsebody, @ModelAttribute, @sessionattribute
3. Springmvc如果返回json字符串怎么办
使用@ResponseBody 注解返回响应体 直接将返回值序列化json
4. 控制器的@controller是干什么的
@controller负责定义和调用view

5. SpringMVC运行流程
①、发起请求到前端控制器(DispatcherServlet )
②、前端控制器请求HandlerMapping查找Handler(可以根据xml、注解进行查找)
③、处理器映射器HandlerMapping向前端控制器DispatcherServlet 返回Handler
④、前端控制器DispatcherServlet 调用处理器适配器HandlerAdapter 执行Handler
⑤、处理器适配器HandlerAdapter 执行Handler
⑥、Handler执行完给处理器适配器返回ModelAndView
⑦、处理器适配器向前端控制器返回ModelAndView (ModelAndView 是SpringMvc的底层对象 包括model和view)
⑧、前端控制器请求视图解析器去解析视图
  根据逻辑视图名解析成真正的视图(jsp)
⑨、视图解析器向前端控制器返回view
⑩、前端控制器进行视图渲染
  视图渲染将模型数据(模型数据在ModelAndView对象中)填充到request域
十一、前端控制器向用户响应结果
6. Springmvc和springBoot的区别
不同:
springmvc是基于servlet的一个mvc框架 , 打包后是war包
springBoot是一套基于spring的快速开发整合包 , 打包后是jar包
相同:
基础都是ioc和aop
7. SpringMVC组件:前端控制器,视处理映射器,处理适配器,处理器handler,视图解析器viewresolver,视图view
**8. SpringMVC异常处理:**抛给spring
**9. SpringMVC怎么和ajax交互:**通过jackson框架就可以吧java中的对象直接转化为js可识别的json对象
**10. SpringMVC是单例模式再多线程访问时有线程安全问题,不可以同步否则影响性能
解决方法:在控制器中不可写字段