欢迎大家回到《Java教程之Spring30天快速入门》,本教程所有示例均基于Maven实现,如果您对Maven还很陌生,请移步本人的博文《如何在windows11下安装Maven并配置以及 IDEA配置Maven环境》,本文的上一篇为《Spring事务角色与 Spring事务属性、事务传播行为》
从这一节开始,我们开始学 习SpringMVC,看到SpringMVC这个名字我们会发现其中包含Spring,那么SpringMVC和Spring之间的会有关系么?答案是肯定有,SpringMVC隶属于Spring,是Spring技术中的一部分。那么SpringMVC到底是用来做什么的呢?
那么既然已经有了Servlet为什么还需要花时间再学习一个SpringMVC技术?要回答这个问题,我们
就需要搞清楚SpringMVC与Servlet相比,有什么优势:
框架我们都知道是用来简化开发的,所以SpringMVC与Servlet相比,开发起来更简单快捷,用更少的代码完成表现层代码的开发,那么问题又来了,到底有多简单呢?我们通过一个例子来体验一把吧。
将资料中的项目导入到IDEA中,打开后格式如下
@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); } }
@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); } }
@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); } }
@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); } }
启动项目,测试结果如下:
上面就是通过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'}"; } }
启动项目,测试结果如下:
通过两种技术对相同功能的实现,我们会发现打印输出的结果是一样的,但是对比编写的代码会发现
SpringMVC这种开发方式更简单、更高效。
所以接下来我们就需要来学习下SpringMVC这门技术,主要学习那些内容呢?
学习之前大家需要记住一件事是,SpringMVC是用来替换Servlet的,所以Servlet能实现的,
SpringMVC就能实现,主要学习的内容包含如下模块:
SpringMVC简介:主要是来认识下到底什么是SpringMVC。
请求与相应:SpringMVC是替换Servlet处于Web的框架,所以其主要的作用就是用来接收前端发过来的请求和数据然后经过处理并将处理的结果响应给前端,所以如何处理请求和响应是SpringMVC中非常重要的一块内容。
REST风格:是一种软件架构风格,可以降低开发的复杂性,提高系统的可伸缩性,在以后开发中非常重要和常用。
SSM整合:是把咱们所学习的SpringMVC+Spring+Mybatis整合在一起来完成业务开发,是对我们所学习这三个框架的一个综合应用。
拦截器:是SpringMVC中的一个小知识点。
对于SpringMVC的学习,最终要达成的目标:
下面我们就进入SpringMVC这一章内容的学习,在这一章中,我们主要学习如下内容:
本章的核心内容为:入门案例和入门案例工作流程分析。
我们要学习的SpringMVC究竟是一门什么技术呢?
当前WEB程序的工作流程:
三层架构
表现层与数据层的技术选型:
介绍了这么多,最后我们来对SpringMVC一个概述:
这里所说的优点,就需要我们再使用的过程中慢慢体会。从下一节开始,我们将正式开始SpringMVC的学习。