Javaweb学习day4——(MVC架构模式)
一、MVC是什么?有什么用(使用场景)
MVC 是 Model-View-Controller 的缩写,中文叫做模型-视图-控制器。它是一种软件架构设计模式,主要用于将代码逻辑进行分层管理,常用于Web开发、桌面软件、移动应用开发等场景。
MVC 的三个部分
组成部分 | 作用 | 举例 |
---|---|---|
Model(模型) | 负责数据和业务逻辑 | 数据库访问、处理用户数据、验证 |
View(视图) | 负责界面展示 | HTML 页面、JSP 页面、APP界面 |
Controller(控制器) | 负责接收用户请求并调用模型和视图 | Servlet、Spring Controller |
MVC 是怎么工作的?
打个比方:你点外卖
你(用户)点了一份外卖(发起请求)
服务员(Controller)接到订单,通知后厨准备(调用 Model)
后厨(Model)做出饭菜,传给服务员
服务员将饭菜(数据)摆盘后送到你面前(View 展示)
MVC 有什么用?
使用场景:
JavaWeb 开发:JSP + Servlet + Java Bean 就是一种简单的 MVC
Spring MVC 框架:是 Java 最常见的 MVC 实现
前后端分离开发:前端用 Vue/React(View),后端用 Controller 处理请求,调用 Model 处理业务
运作图:
二、练习
2.1 项目结构(基于 Maven)
javaweb-mvc-demo/
├── pom.xml
├── src/
│ └── main/
│ ├── java/
│ │ └── com.example.controller/
│ │ └── LoginServlet.java
│ │ └── com.example.model/
│ │ └── UserService.java
│ ├── resources/
│ └── webapp/
│ ├── login.jsp
│ ├── success.jsp
│ ├── fail.jsp
│ └── WEB-INF/
│ └── web.xml
示例:
2.2 详细步骤与代码
2.2.1 配置 Maven(pom.xml)
<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.0http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.example</groupId><artifactId>javaweb-mvc-demo</artifactId><version>1.0-SNAPSHOT</version><packaging>war</packaging><dependencies><dependency><groupId>javax.servlet</groupId><artifactId>javax.servlet-api</artifactId><version>4.0.1</version><scope>provided</scope></dependency></dependencies>
</project>
2.2.2 View:login.jsp(表单)
<!DOCTYPE html>
<html>
<head><title>Login</title></head>
<body><h2>Login Page</h2><form action="login" method="post">用户名: <input type="text" name="username"><br>密码: <input type="password" name="password"><br><input type="submit" value="登录"></form>
</body>
</html>
2.2.3 Controller:LoginServlet.java
package com.example.controller;import com.example.model.UserService;
import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.annotation.*;
import java.io.IOException;@WebServlet("/login")
public class LoginServlet extends HttpServlet {protected void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {String username = request.getParameter("username");String password = request.getParameter("password");UserService userService = new UserService();boolean success = userService.checkLogin(username, password);if (success) {response.sendRedirect("success.jsp");} else {response.sendRedirect("fail.jsp");}}
}
2.2.4 Model:UserService.java
package com.example.model;public class UserService {public boolean checkLogin(String username, String password) {// 模拟验证逻辑(也可以改成数据库验证)return "admin".equals(username) && "123456".equals(password);}
}
2.2.5 View:success.jsp / fail.jsp
<!-- success.jsp -->
<h2>登录成功,欢迎回来!</h2>
<!-- fail.jsp -->
<h2>登录失败,请重试!</h2>
三、运行部署步骤(IDEA + Tomcat)
运行成功截图: