ssm框架
早期 ssm == spring+strtuts2+mybatis
现在 ssm == spring+springweb+mybatis
springweb运行流程
1、SpringWeb概述
SpringWeb是spring框架中的一个模块,基于Servlet API构建的web框架,springweb是Spring为web层开发提供的一套完备的解决方案。在web层框架经历Strust1、webwork、Strust2等诸多产品历代更选之后的,目前业界普遍选择了springweb作为Java EE 项目web层开发的首选方案。
2、SpringWeb特点
1、SpringWeb是spring家族原生产品,于IOC容器等基础设施无缝对接。
2基于原生的Servlet,提供了一个前端控制器DispatcherServlet,开发者无需额外开发控制器对象。
3、可以自动绑定用户输入,并正确的转换数据类型。
4、代码清新简洁,大幅度提升开发效率。
5、内部组件或程度高,可拔插式组件即插即用。
5、性能卓著,尤其适合现代大型、超大型互联网项目要求。
3、SpringWeb运行流程
1、用户发请求到前端控制器DispatcherServlet,
2、前端控制器DispatcherServlet收到请求调用处理器映射器HandlerMapping
3、HandlerMapping找到具体的处理器(可查找 xml 配置或注解配置),生成处理器对象及处理器拦截器(如果有),再一起返回给 DispatcherServlet。
4、前端控制器DispatcherServlet调用处理器适配器HandlerAdapter,
5、HandlerAdapter经过适配调用具体的处理器Handler/Controller,
6、Controller执行向前端相应
4、SpringWeb组件
前端控制器:DispatcherServlet,不需要程序员开发,由框架提供,在web.xml进行配置
作用:统一处理请求和相应,是整个流程的控制中心,由它调用执行其他组件处理用户其他请求。
处理器映射器:HandlerMapping,不需要程序员开发,由框架提供
作用:根据请求的url查找处理器Controller
处理器适配器:HandlerAdapter不需要程序员开发,由框架提供
作用:按照特定规则((HandlerAdapter 要求的规则)执行Controller
处理器:Handler也称为Controller,需要程序员开发。
作用:接受用户请求信息,调用业务方法处理请求,也称之为后端控制器。
5、搭建SpringWeb
1、导入依赖 ,在之前的基础上导入SpringWeb的jar包
<!--springWeb--> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>5.2.2.RELEASE</version> </dependency>
2、配置DispatcherServlet,在web.xml文件中,以及配置spring核心请求分发器
<!--配置前端控制器DispatcherServlet--> <servlet> <servlet-name>application</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:spring.xml</param-value> </init-param> <load-on-startup>0</load-on-startup> </servlet> <!-- 请求映射 --> <servlet-mapping> <servlet-name>application</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping>
3、开启springWeb注解,在spring.xml文件中
<!--开启 springWeb 注解--> <mvc:annotation-driven></mvc:annotation-driven>
4、处理器搭建在web层
@RestController:让spring扫描,并创建扫描对象,简单来说就是交给Spring管理IOC容器
@RequestMapping(path = "/loginCtl")处理请求地址映射的注解,可以添加到类或者是方法上@RequestMapping 是一个用来为处理器地址映射的注解,可用于类或方法上. 作用在类上,在整个项目中不能重复,作用在方法上,整个类中不能重复. 常用属性 path,value,method. path 和 value 用来定义地址 method 用来定义请求方式
一个简单的web层示例,
package com.ffyc.ssm.web;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/*
* @RestController 让spring扫描,并创建扫描对象
* @RequestMapping(path = "/loginCtl") 定义类和方法的地址
*
* */
@RestController
@RequestMapping(path = "/loginCtl")//定义类的地址
public class LoginController {
@RequestMapping(path = "login")//定义方法的地址
public String login(){
System.out.println("登录");
return "success";
}
}