【SpringMVC】SpringMVC基础教程(1)
前言:
本文内容:学习方法说明、回顾MVC架构、回顾Servlet
推荐免费SpringMVC基础教程视频:【狂神说Java】SpringMVC最新教程IDEA版通俗易懂_哔哩哔哩_bilibili
学习方法说明
SSM: Mybatis+Spring+SpringMVC (MVC三层架构)
学习过程:
- JavaSE:老师带领学习
- JavaWeb:老师带领学习
- SSM框架:研究官方文档,锻炼自学能力,锻炼笔记能力,锻炼项目能力
之后还要学的内容:SpringMVC+Vue+SpringBoot+SpringCloud+JVM+JUC并发+POI+Linux+Git+MybatisPlus+MQ+Redis+ElasticSearch+Docker
学习重点:
-
Spring重点:IOC 和 AOP
-
SpringMVC重点:SpringMVC执行流行
-
SSM框架的整合
SpringMVC官方文档:Servlet Stack 上的 Web (spring.io)
回顾MVC架构
回顾什么是MVC
- MVC即模型(Model)、视图(View)、控制器(Controller)的简写,是一种软件设计规范
- 将业务逻辑、数据、显示的代码分离
- MVC降低了视图与业务逻辑之间的双向耦合
- MVC不是一种设计模式,而是一种架构模式,不同的MVC之间存在差异
Model:数据层和业务层(Dao,Service)
View:试图层,为用户展示的界面(JSP等)
Controller:控制层,接受用户的输入并调用模型和视图去完成用户的需求(Servlet)
拓展
项目框架是不断演进的,而并非直接设计好的
去IOE的重要性
回顾Servlet
-
新建Maven工程当作父工程(删除src),引入pom依赖
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.3.19</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
</dependency>
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
<version>2.1</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency> -
建立一个Module:
springmvc-01-servlet
,添加Web支持 -
导入servlet和jsp的jar依赖(父类导入的话,这里也可以不导入)
1
2
3
4
5
6
7
8
9
10<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
</dependency>
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
<version>2.1</version>
</dependency> -
编写一个Servlet类,用来处理用户请求
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35package com.jokerdig.servlet;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
/**
* @author Joker大雄
* @data 2022/5/30 - 14:34
**/
public class HelloServlet extends HttpServlet {
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// 获取前端参数
String method = req.getParameter("method");
if(method.equals("add")){
req.getSession().setAttribute("msg","执行了add方法");
}
if(method.equals("delete")){
req.getSession().setAttribute("msg","执行了delete方法");
}
// 调用业务层
// 请求转发
req.getRequestDispatcher("/WEB-INF/jsp/test.jsp").forward(req,resp);
}
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doGet(req,resp);
}
} -
编写页面代码
test.jsp
1
2
3
4
5
6
7
8
9<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<h1>${msg}</h1>
</body>
</html>form.jsp
1
2
3
4
5
6
7
8
9
10
11
12
13
14<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<form action="/hello" method="post">
<input type="text" name="method">
<input type="submit">
</form>
</body>
</html> -
添加Tomcat,测试运行
1
2
3
4http://localhost:8080/servlet/hello?method=add
执行了add方法
http://localhost:8080/servlet/hello?method=delete
执行了delete方法
小结
- 将URL映射到Java类或Java类的方法
- 封装用户提交数据
- 处理请求–调用相关的业务处理–封装响应数据
- 将响应的数据进行渲染,在页面展示
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Hey,Joker!
评论
ValineTwikoo