zoukankan      html  css  js  c++  java
  • SpringMvc

    ⑴ 用户发送请求至前端控制器DispatcherServlet

    ⑵ DispatcherServlet收到请求调用HandlerMapping处理器映射器。

    ⑶ 处理器映射器根据请求url找到具体的处理器,生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet。

    ⑷ DispatcherServlet通过HandlerAdapter处理器适配器调用处理器

    ⑸ 执行处理器(Controller,也叫后端控制器)。

    ⑹ Controller执行完成返回ModelAndView

    ⑺ HandlerAdapter将controller执行结果ModelAndView返回给DispatcherServlet

    ⑻ DispatcherServlet将ModelAndView传给ViewReslover视图解析器

    ⑼ ViewReslover解析后返回具体View

    ⑽ DispatcherServlet对View进行渲染视图(即将模型数据填充至视图中)。

    ⑾ DispatcherServlet响应用户。

    2,手写springmvc 

    1,servetDispatcher extends HttpServlet

       初始化阶段:

       1,通过扫包,通过反射

         所有标注@Controller 的类

         类上所有标注@RequestMapping

         方法上所有标注@RequestMapping 

         类上的url + 方法上的url ,方法名存入 conrrenthashmap

        2,doservice(); 

       3,客户端发送请求,根据url找到对应的方法,调用视图转换器渲染给页面展示

    3,servlet

    Java Servlet 是运行在 Web 服务器或应用服务器上的程序,它是作为来自 Web 浏览器或其他 HTTP 客户端的请求和 HTTP 服务器上的数据库或应用程序之间的中间层。

    Servlet 生命周期:

    Servlet 加载—>实例化—>服务—>销毁。

    init():

    Servlet的生命周期中,仅执行一次init()方法。它是在服务器装入Servlet时执行的,负责初始化Servlet对象。可以配置服务器,以在启动服务器或客户机首次访问Servlet时装入Servlet。无论有多少客户机访问Servlet,都不会重复执行init()。

    service():

    它是Servlet的核心,负责响应客户的请求。每当一个客户请求一个HttpServlet对象,该对象的Service()方法就要调用,而且传递给这个方法一个请求ServletRequest)对象和一个响应ServletResponse)对象作为参数。在HttpServlet中已存在Service()方法。默认的服务功能是调用与HTTP请求的方法相应的do功能。

    destroy():

    仅执行一次,在服务器端停止且卸载Servlet时执行该方法。当Servlet对象退出生命周期时,负责释放占用的资源。一个Servlet在运行service()方法时可能会产生其他的线程,因此需要确认在调用destroy()方法时,这些线程已经终止或完成。

  • 相关阅读:
    zabbix短信网关调用问题总结
    zabbix短信接口调用
    Windows Open with Sublime Text
    [转载]windows下安装Python虚拟环境virtualenvwrapper-win
    Resilio-sync auto restart
    django-orm-standalone
    RabbitMQ笔记
    RabbitMQ启动出错:- unable to connect to epmd on xxxx: timeout (timed out)
    [Python笔记]第十六篇:web框架之Tornado
    [前端笔记]第三篇:JavaScript
  • 原文地址:https://www.cnblogs.com/pickKnow/p/11163886.html
Copyright © 2011-2022 走看看