SSM工作流程的大致理解
Posted yintianhao
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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>
找合适的handler:
DispatcherServlet 从容器中取出所有 HandlerMapping 实例(每个实例对应一个 HandlerMapping 接口的实现类)并遍历,每个
HandlerMapping 会根据请求信息,通过自己实现类中的方式去找到处理该请求的 Handler,比如Controller类中的方法
但是找到相应的handler之后DispatcherServlet他自己是执行不了的,需要HandlerAdapter,于是他取出HandlerAdapter组件,根据
handler选择与之匹配的HandlerAdapter来处理, 处理完成得到 ModelAndView
解析成View
这里会用到另外一个东西:InternalResourceViewResolver,由它把ModelAndView对象解析成View
然后 View 会调用 render() 方法再根据 ModelAndView 中的数据渲染出页面
结束
刚好今天把SSM复习了,所以想把流程全部来一遍,便写来了记一下,其实这中间还有许多细节,不过我觉得先对宏观有个了解吧
之后还是会把细节过一遍的
以上是关于SSM工作流程的大致理解的主要内容,如果未能解决你的问题,请参考以下文章