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.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)

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值