SSM运行原理
ssm框架:包括,springMVC -- spring -- mybatis
springMVC 是基于MVC的框架
属于MVC框架的还有:Struts1 Struts2 SpringMVC
获取值得方式:
Struts1 actionForm(javabean中继承)
Struts2 通过 set get 方法
SpringMVC 参数获取 (直接获取,eg:list(String name))
核心:
Struts1actionServlet 单例
Struts2 filterdispatcher 多例
SpringMVC dispatcherServlet单例
SpringMVC:
核心控制器:DispatcherServlet
请求解析器:HandlerMapping
结果解析器:ModelAndView
视图解析器:ViewResolver
SSM项目服务启动:
项目进入web.xml
ssm框架 中web.xml执行顺序
1.<!--spring 的监听器-->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
2<!-- spring 主配置文件的 路径 和名字 -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring.xml</param-value>
</context-param>
.在启动Web 容器时,自动装配Spring applicationContext.xml 的配置信息。(先执行spring的监听器,因为它实现了ServletContextListener 这个接口,在web.xml 配置这个监听器,启动容器时,就会默认执行它实现的方法。在ContextLoaderListener 中关联了ContextLoader 这个类,所以整个加载配置过程由ContextLoader 来完成
spring 在 web 下的入口在配置文件 web.xml 的监听器中
)
3<!-- 过滤器 编码格式 -->
<filter>
<filter-name>Encoding</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>Encoding</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
4<!-- springMVC的核心控制 -->
<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!-- 自定义springMVC。xml 的路径 和 名字 -->
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring-mvc.xml</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>*.action</url-pattern>
</servlet-mapping>
运行流程:
1.jsp(view)发送请求
2.通过核心控制器DispatcherServlet调用请求解析器:HandlendMapping对请求进行解析,通过映射关系匹配到Controller层
3.在控制层调用业务逻辑层(service),数据持久层(DAO)返回控制层,请求完成获取一个结果,设置一个要跳转的视图,(ModelAndView装载并传输数据,设置视图)
4.核心控制器调用 视图解析器:ViewResolver解析视图,匹配相应的页面实现页面跳转