1.1 SpringMVC
ssm:spring + springMVC + mybatis
MVC:三层架构,视图层、控制层、模型层(dao、pojo、service)。而 SpringMVC 就是 Spring 版本的 MVC,是为了 方便 我们开发 WEB 项目的 框架。
- JavaSE:认真学习,老师带,入门快。
- JavaWeb:认真学习,老师带,入门快。
- SSM 框架:研究官方文档,锻炼自学能力,锻炼笔记能力,锻炼写项目能力。
再牛逼的 WEB 框架,底层的核心 也都是 servlet,所以 学会 servlet 原生态 的 开发 web 程序 是很重要的。
vo
:pojo 的拆分类,就是 也是实体类,只不过 删掉了 一些 原有的属性,保留了 关键核心的属性。常用在 前端领域。
1.2 回顾 Servlet
- maven 导入依赖
<dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.26</version>
</dependency>
<!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>4.0.1</version>
<scope>provided</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/javax.servlet.jsp/jsp-api -->
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
<version>2.2.1-b03</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.mortbay.jetty</groupId>
<artifactId>jsp-2.1</artifactId>
<version>6.1.7</version>
</dependency>
<!-- https://mvnrepository.com/artifact/javax.servlet.jsp.jstl/jstl-api -->
<dependency>
<groupId>javax.servlet.jsp.jstl</groupId>
<artifactId>jstl-api</artifactId>
<version>1.2</version>
</dependency>
<!-- https://mvnrepository.com/artifact/taglibs/standard -->
<dependency>
<groupId>taglibs</groupId>
<artifactId>standard</artifactId>
<version>1.1.2</version>
</dependency>
<!-- junit 测试 test 类包 -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
</dependencies>
- 再新建 一个 空的 子 maven 模块。
3. 添加 WEB 框架支持
4. 写 jsp 视图层的页面
<%@ 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>
- 编写 servlet 类
package top.muquanyu.servlet;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
public class HelloServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//super.doGet(req, resp);
// 1. 获取前端参数
// 前端可能要求后端实现某些方法,所以要准确的传递 要实现的方法的名字
String method = req.getParameter("method");
if(method.equals("add")){
System.out.println("add");
// 在 session 里面存储 或 改变 键值对
req.getSession().setAttribute("msg","执行了add方法");
}
if(method.equals("delete")){
System.out.println("delete");
req.getSession().setAttribute("msg","执行了delete方法");
}
// 2. 调用业务层 的功能
// 3. 视图层的 转发或重定向
req.getRequestDispatcher("/jsp/text.jsp").forward(req,resp);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//super.doPost(req, resp);
doGet(req,resp);
}
}
- web.xml 注册 一下 servlet 和 /hello 的 url
<?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-name>hello</servlet-name>
<servlet-class>top.muquanyu.servlet.HelloServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>hello</servlet-name>
<url-pattern>/hello</url-pattern>
</servlet-mapping>
<session-config>
<session-timeout>15</session-timeout>
</session-config>
<welcome-file-list>
<welcome-file>form.jsp</welcome-file>
</welcome-file-list>
</web-app>
- 配置 tomcat 9
改成 / 符号 url 会 更好 操作点儿。。
那么 MVC 框架要做哪些事情呢 ?
将 url 映射到 java 类 或 java 类的方法上面。
直接封装用户提交的数据。
处理请求 - - 调用相关的业务处理 -- 封装相应的数据
将响应的数据进行渲染 .jsp 或 html 等 视图层 文件的展示。