Spring MVC 总体流程总结

Mode:将传输的数据封装成一个完整的载体
View:视图,用来展示或者输出的模块 HTML,JSP,JSON,STRING,SWING,xml
Control:控制交互的一个中间组建。根据用户的请求进行分发。

MVC用来解决用户和后台交互的问题

J2EE标准,JSP 页面是一个万能的组件,可以写HTML,js,java,

mvc框架,就是为了分开,分清 之前的框架,S’t’ru’ts1 ,Struts2,Webwork,SpringMVC :就是mvc的一个典范的实现。
M:支持将url参数,封装成一个Object 或者说 Map
V:自己只有一个默认的template ,支持拓展,自定义的view,而且能够自定义解析器。
C:把限制给减少了,现在随便一个类都可能作为C

配置阶段

  1. web.xml 配置一个Servlet DispatchServlet 作为SpringMVC的入口。
  2. 配置其中的init-param 固定属性名称contextConfigLocation 制定application.xml的 路径 通常会配置成 classpath:application.xml
  3. 配置 url的拦截。也就是请求路径的匹配。

初始化阶段

  1. applicationContextAware 当他实例化后会调用DispatchServlet的 doReFrush() initStrategies()方法 这个方法中有九个策略,每个策略有各自的 针对每天用户的请求,会经过这些策略之后才会返回。 每种策略可以自定义使用,最终的返回结果都是一样的,都是ModeAndView,这些策略就是我们常说的SpringMVC的九大组建。

处理阶段

1,首先是DispatchServlet 类的doService方法, 这个是用到了模板方法模式
2,这个方法中有个doDispatch方法 这个方法中最重要的方法就是getHandler 根据用户请求的url ,可以获得Controler中method
3,doDispatch方法中还有个 getHandlerAdapter方法,根据方法的参数,来自动的赋值。自动转型。 String 转int
4.doDispatch方法中 HandlerAdapter对象的handl方法,得到ModeAndView对象。
5,调用applyDefaultViewName方法
6,调用processDispatchResult方法 中调用ViewResolver 对象中,的 resoleViewName方法, 然后write() 这个就是response的方法,返回了

手写SpringMVC需要在哪个类添加东西呢

1,在HomeApplicationContext中加入了两个方法, getBeanDefinitionNames()也就是获取String[] 是beanNames
int getBeanDefinitionCount() 返回原来BeanDefinitionMaps的size()

我们会把HomeApplicationContext传给DispatcherServlet 对象。HomeApplicationContext其实就是implements BeanFactory的

2.所有的初始化都是在DispatcherServlet中的 i’ni’t’S’tategies()方法,其中又九大策略,我们写的三个initHandlerMapping() ,initHanderAdapter(),initViewResolver()。
3.执行方法 在DispatcherServlet 的 doDispatch() 方法中,调用了 getHander(req),和 ge’t’HandlerAdapter(hander)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值