目录
什么是MVC模式?
MVC 工作流程:
MVC模式(java示例.部分代码)
1、Model
java
2、View
HTML
CSS
JS
3、Controller
java
运行结果:
适用场景:
什么是MVC模式?
MVC模式提供了灵活的架构,方便开发者分离关注点,把应用程序分为三个大的主要组件:
M(Model)模型,V(View)视图,C(Controller)控制器:
Model:管理数据和业务逻辑。
View:显示模型中的数据,提供用户界面。
Controller:接收用户输入,调用模型和视图进行处理。
MVC 工作流程:
1、用户交互:用户通过视图与应用程序进行交互(如点击按钮、填写表单)。
 2、请求处理:视图将用户输入转发给控制器。
 3、业务逻辑:控制器处理请求,调用模型完成数据处理。
 4、数据更新:模型更新后,控制器将数据传递回视图。
 5、视图更新:视图根据模型数据更新界面,向用户展示结果。
MVC模式(java示例.部分代码)
博主学Spring框架的,所以我直接拿我的Spring MVC部分代码来做示例了 = . =
这是一个简单的登录功能。
1、Model
java
public class User {
    private Integer id;
    private String  username;
    private String password;
    private String email;
    public User() {
    }
    public User(Integer id, String username, String password, String email) {
        this.id = id;
        this.username = username;
        this.password = password;
        this.email = email;
    }
    public Integer getId() {
        return id;
    }
    public void setId(Integer id) {
        this.id = id;
    }
    public String getUsername() {
        return username;
    }
    public void setUsername(String username) {
        this.username = username;
    }
    public String getPassword() {
        return password;
    }
    public void setPassword(String password) {
        this.password = password;
    }
    public String getEmail() {
        return email;
    }
    public void setEmail(String email) {
        this.email = email;
    }
    @Override
    public String toString() {
        return "User{" +
                "id=" + id +
                ", username='" + username + '\'' +
                ", password='" + password + '\'' +
                ", email='" + email + '\'' +
                '}';
    }
}
2、View
HTML
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>登录界面</title>
    <link rel="stylesheet" href="../static/css/login.css">
    <script src="../static/js/jquery.js"></script>
    <script src="../static/js/jquery.cookie.js"></script>
    <script src="../static/js/login.js" defer></script>
</head>
<body>
    <div class="contanier">
        <div class="title">登录</div>
        <input type="text" placeholder="账号" class="account">
        <input type="password" placeholder="密码" class="password">
        <input type="button" value="登录" class="btn">
        <span>没有账号?<a href="register.action">去注册</a> | <a href="forget.action">忘记密码</a></span>
    </div>
</body>
</html>CSS
* {
    padding: 0;
    margin: 0;
}
body {
    height: 100vh;
    background: linear-gradient(30deg, rgb(47, 64, 85), rgb(93, 129, 172));
    display: flex;
    align-items: center;
    justify-content: center;
}
.contanier {
    height: 350px;
    width: 300px;
    background: #fff;
    border-radius: 15px;
    display: flex;
    flex-direction: column;
    padding: 20px;
}
.title {
    font-size: 40px;
    text-align: center;
    font-family: aaa;
    font-weight: 600;
    color: rgb(170, 170, 221);
    text-shadow: 1px 1px 2px rgb(47, 64, 85);
    margin-bottom: 30px;
}
.account,
.confirm_password,
.password,
.email,
.confirm_password {
    margin: 20px 0;
    border: none;
    border-bottom: 1px solid #000;
    outline: none;
    padding: 5px;
}
.btn,.btn2,.btn3 {
    margin-top: 80px;
    cursor: pointer;
    border: none;
    background: linear-gradient(90deg, rgb(47, 64, 85), rgb(93, 129, 172));
    padding: 5px;
    border-radius: 10px;
    color: #fff;
}
span {
    font-size: 13px;
    margin-top: 10px;
    text-align: center;
}
span a {
    text-decoration: none;
}
.btn:hover,.btn2:hover,.btn3:hover
{
    background: linear-gradient(270deg, rgb(47, 64, 85), rgb(93, 129, 172));
}
@font-face {
    font-family: "aaa";
    src: url("../font/HuXiaoBoSaoBaoTi-2.otf");
}JS
$(".btn").on("click",function(){
    var account = $(".account").val()
    var password = $(".password").val()
    if(account=="" || password==""){
        alert('账号或密码不能为空!')
        return false;
    }
    $.ajax({
        url:"login.action",
        type:"post",
        data:{
            account,password
        },
        success:function(value){
            if(value>0){
                alert('登陆成功')
                location.href="index"
                $.cookie("account",account)
            }else{
                alert('登录失败')
            }
        }
    })
})
3、Controller
java
@Controller
public class UserController {
    @Autowired
    private UserService userService;
    //登录
    @RequestMapping(value="login.action",method= RequestMethod.POST)
    @ResponseBody
    public int login(String account, String password, Model model, HttpSession session) {
        System.out.println("account " +account + ",password "+ password);
        User user = userService.findUser(account,password);
        int result=0;
        if(user != null){
            result++;
            session.setAttribute("User_SESSION",user);
        }
        System.out.println("result " +result);
        return result;
    }
    //向登录页面跳转
    @GetMapping("/login.action")
    public String toLogin() {
        return "login";
    }
}
运行结果:



适用场景:
适用于应用程序的分层开发:开发大型应用程序,需要清晰分离数据、业务逻辑和用户界面时,考虑使用MVC模式。要保证模型、视图、控制器交互清晰。



















