zoukankan      html  css  js  c++  java
  • SSM工作流程的大致理解

    //不是根据源码来理解的,所以细节有省略..

    首先从在浏览器输入URl的那一刻开始

    例如输入

    localhost:8080/MyProject/listCategory

    初始化:

    此时tomcat已经启动,于是tomcat将请求交给相应的Servlet去执行

    这里可以看到web.xml,里面有一个不是很熟悉的Servlet的名称:DispatcherServlet,可以看到他是在SpringMVC包下面的.

    Dispatcher顾名思义是分发的意思,所以,他是负责协调和组织不同组件完成请求处理并返回响应工作的"老大"

    在tomcat启动的同时,它会加载web.xml文件里面的相关配置,包括DispatcherServlet,与此同时SpringMVC的IOC容器也初始化完成

    <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xmlns="http://java.sun.com/xml/ns/javaee"
             xmlns:web="http://java.sun.com/xml/ns/javaee"
             xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5">
    
      <!--Spring配置-->
      <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:applicationContext.xml</param-value>
      </context-param>
      <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
      </listener>
    
    
      <!--SpringMVC设置-->
      <servlet>
        <servlet-name>Dispatcher</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
          <param-name>contextConfigLocation</param-name>
          <param-value>classpath:springMVC.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
      </servlet>
      <servlet-mapping>
        <servlet-name>Dispatcher</servlet-name>
        <url-pattern>/</url-pattern>
      </servlet-mapping>
    
    </web-app>
    View Code

    找合适的handler:

    DispatcherServlet 从容器中取出所有 HandlerMapping 实例(每个实例对应一个 HandlerMapping 接口的实现类)并遍历,每个 

    HandlerMapping 会根据请求信息,通过自己实现类中的方式去找到处理该请求的 Handler,比如Controller类中的方法

    但是找到相应的handler之后DispatcherServlet他自己是执行不了的,需要HandlerAdapter,于是他取出HandlerAdapter组件,根据

    handler选择与之匹配的HandlerAdapter来处理, 处理完成得到 ModelAndView

    解析成View

    这里会用到另外一个东西:InternalResourceViewResolver,由它把ModelAndView对象解析成View

    然后 View 会调用 render() 方法再根据 ModelAndView 中的数据渲染出页面

    结束

    参考的博客:https://www.cnblogs.com/tengyunhao/p/7518481.html

    还有how2java的网站:http://how2j.cn/k/ssm/ssm-tutorial/1137.html

    刚好今天把SSM复习了,所以想把流程全部来一遍,便写来了记一下,其实这中间还有许多细节,不过我觉得先对宏观有个了解吧

    之后还是会把细节过一遍的

  • 相关阅读:
    Kubernetes1.91(K8s)安装部署过程(一)--证书安装
    开源仓库Harbor搭建及配置过程
    有关centos7 图形化root用户登录
    linux服务器查看tcp链接shell
    django表格form无法保存评论排查步骤
    Redis 4.x 安装及 发布/订阅实践和数据持久化设置
    django博客项目-设置django为中文语言
    windows 环境下如何使用virtualenv python环境管理工具
    【转载】python中利用smtplib发送邮件的3中方式 普通/ssl/tls
    php安装phpize工具
  • 原文地址:https://www.cnblogs.com/Yintianhao/p/9984508.html
Copyright © 2011-2022 走看看