二 【SSM】学习笔记——SpringMVC入门

原视频链接:https://www.bilibili.com/video/BV1Fi4y1S7ix/?p=43&spm_id_from=pageDriver&vd_source=8ae265768486246506e74053a00b60db P43~P74
目录
  • 一、SpringMVC简介
    • 1.1、SpringMVC入门案例
    • 1.2、bean加载控制
    • 1.3、PostMan简介
    • 1.4、SpringMVC解决Post请求中文乱码问题
  • 二、请求与响应
    • 2.1、请求的映射路径
    • 2.2、请求参数传递
一、SpringMVC简介SpringMVC是一种基于Java实现MVC模型的轻量级Web框架,有使用简单,开发便捷(相比于Servlet)的优点,同时灵活性强
回顾使用Servlet开发表现层的流程
二 【SSM】学习笔记——SpringMVC入门

文章插图
Web程序通过浏览器访问页面,前端页面使用异步提交的方式发送请求到后端服务器 。后端服务器采用表现层、业务层、数据层的三层式架构进行开发 。页面发送的请求由表现层接收,获取到用户的请求参数后,将请求传送到业务层,再由业务层访问数据层,得到用户想要的数据后,将数据返回给表现层 。表现层拿到数据以后,将数据转换为json格式发送给前端页面,前端页面接收数据后解析数据,组织成用户浏览的最终页面信息交给浏览器
1.1、SpringMVC入门案例①:使用SpringMVC技术需要先导入SpringMVC坐标与Servlet坐标
<dependency><groupId>javax.servlet</groupId><artifatId>javax.servlet-api</artifactId><version>3.1.0</version><scope>provided</scope></dependency><dependency><groupId>org.springframework</groupId><artifatId>spring-webmvc</artifactId><version>5.2.10.RELEASE</version></dependency>②:创建SpringMVC控制器类(等同于Servlet功能)
//2.1使用Controller定义bean@Controllerpublic class UserController {//2.2设置当前操作的访问路径@RequestMapping("/save")//2.3设置当前操作的返回值类型@ResponseBodypublic String save(){System.out.println("user save ...");return "{'info':'springmvc'}";}}③:初始化SpringMVC环境(同Spring环境),设定SpringMVC加载对于的bean
@Configuration@ComponentScan("com.itheima.controller")public class SpringMvcConfig {}④:初始化Servlet容器,加载SpringMVC环境,并设置SpringMVC技术处理的请求
//4.1AbstractDispatcherServletInitializer类是SpringMVC提供的快速初始化web3.0容器的抽象类//AbstractDispatcherServletInitializer提供了三个接口方法供用户实现public class ServletContainersInitConfig extends AbstractDispatcherServletInitializer {//创建Servlet容器时,加载springMVC对应的bean并放入webApplicationContext对象中//而WebApplicationContext的作用范围为ServletContext范围,即整个web容器范围protected WebApplicationContext createServletApplicationContext() {AnnotationConfigWebApplicationContext ctx = new AnnotationConfigWebApplicationContext();ctx.register(SpringMvcConfig.class);return ctx;}//设定SpringMVC对应的请求映射路径,设置为/表示拦截所有请求,任意请求都将转入到SpringMVC进行处理protected String[] getServletMappings() {retrun new String[]{"/"};}//如果创建Servlet容器时加载非SpringMVC对应的bean,使用当前方法进行,使用方法同createServlertApplicationContext()protected WebApplicationContext createRootApplicationContext() {retrun null;}}在案例中有几个新的注解:
@Controller类型:类注解位置:SpringMVC控制器类定义上方作用:设定SpringMVC的核心控制器bean
@Controllerpublic class UserController{}@RequestMapping类型:方法注解位置:SpringMVC控制器方法定义上方作用:设置当前控制器方法请求访问路径
@RequestMapping("请求访问路径")public void save(){System.out.println("user save ...");}

经验总结扩展阅读