目录
根据以上分析,SpringMVC需要程序员完成的工作有三个:
1.4 开发后端控制器Controller(与之前的servlet差不多)
前言
一.什么是SpringMVC
SpringMVC是基于Java的Web框架
它是Spring框架的一部分,是一个MVC架构模式的Web框架,通过SpringMVC可以方便地开发Web应用程序,实现对Web请求的处理、路由、数据绑定、验证等功能
MVC框架,它解决WEB开发中常见的问题(参数接收、文件上传、表单验证、国际化等等),而且使用简单,与Spring无缝集成。支持 RESTful风格的URL请求。
采用了松散耦合可插拔组件结构,比其他 MVC 框架更具扩展性和灵活性。
SpringMVC的作用
MVC模式(Model-View-Controller):解决页面代码和后台代码的分离。
一、SpringMVC
在没有使用SpringMVC之前我们都是使用Servlet在做Web开发。但是使用Servlet开发在接收请求参数,数据共享,页面跳转等操作相对比较复杂。servlet是java进行web开发的标准,既然springMVC是对servlet的封装,那么很显然SpringMVC底层就是Servlet,SpringMVC就是对Servlet进行深层次的封装。。
根据以上分析,SpringMVC需要程序员完成的工作有三个:
【1】配置前端控制器DispatcherServlet。
【2】开发后端控制器Handler/Controller。
【3】开发视图View
二、项目准备
1.创建Maven项目(war包)
一定选择带maven的webapp
1.2 添加spring-webmvc依赖
webmvc依赖包含beans、context、core、expression、commons-logging、aop、web、webmvc,换言之导入一个webmvc依赖,就间接导入了启动mvc框架的所有依赖。
1.3 添加servlet依赖
因为springmvc底层还是servlet,所以还是要添加servlet依赖
1.4 开发后端控制器Controller(与之前的servlet差不多)
1.5 创建springmvc.xml配置文件
在 /resources 目录下创建MVC.xml配置文件,平且配置HelloController
1.6开发视图View
在/WEB-INF下创建一个 jsp包,并且创建一个hello01
<%@ page import="com.sun.javafx.binding.StringFormatter" %><%--
Created by IntelliJ IDEA.
User: shuaige
Date: 2023/6/28
Time: 16:28
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<%
String username1 = (String) request.getAttribute("username1");
String pwd = (String) request.getAttribute("pwd");
%>
hello01name:${username1}
hello01name:<%=username1%>
hello01pwd:${pwd}
hello01pwd:<%=pwd%>
</body>
</html>
1.7 配置前端控制器DispatcherServlet
在web.xml中配置spring mvc核心(前端)控制器,并加载springmvc配置文件。
<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd" >
<web-app
xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
version="3.1"
>
<display-name>Archetype Created Web Application</display-name>
<!--
前端控制器:所有的请求都会经过此控制器,然后通过此控制器分发到各个分控制器
总控本质上还是一个Servlet,因为SpringMVC底层就是使用Servlet编写的
-->
<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!-- 创建前端控制器的时候读取springmvc配置文件启动ioc容器 -->
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationMVC.xml</param-value>
</init-param>
<!-- Tomcat启动就创建此对象 -->
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
</web-app>
1.8启动Tomcat
添加一个Tomcat服务器并部署项目,如果不会,请参考这一篇,
部署完之后启动服务器。
1.9访问项目
这里使用的是Apifox (右边错误由于返回的数据类型不是JSON暂时)
总结
Spring MVC 是一种基于模型 - 视图 - 控制器(MVC)模式的轻量级 Web 框架,它由 Spring Framework 提供支持。Spring MVC 基于请求和响应模型。
以下是 Spring MVC 的一些主要特点和总结:
1. 轻量级:Spring MVC 是一个轻量级的 Web 框架,它提供了基本的 Web 开发工具,如控制器、拦截器、视图解析器等。
2. 松散耦合:Spring MVC 使用松散耦合的方式来实现 MVC 模式。控制器和视图之间没有直接的关系,它们通过模型对象进行通信。
3. 高度可定制:Spring MVC 提供了一些灵活的配置选项,使得开发人员可以根据项目需求进行定制。
4. 强大的 View 层支持:Spring MVC 支持多种视图技术,如 JSP、Freemarker、Thymeleaf 等。
5. 易于测试:Spring MVC 高度模块化和松散耦合的特点使得它易于测试,开发人员可以单独测试每个模块,而不必依赖其他模块的运行。
6. 易于集成:Spring MVC 可以与其他 Spring 框架(如 Spring Boot、Spring Security、Spring Data 等)无缝集成。
7. 提供丰富的注解支持:Spring MVC 提供了许多注解来简化开发,如 @Controller、@RequestMapping、@ResponseBody、@PathVariable 等。
8. 可以处理多种 HTTP 请求和响应类型:Spring MVC 支持多种 HTTP 请求和响应类型,如 JSON、XML、HTML、文件上传等。
总之,Spring MVC 是一个功能强大且易于使用的 Web 框架,它使得开发人员可以快速开发高质量的 Web 应用程序。