1、介绍
MVC是一种软件架构模式,它把软件系统分为三个部分:模型(Model)、View(视图)、Controller(控制器)。
优势:
- 能够做到代码重用。
- 分层设计,利于维护和扩展。
- 可以更好的分工。
SpringMVC优势:
天生与spring框架集成(Ioc,AOP)
支持灵活的url到页面控制器的映射。
等等。
2、实现逻辑
当控制器接受到一次请求时,它会把得到的URL拿到handleMapping映射器去查找。
handleMapping中有两种映射方式。
第一种是beanNameMapping,一个url对应一个类的全限定名。如果请求来的url在这里找到了,那么就获得字节码,创建对象,通过接口回调技术调用doGet或者doPost方法。
第二种是annotationMethodMapping,一个url对应一个方法。根据全限定名得到字节码,然后创建对象。根据对象知道方法,如果方法无参数,就可以直接通过invoke动态调用方法。如果方法有参数,就需要先给参数装配值,然后动态调用该方法。调用完方法之后,需要看看如何处理数据,如果action是json,就返回json,基本类型就直接返回,jsp就返回jsp。