我的第一个Spring MVC程序
1、先简单说一下SpringMVC的概念:
- Spring MVC是Spring为表现层提供的基于MVC设计模式的轻量级Web框架,是目前最主流的 MVC框架之一。它与Struts2框架一样,都属于MVC框架,但其使用和性能等方面比Struts2更加优异。
2、Spring MVC具有以下特点:
- 是Spring框架的一部分,可以方便的利用Spring所提供的其他功能。
- 灵活性强,易于与其他框架集成。
- 提供了一个前端控制器DispatcherServlet,使开发人员无需额外开发控制器对象。
- 可自动绑定用户输入,并能正确的转换数据类型。
- 内置了常见的校验器,可以校验用户输入。如果校验不能通过,那么就会重定向到输入表单。
- 支持多种视图技术。它支持JSP、Velocity和FreeMarker等视图技术。
- 使用基于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的工作流程:
图示如下:
- DispatcherServlet所拦截:用户通过浏览器向服务器发送请求,请求会被Spring MVC的前端控制器。
- DispatcherServlet拦截到请求后,会调用HandlerMapping处理器映射器。
- 处理器映射器根据请求URL找到其体的处理器,生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet
- DispatcherServlet会通过返回信思选择合适的HandlerAdapter(处理器适配器)。
- HandlerAdapter会调用并执行Handler(处理器),这里的处理器指的就是程序中编写的Controller类,也被称之为后端控制器。
- Controller执行完成后,会返回一个ModelAndView对象,该对象中会包含视图名或包含模型和视图名。
- HandlerAdapter将ModelAndView对象返回给DispatcherServlet
- DispatcherServlet会根据ModelAndView对象选择一个合适的ViewReslover(视图解析器)。
- ViewReslover解析后,会向DispatcherServlet中返回具体的View(视图)。
- DispatcherServlet对View进行渲染(即将模型数据填充至视图中)。
- 视图渲染结果会返回给客户端浏览器显示。
我的第一个Spring MVC程序相关推荐
- 【SpringMVC 之应用篇】 1_SpringMVC入门 —— 第一个 Spring MVC 程序
第一个 Spring MVC 程序 一.配置文件类 在创建Spring MVC的时候,最基础的就是3个配置文件 pom.xml pom.xml 就是导入依赖 <dependencies>& ...
- 从 0 开始手写一个 Spring MVC 框架,向高手进阶
转载自 从 0 开始手写一个 Spring MVC 框架,向高手进阶 Spring框架对于Java后端程序员来说再熟悉不过了,以前只知道它用的反射实现的,但了解之后才知道有很多巧妙的设计在里面.如 ...
- 自己手写一个Spring MVC框架
想要了解Spring MVC框架的原理,探究框架是如何设计的,不错的学习方式是阅读源码,然后自己手写一个框架.本文带领大家简化的手写一个Spring MVC框架. Spring框架对于Java后端程序 ...
- JavaEE进阶 - Spring MVC 程序开发 - 细节狂魔
文章目录 什么是 Spring MVC? MVC 定义 MVC 和 Spring MVC 的关系 总结 为什么要学 Spring MVC? Spring MVC 项目的创建 学习 Spring MVC ...
- 使用 Spring Boot CLI 运行第一个Spring boot程序
简介 Spring Boot CLI是Spring Boot的命令行界面.它可以用来快速启动Spring. 它可以运行Groovy脚本. Spring Boot CLI是创建基于Spring的应用 ...
- spring mvc学习(4):第一个spring mvc项目
一个Spring MVC的项目如何创建?请看这里. 代码编辑器:Intellij IDEA 请提前在电脑上配置好自己的tomcat! 该文属于小白教程,适合初学者. 1 创建Spring MVC项目 ...
- Spring学习笔记:第一个Spring Boot程序HelloWorld
Spring学习笔记:第一个Spring Boot程序HelloWorld 一.跟着 Spring 了解技术趋势 1.看看 Spring 5.x 的改变暗示了什么 2.Spring Boot 和 Sp ...
- 用Intellij IDEA 创建第一个Spring MVC项目
0 前言 一个Spring MVC的项目如何创建?请看这里. 代码编辑器:Intellij IDEA 请提前在电脑上配置好自己的tomcat! 该文属于小白教程,适合初学者. 1 创建Spring M ...
- 编写一个简单的spring MVC程序
一.下载和安装spring框架 进入http://repo.springsource.org/libs-release-local/org/springframework/spring/4.2.0.R ...
最新文章
- 安全配置交换机端口 提高网络安全性
- 卷积神经网络中的各种池化操作
- python字符串之查找与替换_Python字符串操作(查找,替换,分割和连接)方法及其使用...
- rpm升级时spec文件执行的流程
- js setTimeout和setInterval区别
- 物联网是互联网发展的必然趋势吗?
- 在Pocket PC/Smartphone智能设备上编写压缩程序(特别简单,任何人都能简单使用)...
- 在CentOS 7中使用Sendmail通过PHP发送邮件
- Android NDK开发之 Android系统开发中LOG的使用
- Ubuntu20.04下opencv的安装
- 博士申请 | 皇家墨尔本理工大学鲍芝峰教授招收数据挖掘方向全奖博士生
- ROS2.9.27架设网吧软路由实战篇之端口映射与回流
- h5 富文本输入框_富文本输入框
- 智齿科技B+轮获投1.5亿,为智能云客服领域最大单笔融资
- 武汉公布304个可售楼盘名单,保证供应稳定市场预期(蚌埠华瑞房地产评估)
- 人工蜂群算法求解TSP旅行商问题C++(2020.11.13)
- Avira AntiVir Personal 8 - FREE Antivirus/免费的杀毒软件
- 自研还是采购BI系统?后悔知道得太晚!
- 大话PM|产品经理入门概念通识
- colab 挂载谷歌云盘
热门文章
- 7.01面试长沙黄花机场
- 北京内推 | 联想研究院机器学习团队招聘因果推理算法研究实习生
- Transformer升级之路:博采众长的旋转式位置编码
- 殊途同归的策略梯度与零阶优化
- HSIC简介:一个有意思的判断相关性的思路
- 数字和字符串的相互转化
- html登录界面设计代码_.NET 5 开发WPF - 美食应用登录UI设计
- 【Java调试】通过SqlSessionFactory类对象获取mapper文件内的动态SQL在执行时的完整SQL及参数(2种使用方法+测试Demo及结果)
- springboot优雅地统一返回格式
- 牛客题霸 NC8 二叉树根节点到叶子节点和为指定值的路径