一些web概念:
servlet:服务端小程序,用来接收并响应用户请求mvc介绍:mvc是,m(model),v(view),c(controller)的缩写.mvc是一种设计规范,将业务逻辑,数据,显示分离的方法来组织代码.mvc主要降低了业务以及视图之间的耦合度.mvc是一种架构模式,mvc架构
model(模型):数据模型,提供要展示的数据.数据格式,数据模型
view(视图):负责模型数据的展示,一般是用户页面
controller(控制器):接收用户请求,委托给模型进行处理,处理完毕后把返回的模型数据返回给视图,由视图负责进行展示,也就是控制器做了调度员的工作
spring mvc是spring 框架的一部分,全称为spring web mvc
用于处理请求的一个类
handler需要注册进springmvc的ioc容器中.**abstracturlHandlerMapping.registerhandler(urlPath,handler)**从spring ioc容器中获取handler的bean,再将bean与url放入handlerMap中保存供handlerMapping查询
用于映射url到具体处理类上
springmvc ioc容器会存储一个map,key为url路径,value为handler的Object
dispatcherservlet用于拦截用户的请求,根据用户的请求将它分配给指定handler处理,处理完成后返回给用户
dispcherServlet有doDispatch方法,其中调用getHandler方法,其中就根据handlermapping中注册的handlermap的urlPath查找指定的handler,并交给它处理.
浏览器发送请求
交给tomcat容器
web.xml中配置了/*,并且指向dispatcherservlet
前端控制器接收处理请求调用合适的处理器(controller)
找到@RequestMapping标记的方法,匹配路径
处理器处理,返回modelAndView–>前端控制器处理,返回
由视图处理器解析返回数据,找到映射路径的页面地址
dispatcher找到地址后返回给浏览器
所有项目的web.xml都继承tomcat的web.xml,在tomcat的xml中有一个defaultServlet的处理类,用来处理静态资源,但是我们编写自己的dispatcherservlet使用了/的方式,覆盖了tomcat的web.xml,所以所有的静态资源也需要经过前端控制器