SpringMVC介绍
servlet的不便
- 一个servlet对应一个地址。地址太多不好管理。
- 优化:一个servlet中一个doget 一个doPost, 一个类有两个有效方法。(不理想)
- 设想:在一个类有多个方法,一个地址对应一个方法。但地址必须关联到类上,不能配到方法上。
- 解决:怎么把地址配到方法上—>springmvc(框架)
servlet:
问题:一个url对一个servlet,一个servlet是一个类,类多了不好管理。
SpringMVC:
- 用户发出请求,被DispatchServlet全部截下:处理所有请求(地址配成 * 或 /)
- DispatchServlet取出url、method(get、post)到HandlerMapping,通过key(url+method)找到value(类+方法)。
handler对象:类+方法。
对象有属性和方法:属性:类名、方法名 - 找到则返回Handler方法;找不到抛出404异常。
- 拿到Handler对象,找到HandlerAdapter(适配器)。适配器创建对象调用方法(通过反射)。
- 将方法的返回值,交给DispatchServlet。
- 拿到方法的返回值,交给视图解析器显示页面
(用户访问url–>找到servlet和doget方法–>serlvet被加载、创建对象init(),调用方法得到返回值–>返回值展示到页面上)
SpringMVC:统一管理url请求
HandleMapping:菜单
handlerAdapt适配器:方法