目录
一:什么是MVC框架?
MVC是一种软件架构的思想,将软件按照模型,视图,控制器来划分
M: Model,模型层,指工程中的JavaBean,作用是处理数据
JavaBean分为两类:
一类称为实体类Bean:专门存储业务数据的。
一类称为业务处理Bean:指Service或Dao对象,专门用于处理业务逻辑和数据访问。
V:View,视图层,指工程中的html或jsp等页面,作用是与用户进行交互,展示数据
C:Controller,控制层,指工程中的servlet,作用是接收请求和响应浏览器
MVC的工作流程:
用户通过视图层发送请求到服务器,在服务器中请求被Controller就收,Controller调用相应的Model层处理请求,处理完毕将结果返回到Controller,Controller再根据请求处理的结果找到相应的View视图,渲染数据后最终响应给浏览器。
二:什么是SpringMVC?
SpringMVC是spring框架的一种分支。SpringMVC是类似于Struts2的一个MVC框架,在实际开发中,接收浏览器的请求相应,对数据进行处理,然后返回页面进行显示,但是上手难度却比Struts2简单多了。而且由于Struts2所暴露出来的安全问题,SpringMVC已经成为了大多数用户优先选择的框架。
三:快速入门SpringMVC
1.创建一个web工程:
下面是创建完成后的样子:
删除从标签<name>一直到最后一个标签</project>为止
下面为最后剩下的代码
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.zhl</groupId>
<artifactId>HelloSpringMVC</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>war</packaging>
</project>
2.引入SpringMVC的依赖
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.2.10.RELEASE</version>
</dependency>
</dependencies>
3. 创建控制层并创建一个jsp网页。
package com.zhl.controller.HelloController;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
/**
* @program: HelloSpringMVC
* @description:
* @author: 张会理
* @create: 2021-12-04 14:44
**/
@Controller
public class HelloController {
@RequestMapping("/helloMVC01")//根据请求路径映射相应的方法
public String helloMVC01(){
return "/view/helloMVC01.jsp";//这里是返回到什么地方 我这里是在webapp下创建了一个view文件,把jsp文件放在里面了
}
}
在webapp下创建了一个view文件,把jsp文件放在里面
<%--
Created by IntelliJ IDEA.
User: Administrator
Date: 2021/12/4
Time: 14:47
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>主页</title>
</head>
<body>
你好SpringMVC
</body>
</html>
4.创建springmvc的配置文件。
创建成功后的样子
配置后的代码如下:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd">
<!--1.包扫描 扫描我们自己的控制层类所在的包或者父包-->
<context:component-scan base-package="com.zhl.controller"/>
</beans>
5.引入前端控制器web.xml
代码如下:
<?xml version="1.0" encoding="UTF-8"?>
<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_4_0.xsd"
version="4.0">
<!--注册servlet-->
<servlet>
<servlet-name>springMVC</servlet-name><!--这里的名字要与你创建的springmvc文件名相同-->
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!--加载springmvc的配置文件-->
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:springMVC.xml</param-value><!--在classpath: 后面要与你创建的springmvc文件名相同并加上后缀名-->
</init-param>
</servlet>
<!--servlet映射路径
/: 表示所有的控制层路径 以及静态资源
/* 表示全部 包含jsp网页
-->
<servlet-mapping>
<servlet-name>springMVC</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
</web-app>
6.测试:
启动服务器,在浏览器输入 根据请求路径映射相应的方法
输入完成后 回车运行 结果如下:
结果为我们在view创建的jsp网页
总结:
SpringMVC的流程:
1. 客户端发生请求 http://localhost:8080/HelloSpringMVC/helloMVC01
2. 此时程序来到TomCat服务器
3. SpringMVC的前端控制器DipatcherServlet接受所有的请求。
4. 查看你的请求地址和哪个@RequestMapping匹配
5. 执行对应的方法。方法会返回一个字符串。springmvc把该字符串解析为要转发的网页。
6. 把该字符串经过视图解析器拼接。
7. 拿到拼接的地址,找到对应的网页。