1、SpringMVC的工作流程
用户发起请求到前端控制器。
前端控制器请求处理器映射器查找处理Handler,处理器映射器返回Handler。
前端控制器调用处理器适配器去执行handler, 执行完给适配器返回ModelAndView,处理器适配器向前端控制器返回ModelAndView。
前端控制器请求视图解析器去进行视图解析,视图解析器返回View。
前端控制器进行视图渲染,前端控制器向用户响应结果。
2、如何解决中文乱码问题
方案一:首先到web.xml配置CharacterEncodingFilter过滤器,将编码设置为UTF-8。
方案二:找到tomcat安装目录的server.xml,将对应端口的URIEncoding属性设置为UTF-8。
3、SpringMVC和Struts2的主要区别
SpringMVC中央控制器是一个servlet,Struts2是用过滤器实现的
SpringMVC是基于方法开发的,用形参传递参数(Spring是单实例的,形参传递安全),Struts2是基于类开发的,用类的属性传递参数(Struts是多实例的形参安全,可以用属性传递)
SpringMVC返回值是ModelAndView,Struts2直接返回视图
4、SpringMVC用什么对象从后台向前台传递数据
ModelMap:跳转传递
JSON:无跳转,无刷新
通过Model或者ModelAndView对象,将数据填充进去,然后返回。(两者区别:Model仅仅是封装数据,不会进行寻址,ModelAndView会寻址,并且要自己声明)
通过ModelMap对象,可以在这个对象里面用put方法,把对象加到里面,前台就可以通过el表达式拿到
5、SpringMVC怎么和AJAX相互调用
通过jackson框架直接把java对象转换成json对象返回。
步骤:
1、添加jackson依赖,
2、在配置文件中配置jackson相关的消息转换器,
3、在需要返回json的Controller方法上添加@ResponseBody注解。
6、SpringMVC的控制器是不是单例模式,如果是有什么问题,怎么解决
是单例模式,会用线程安全问题,解决方案是在控制器里面不能写字段,尽量使用局部变量。
7、SpringMVC中的控制器的注解一般用哪个,有没有别的注解可以替代
一般用@Controller,表示控制层,不能用别的注解代替。
8、什么是Rest
Rest是一种设计风格,可以理解网络上的操作都是操作资源,那么操作资源的四个动作就是Get、Delete、Put、Post。