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,需要程序员开发。
注意:编写 Handler 时按照 HandlerAdapter 的要求去做,这样适配器才可
以去正确执行 Handler
作用:接受用户请求信息,调用业务方法处理请求,也称之为后端控制器。
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 用来定义请求方式
@RequestMapping(value = "/hello",method = RequestMethod.GET)
@RequestMapping(path= "/hello",method = RequestMethod.POST)
一个简单的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";
}
}
版权归原作者 双非码农 所有, 如有侵权,请联系我们删除。