一、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.0
         http://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)

在这里插入图片描述
运行成功截图:
在这里插入图片描述

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐