当前位置: 首页 > backend >正文

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)

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

http://www.xdnf.cn/news/14540.html

相关文章:

  • 项目文章 ▏组蛋白乳酸化驱动的B7-H3表达促进肿瘤免疫逃避
  • HashMap相关学习
  • 嵌入式学习笔记C语言阶段--16函数指针
  • UI前端大数据可视化:从设计到实现的完整流程
  • SQL基础语法+运行原理+云端数据库搭建
  • Qwen2.5-VL 是什么?
  • 大模型笔记4:RAG检索增强生成
  • LangGraph--框架核心思想
  • 数字系统设计与verilog hdl第8版王金明
  • HPC软件架构---Vector solution方案简介
  • 订单状态定时处理-01.需求分析
  • 免费插件集-illustrator插件-Ai插件-移除非纯黑叠印
  • NodeJS怎么开启多核执行任务,加快执行速度
  • 基于51单片机的流量检测及时间显示系统
  • PaddleOCR项目实战(2):SpringBoot服务开发之接口设计
  • 基于CL_PSO与BP神经网络分类模型的特征选择方法研究(Python实现)
  • 基于CATIA轴系的最小边界曲面自动化生成技术深度解析
  • linux多线程之POSIX信号量
  • PHP Swoft2 框架精华系列:Config 配置解析,使用说明
  • 如何在 Elementary OS 上安装 Google Chrome 浏览器
  • 智慧流水线在ESOP数字工厂中的作用
  • 迈向通用具身智能:具身智能的综述与发展路线
  • 前端如何调用外部api获取省市区数据
  • leetcode138-随机链表的复制
  • 技术突破与落地应用:端到端 2.0 时代辅助驾驶TOP10 论文深度拆解系列【第四篇(排名不分先后)】
  • 【C++】模板入门
  • LeetCode HOT 100
  • C语言空指针异常在Java中的解决方案
  • 智慧流水线在esop数字工厂中的作用?
  • GO语言---短变量声明