【SpringMvc】从Servlet的HttpServlet到SpringMVC的DispathServlet到Springboot的RequestMapping

1.0

众所周知,一个http请求到我们服务器(web容器/tomcat/jetty(servlet)) 就会约定俗成去访问webapp路径下的web.xml配置文件,首先读取的是两个节点: listener 和 context-param 监听器和上下文参数,然后读取上下文参数并创建一个serveltContext,这个WEB项目所有部分都将共享这个上下文对象。读取context-param, 并随即创建一个监听类对象。WEB容器的加载顺序是:ServletContext -> context-param -> listener -> filter -> servlet。并且这些元素可以配置在文件中的任意位置。这样请求就会去匹配我们定义好的路径url寻找相对的servlet处理类进行匹配处理。所以我们在配置文件里面有很多配置,比如
上下文context-param可以配置到上下文对象共享,来配置数据库,因为它是先于容器启动处理的,
还有监听器,过滤器,字符编码的处理的,敏感字符的处理,还有servlet的处理类,路径,次序,
jsp的欢迎页和404等。

init service(request,response) destory

但是我们一般是去实现他的抽象子类HttpServlet
里面有:

doget dopost

细化请求方式了
至于其他的GenericServlet 知道就行
里面也有几个方法有用到就可以去实现

另外还有可以得到Servlet对象,还有ServletConfig
还有request和response里面的信息。

2.0

当过渡到2.0 Springmvc就帮我们弄了一个核心前端控制器dispathcherServlet,其实就是底层封装了servlet,丰富了功能,区别还是在于我们的配置文件不需要写很多servlet,而是通过一个核心控制类dispatherServlet去接收所有请求,然后同时用处理器映射器,处理器适配器去匹配扫入容器的处理类路径,对比成功即处理。
DispatcherServlet实质也是一个HttpServlet。DispatcherSevlet负责将请求分发,所有的请求都有经过它来统一分发。
容器开启,会去读取web.xml其实就是配置,然后找到springmvc的配置文件,然后springmvc配置文件不是配置了注解扫描吗然后可以转发给dispatherServlet让他根据请求的参数调用HandlerMapping匹配然后调用视图解析器返回

细化
DispathcherServlet拦截后,会调用HandlerMapping进行处理生成Handler再一起返回DispathcherServlet,内容是HandlerMapping的一个(classbeanname/beanname)controllerhandlermapping会把controller层的处理类以map为容器放进去进行注册,然后在根据传进来的url进行查找.处理器映射器根据请求url找到具体的处理器Handler,生成处理器对象及处理器拦截器(如果有则生成),一并返回给DispatcherServlet;

再细化
返回给DispathcerServlet之后,调用 HandlerAdapter处理器适配器,请求执行Handler;HandlerAdapter根据DispathcerServlet传来的controller信息先进行注册再 经过适配调用 具体处理器进行处理业务逻辑Handler执行完成返回ModelAndView给DispatcherServlet;;

再再细化
DispatcherServlet将ModelAndView()传给ViewResolver视图解析器进行解析生成view传回页面;

再再进行细化
DispatcherServlet对View进行渲染视图(即将模型数据填充至视图中)再返回客户端

3.0

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值