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

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.dtcms.com/a/251886.html

相关文章:

  • 2.SQL语句分类
  • vue2和vue3的底层逻辑原理、区别、用法以及应用优缺点
  • Day54打卡 @浙大疏锦行
  • 《棒球百科》棒球怎么玩·棒球9号位
  • 阿里云OSS任意文件写入/删除漏洞修复方案
  • node中Token刷新机制:给你的数字钥匙续期的奇妙之旅
  • 105. Java 继承 - 静态方法的隐藏
  • 深度学习——基于卷积神经网络实现食物图像分类【2】(数据增强)
  • 【AI论文】Saffron-1:LLM安全保证的推理缩放范例
  • Vue 项目路由模式全解析:从 hash 到 history 再到 abstract
  • vue相关爬坑总结
  • 火山引擎解码生态型增长铁律
  • K8s 容器化安全产品性能问题排查指南
  • 构建高性能日志系统:QGroundControl日志模块深度解析
  • 【大模型应用开发】向量数据库向量检索方法存在问题及优化
  • 2GT 环形闭口闭环同步带一种具有特定齿形和结构的传动带
  • Qwen2.5-VL 是什么?
  • 说说聚合路由器
  • 串口115200波特率一秒传输几个字节数据
  • Redis windows版安装,启动配置【kaki学习备忘录】
  • 《AI辅助编程:从零掌握核心逻辑》工作坊开业
  • 深度解析Vue路由原理与实战指南
  • 数据赋能(261)——数据赋能业务——数据驱动商业模式创新
  • 智慧流水线在esop数字工厂中的作用?
  • Swagger介绍和使用说明
  • 项目三 - 任务9:实现GUI用户登录
  • 【C++】模板入门
  • python3.9成功安装nbextensions
  • [游戏实时地图] 地图数据 | 兴趣点数据 | 虚幻引擎SDK接口
  • 无人机指南