【Spring教程23】Spring框架实战:从零开始学习SpringMVC 之 SpringMVC简介与SpringMVC概述

这篇具有很好参考价值的文章主要介绍了【Spring教程23】Spring框架实战:从零开始学习SpringMVC 之 SpringMVC简介与SpringMVC概述。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

欢迎大家回到《Java教程之Spring30天快速入门》,本教程所有示例均基于Maven实现,如果您对Maven还很陌生,请移步本人的博文《如何在windows11下安装Maven并配置以及 IDEA配置Maven环境》,本文的上一篇为《Spring事务角色与 Spring事务属性、事务传播行为》
【Spring教程23】Spring框架实战:从零开始学习SpringMVC 之 SpringMVC简介与SpringMVC概述,# SSM与SpringBoot教程,Java教程,spring,学习,hive

1,SpringMVC简介

从这一节开始,我们开始学 习SpringMVC,看到SpringMVC这个名字我们会发现其中包含Spring,那么SpringMVC和Spring之间的会有关系么?答案是肯定有,SpringMVC隶属于Spring,是Spring技术中的一部分。那么SpringMVC到底是用来做什么的呢?

  • 回想web阶段,我们学习过Servlet,而SpringMVC与Servlet技术功能等同,均属于web层或者说表现层开发技术。

那么既然已经有了Servlet为什么还需要花时间再学习一个SpringMVC技术?要回答这个问题,我们
就需要搞清楚SpringMVC与Servlet相比,有什么优势:

框架我们都知道是用来简化开发的,所以SpringMVC与Servlet相比,开发起来更简单快捷,用更少的代码完成表现层代码的开发,那么问题又来了,到底有多简单呢?我们通过一个例子来体验一把吧。

将资料中的项目导入到IDEA中,打开后格式如下
【Spring教程23】Spring框架实战:从零开始学习SpringMVC 之 SpringMVC简介与SpringMVC概述,# SSM与SpringBoot教程,Java教程,spring,学习,hive

  • UserSaveServlet:使用Servlet开发的用户新增模块
@WebServlet("/user/save")
public class UserSaveServlet extends HttpServlet{
	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException {
		//1.接收请求参数
		String name = req.getParameter("name");
		System.out.println("servlet save name ==> " + name);
		//2.生产响应
		resp.setContentType("text/json;charset=utf-8");
		PrintWriter pw = resp.getWriter();
		pw.write("{'module':'servlet save'}");
	}
	
	@Override
	protected void doPost(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException {
		this.doGet(req,resp);
	}
}
  • UserUpdateServlet:使用Servlet开发的用户修改模块
@WebServlet("/user/update")
public class UserUpdateServlet extends HttpServlet{
	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException {
	//1.接收请求参数
	String name = req.getParameter("name");
	System.out.println("servlet update name ==> " + name);
	 //2.生产响应
	resp.setContentType("text/json;charset=utf-8");
	PrintWriter pw = resp.getWriter();
	 pw.write("{'module':'servlet update'}");
}

@Override
	protected void doPost(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException {
		this.doGet(req,resp);
	}
}
  • UserDeleteServlet:使用Servlet开发的用户删除模块
@WebServlet("/user/delete")
public class UserDeleteServlet extends HttpServlet {
	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException {
		//1.接收请求参数
		String name = req.getParameter("name");
		System.out.println("servlet delete name ==> " + name);
		//2.生产响应
		resp.setContentType("text/json;charset=utf-8");
		PrintWriter pw = resp.getWriter();
		pw.write("{'module':'servlet delete'}");
	}

	@Override
	protected void doPost(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException {
		this.doGet(req,resp);
	}
}
  • UserSelectServlet:使用Servlet开发的用户查询模块
@WebServlet("/user/select")
public class UserSelectServlet extends HttpServlet{

	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp)
	throws ServletException, IOException {
		//1.接收请求参数
		String name = req.getParameter("name");
		System.out.println("servlet select name ==> " + name);
		//2.生产响应
		resp.setContentType("text/json;charset=utf-8");
		PrintWriter pw = resp.getWriter();
		pw.write("{'module':'servlet select'}");
	}
	
	@Override
	protected void doPost(HttpServletRequest req, HttpServletResponse resp)
	throws ServletException, IOException {
		this.doGet(req,resp);
	}
}

启动项目,测试结果如下:
【Spring教程23】Spring框架实战:从零开始学习SpringMVC 之 SpringMVC简介与SpringMVC概述,# SSM与SpringBoot教程,Java教程,spring,学习,hive
上面就是通过Servlet的方式来实现的用户模块的增删改查功能。那么如果使用SpringMVC来开发相
同的功能,做出来是什么样子的呢?

打开项目springmvc包下的UserController类,内容如下:

@Controller
public class UserController {

	@RequestMapping("/save")
	@ResponseBody
	public String save(String name){
		System.out.println("springmvc save name ==> " + name);
		return "{'module':'springmvc save'}";
	}
	
	@RequestMapping("/delete")
	@ResponseBody
	public String delete(String name){
		System.out.println("springmvc delete name ==> " + name);
		return "{'module':'springmvc delete'}";
	}
	
	@RequestMapping("/update")
	@ResponseBody
	public String update(String name){
		System.out.println("springmvc update name ==> " + name);
		return "{'module':'springmvc update'}";
	}
	
	@RequestMapping("/select")
	@ResponseBody
	public String select(String name){
		System.out.println("springmvc select name ==> " + name);
		return "{'module':'springmvc select'}";
	}
}

启动项目,测试结果如下:
【Spring教程23】Spring框架实战:从零开始学习SpringMVC 之 SpringMVC简介与SpringMVC概述,# SSM与SpringBoot教程,Java教程,spring,学习,hive
通过两种技术对相同功能的实现,我们会发现打印输出的结果是一样的,但是对比编写的代码会发现
SpringMVC这种开发方式更简单、更高效

所以接下来我们就需要来学习下SpringMVC这门技术,主要学习那些内容呢?

学习之前大家需要记住一件事是,SpringMVC是用来替换Servlet的,所以Servlet能实现的,
SpringMVC就能实现,主要学习的内容包含如下模块:

  • SpringMVC简介
  • 请求与响应
  • REST风格
  • SSM整合(注解版)
  • 拦截器
    【Spring教程23】Spring框架实战:从零开始学习SpringMVC 之 SpringMVC简介与SpringMVC概述,# SSM与SpringBoot教程,Java教程,spring,学习,hive

SpringMVC简介:主要是来认识下到底什么是SpringMVC。

请求与相应:SpringMVC是替换Servlet处于Web的框架,所以其主要的作用就是用来接收前端发过来的请求和数据然后经过处理并将处理的结果响应给前端,所以如何处理请求和响应是SpringMVC中非常重要的一块内容。

REST风格:是一种软件架构风格,可以降低开发的复杂性,提高系统的可伸缩性,在以后开发中非常重要和常用。

SSM整合:是把咱们所学习的SpringMVC+Spring+Mybatis整合在一起来完成业务开发,是对我们所学习这三个框架的一个综合应用。

拦截器:是SpringMVC中的一个小知识点。

对于SpringMVC的学习,最终要达成的目标:

  1. 掌握基于SpringMVC获取请求参数和响应json数据操作
  2. 熟练应用基于REST风格的请求路径设置与参数传递
  3. 能够根据实际业务建立前后端开发通信协议并进行实现
  4. 基于SSM整合技术开发任意业务模块功能
    【Spring教程23】Spring框架实战:从零开始学习SpringMVC 之 SpringMVC简介与SpringMVC概述,# SSM与SpringBoot教程,Java教程,spring,学习,hive

下面我们就进入SpringMVC这一章内容的学习,在这一章中,我们主要学习如下内容:

  • SpringMVC概述
  • 入门案例
  • 入门案例工作流程分析
  • Controller加载控制
  • PostMan

本章的核心内容为:入门案例和入门案例工作流程分析。

2、SpringMVC概述

我们要学习的SpringMVC究竟是一门什么技术呢?

【Spring教程23】Spring框架实战:从零开始学习SpringMVC 之 SpringMVC简介与SpringMVC概述,# SSM与SpringBoot教程,Java教程,spring,学习,hive
【Spring教程23】Spring框架实战:从零开始学习SpringMVC 之 SpringMVC简介与SpringMVC概述,# SSM与SpringBoot教程,Java教程,spring,学习,hive

当前WEB程序的工作流程:
三层架构

  • web程序通过浏览器访问前端页面,发送异步请求到后端服务器
  • 后台服务器采用三层架构进行功能开发
    • 表现层负责接收请求和数据然后将数据转交给业务层
    • 业务层负责调用数据层完成数据库表的增删改查,并将结果返给表现层
    • 表现层将数据转换成json格式返回给前端
  • 前端页面将数据进行解析最终展示给用户。

表现层与数据层的技术选型:

  • 数据层采用Mybatis框架
  • 表现层采用SpringMVC框架,SpringMVC主要负责的内容有:
    • controller如何接收请求和数据
    • 如何将请求和数据转发给业务层
    • 如何将响应数据转换成json发回到前端

介绍了这么多,最后我们来对SpringMVC一个概述:

  • SpringMVC是一种基于Java实现MVC模型的轻量级Web框架
  • 优点
    • 使用简单、开发便捷(相比于Servlet)
    • 灵活性强

这里所说的优点,就需要我们再使用的过程中慢慢体会。从下一节开始,我们将正式开始SpringMVC的学习。文章来源地址https://www.toymoban.com/news/detail-773503.html

到了这里,关于【Spring教程23】Spring框架实战:从零开始学习SpringMVC 之 SpringMVC简介与SpringMVC概述的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 从零开始的Django框架入门到实战教程(内含实战实例) - 01 创建项目与app、加入静态文件、模板语法介绍(学习笔记)

      Django是目前比较火爆的框架,之前有在知乎刷到,很多毕业生进入大厂实习后因为不会git和Django框架3天就被踢掉了,因为他们很难把自己的工作融入到整个组的工作中。因此,我尝试自学Django并整理出如下笔记。   在这部分,我将从Django的安装讲起,从创建项目到制

    2024年02月09日
    浏览(48)
  • Kubernetes超详细教程,一篇文章帮助你从零开始学习k8s,从入门到实战

    k8s github地址:https://github.com/kubernetes/kubernetes 官方文档:https://kubernetes.io/zh-cn/docs/home/ k8s,全程是 kubernetes,这个名字源于希腊语,意为\\\"舵手\\\"或\\\"飞行员” k8s 这个缩写是因为 k 和 s 之间有八个字符 Google 在2014年开源了 k8s 项目,k8s 是一个用于 自动化部署、扩展和管理容器化

    2024年04月14日
    浏览(70)
  • [Java优选系列第2弹]SpringMVC入门教程:从零开始搭建一个Web应用程序

    想和你们分享我眼里的代码世界🗺️  优选系列持续更新中💫 一直在等你,你终于来啦💖                            绿色代表解释说明                 黄色代表重点                  红色代表精髓         SpringMVC是一个基于Java的Web框架,它使

    2024年02月12日
    浏览(37)
  • IDEA版SSM入门到实战(Maven+MyBatis+Spring+SpringMVC) -Spring搭建框架步骤

    第一章 初识Spring 1.1 Spring简介 Spring是一个为简化企业级开发而生的 开源框架 。 Spring是一个 IOC(DI) 和 AOP 容器框架。 IOC全称:Inversion of Control【控制反转】 将对象【万物皆对象】控制权交个Spring DI全称:(Dependency Injection):依赖注入 AOP全称:Aspect-Oriented Programming,面向切面编

    2024年02月04日
    浏览(32)
  • 联邦学习实战-1:用python从零开始实现横向联邦学习

    什么是联邦学习? 简单来说就是在一个多方的环境中,数据集是零散的(在各个不同的客户端中),那么怎样实现机器学习算法呢? 首先想到的就是将多个数据集合并合并起来,然后统一的使用传统的机器学习或者深度学习算法进行计算,但是如果有一方因为数据隐私问题

    2023年04月08日
    浏览(34)
  • 从零开始的QQ开放平台机器人-------Gensokyo框架部署运行开发教程合集

    大家好,我是早苗狐,一名有5年QQ机器人开发运营经验的机器人爱好者. 随着QQ为机器人开放了越来越多的接口能力,基于QQ开放平台Api能力的新框架逐渐应运而生, 本文就带给大家如何通过一系列操作,部署,运行,维护和开发一个新的QQ机器人. QQ开放平台地址: QQ开放平台 QQ开放平台

    2024年02月03日
    浏览(66)
  • Android SDK安装教程(超详细),从零基础入门到实战,从看这篇开始

    前言 在使用appnium的时候,除了安装JDK之外,也需要安装Android SDK。那么,正确安装Android SDK是怎样的呢,跟着小编继续往下看。 安装Android SDK和环境配置 1.安装Android SDK 首先打开官网:https://www.androiddevtools.cn/ 选中导航中的Android SDK工具,再点击SDK Tools。 网页会自动往下翻,

    2024年02月14日
    浏览(34)
  • Spring Boot(04):让你的Spring Boot应用“火力全开”,从零开始学习starter

            Spring Boot是一款非常流行的Java开发框架,其具有快速开发、自动化配置、内嵌服务器、易于扩展等特点,因此备受开发者欢迎。在日常开发中,我们经常需要在不同的环境中进行测试和部署,此时,如何实现开发、测试、生产环境的快速切换,成为了我们需要解决

    2024年04月13日
    浏览(40)
  • “从零开始学习Spring Boot:快速搭建Java后端开发环境“

    标题:从零开始学习Spring Boot:快速搭建Java后端开发环境 摘要:本文将介绍如何从零开始学习Spring Boot,并详细讲解如何快速搭建Java后端开发环境。通过本文的指导,您将能够快速搭建一个基于Spring Boot的Java后端开发环境并开始编写代码。 正文: 一、准备工作 在开始之前,

    2024年02月15日
    浏览(39)
  • Java框架学习(二)SSM体系:Spring、SpringMVC、MybatisPlus

    在原始的分层架构实现中,负责响应请求的Controller层依赖于业务逻辑处理的Service层,而业务逻辑处理的service层又依赖与数据访问Dao层。上下层间相互依赖耦合,耦合的缺陷在于牵一发而动全身,不利于后期维护拓展。 为了分层解耦,Spring采用IoC控制反转和DI依赖注入,来解

    2024年02月11日
    浏览(32)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包