1、先简单说一下SpringMVC的概念

  • Spring MVC是Spring为表现层提供的基于MVC设计模式的轻量级Web框架,是目前最主流的 MVC框架之一。它与Struts2框架一样,都属于MVC框架,但其使用和性能等方面比Struts2更加优异。

2、Spring MVC具有以下特点

  1. 是Spring框架的一部分,可以方便的利用Spring所提供的其他功能。
  2. 灵活性强,易于与其他框架集成。
  3. 提供了一个前端控制器DispatcherServlet,使开发人员无需额外开发控制器对象。
  4. 可自动绑定用户输入,并能正确的转换数据类型。
  5. 内置了常见的校验器,可以校验用户输入。如果校验不能通过,那么就会重定向到输入表单。
  6. 支持多种视图技术。它支持JSP、Velocity和FreeMarker等视图技术。
  7. 使用基于XML的配置文件,在编辑后,不需要重新编译应用程序。

3、SpringMVC在三层架构的位置


第一个Spring MVC程序

第一步:新建web项目:

  • 在eclipse中,新建一个名字为SpringMvc的Web项目,在项目的lib目录中添加运行Spring MVC程序所需要的JAR包,并发布到类路径下。

必须的 jar包如下:

  • 项目中添加了Spring的4个核心JAR包、commons-logging的JAR以及两个web相关的JAR,这两个web相关的JAR包就是Spring MVC框架所需的JAR包。

第二步:配置XML

  • 在web.xml中,配置Spring MVC的前端控制器DispatcherServlet

如下:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns="http://xmlns.jcp.org/xml/ns/javaee"xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"id="WebApp_ID" version="4.0"><display-name>SpringMvc</display-name><servlet><servlet-name>springmvc</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><--当前Servlet的参数信息--><init-param><--contextConfigLocation是参数名称,该参数的值包含了SpringMVC的配置文件路径--><param-name>contextConfigLocation</param-name><param-value>classpath:springmvc-config.xml</param-value></init-param><--定义在Web应用启动是立即加载Servlet--><load-on-startup>1</load-on-startup></servlet><servlet-mapping><--请求对应的Servlet名称--><servlet-name>springmvc</servlet-name><--监听当前域的所有请求--><url-pattern>/</url-pattern></servlet-mapping>
</web-app>

第三步:编写 Controller

  • 在src目录下,创建一个com.itheima.controller包,并在包中创建控制器类FirstController,该类需要实现Controller接口,编辑后如下所示:
public class FirstController implements Controller {@Overridepublic ModelAndView handleRequest(HttpServletRequest arg0, HttpServletResponse arg1) throws Exception {// TODO Auto-generated method stubModelAndView mav = new ModelAndView();// 添加模型数据,可以是任何的POJO对象mav.addObject("msg", "这是我的第一个Spring MVC程序");// 设置逻辑视图名,视图解析器会根据该名字解析到具体的视图页面mav.setViewName("/WEB-INF/jsp/first.jsp");// 返回ModelAndView 对象return mav;}
}

4、第四步:编辑 dispatcher-servlet.xml

  • 在src目录下,创建配置文件springmvc-config.xml,这个文件名的开头与上面 web.xml 中的 <servlet-name> 元素配置的 dispatcher 对应,这是 Spring MVC 的映射配置文件(格式:xxx-servlet.xml)
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"><!--配置Handle,映射"/hello"请求 --><bean name="/hello" class="com.itheima.controller.FirstController" /><!-- 处理器映射器,将处理器Handle的name作为url进行查找 --><beanclass="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping" /><!-- 处理器适配器,配置对处理器中handleRequest()方法的调用 --><beanclass="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter" /><!-- 配置视图解析器 --><beanclass="org.springframework.web.servlet.view.InternalResourceViewResolver" />
</beans>

第五步:准备 first.jsp

  • 在WEB-INF目录下,创建一个jsp文件夹,并在文件夹中创建一个页面文件first.jsp,在该页面中使用EL表达式获取msg中的信息,如下所示:
<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>${msg}
</body>
</html>

第六步: 部署 Tomcat 及相关环境

  • 将SpringMvc 项目发布到Tomcat中,并启动Tomcat服务器。在浏览器中访问地址:http://localhost:8080/SpringMvc/hello,其显示效果如下所示:

至此第一个Spring MVC程序就此完成了( ̄︶ ̄)↗

再来说一下Spring MVC的工作流程:

图示如下:

  1. DispatcherServlet所拦截:用户通过浏览器向服务器发送请求,请求会被Spring MVC的前端控制器。
  2. DispatcherServlet拦截到请求后,会调用HandlerMapping处理器映射器。
  3. 处理器映射器根据请求URL找到其体的处理器,生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet
  4. DispatcherServlet会通过返回信思选择合适的HandlerAdapter(处理器适配器)。
  5. HandlerAdapter会调用并执行Handler(处理器),这里的处理器指的就是程序中编写的Controller类,也被称之为后端控制器。
  6. Controller执行完成后,会返回一个ModelAndView对象,该对象中会包含视图名或包含模型和视图名。
  7. HandlerAdapter将ModelAndView对象返回给DispatcherServlet
  8. DispatcherServlet会根据ModelAndView对象选择一个合适的ViewReslover(视图解析器)。
  9. ViewReslover解析后,会向DispatcherServlet中返回具体的View(视图)。
  10. DispatcherServlet对View进行渲染(即将模型数据填充至视图中)。
  11. 视图渲染结果会返回给客户端浏览器显示。

我的第一个Spring MVC程序相关推荐

  1. 【SpringMVC 之应用篇】 1_SpringMVC入门 —— 第一个 Spring MVC 程序

    第一个 Spring MVC 程序 一.配置文件类 在创建Spring MVC的时候,最基础的就是3个配置文件 pom.xml pom.xml 就是导入依赖 <dependencies>& ...

  2. 从 0 开始手写一个 Spring MVC 框架,向高手进阶

    转载自   从 0 开始手写一个 Spring MVC 框架,向高手进阶 Spring框架对于Java后端程序员来说再熟悉不过了,以前只知道它用的反射实现的,但了解之后才知道有很多巧妙的设计在里面.如 ...

  3. 自己手写一个Spring MVC框架

    想要了解Spring MVC框架的原理,探究框架是如何设计的,不错的学习方式是阅读源码,然后自己手写一个框架.本文带领大家简化的手写一个Spring MVC框架. Spring框架对于Java后端程序 ...

  4. JavaEE进阶 - Spring MVC 程序开发 - 细节狂魔

    文章目录 什么是 Spring MVC? MVC 定义 MVC 和 Spring MVC 的关系 总结 为什么要学 Spring MVC? Spring MVC 项目的创建 学习 Spring MVC ...

  5. 使用 Spring Boot CLI 运行第一个Spring boot程序

    简介 Spring Boot CLI是Spring Boot的命令行界面.它可以用来快速启动Spring.  它可以运行Groovy脚本.  Spring Boot CLI是创建基于Spring的应用 ...

  6. spring mvc学习(4):第一个spring mvc项目

    一个Spring MVC的项目如何创建?请看这里. 代码编辑器:Intellij IDEA 请提前在电脑上配置好自己的tomcat! 该文属于小白教程,适合初学者. 1 创建Spring MVC项目 ...

  7. Spring学习笔记:第一个Spring Boot程序HelloWorld

    Spring学习笔记:第一个Spring Boot程序HelloWorld 一.跟着 Spring 了解技术趋势 1.看看 Spring 5.x 的改变暗示了什么 2.Spring Boot 和 Sp ...

  8. 用Intellij IDEA 创建第一个Spring MVC项目

    0 前言 一个Spring MVC的项目如何创建?请看这里. 代码编辑器:Intellij IDEA 请提前在电脑上配置好自己的tomcat! 该文属于小白教程,适合初学者. 1 创建Spring M ...

  9. 编写一个简单的spring MVC程序

    一.下载和安装spring框架 进入http://repo.springsource.org/libs-release-local/org/springframework/spring/4.2.0.R ...

最新文章

  1. 安全配置交换机端口 提高网络安全性
  2. 卷积神经网络中的各种池化操作
  3. python字符串之查找与替换_Python字符串操作(查找,替换,分割和连接)方法及其使用...
  4. rpm升级时spec文件执行的流程
  5. js setTimeout和setInterval区别
  6. 物联网是互联网发展的必然趋势吗?
  7. 在Pocket PC/Smartphone智能设备上编写压缩程序(特别简单,任何人都能简单使用)...
  8. 在CentOS 7中使用Sendmail通过PHP发送邮件
  9. Android NDK开发之 Android系统开发中LOG的使用
  10. Ubuntu20.04下opencv的安装
  11. 博士申请 | 皇家墨尔本理工大学鲍芝峰教授招收数据挖掘方向全奖博士生
  12. ROS2.9.27架设网吧软路由实战篇之端口映射与回流
  13. h5 富文本输入框_富文本输入框
  14. 智齿科技B+轮获投1.5亿,为智能云客服领域最大单笔融资
  15. 武汉公布304个可售楼盘名单,保证供应稳定市场预期(蚌埠华瑞房地产评估)
  16. 人工蜂群算法求解TSP旅行商问题C++(2020.11.13)
  17. Avira AntiVir Personal 8 - FREE Antivirus/免费的杀毒软件
  18. 自研还是采购BI系统?后悔知道得太晚!
  19. 大话PM|产品经理入门概念通识
  20. colab 挂载谷歌云盘

热门文章

  1. 7.01面试长沙黄花机场
  2. 北京内推 | 联想研究院机器学习团队招聘因果推理算法研究实习生
  3. Transformer升级之路:博采众长的旋转式位置编码
  4. 殊途同归的策略梯度与零阶优化
  5. HSIC简介:一个有意思的判断相关性的思路
  6. 数字和字符串的相互转化
  7. html登录界面设计代码_.NET 5 开发WPF - 美食应用登录UI设计
  8. 【Java调试】通过SqlSessionFactory类对象获取mapper文件内的动态SQL在执行时的完整SQL及参数(2种使用方法+测试Demo及结果)
  9. springboot优雅地统一返回格式
  10. 牛客题霸 NC8 二叉树根节点到叶子节点和为指定值的路径