首页 > 其他分享 >JSP学习日志二,MVC三级结构

JSP学习日志二,MVC三级结构

时间:2023-05-28 23:56:56浏览次数:35  
标签:String 视图 public MVC JSP Model View model 日志

Java MVC(Model-View-Controller)是一种应用程序开发的设计模式。它将应用程序拆分成三个主要组成部分:

Model:表示应用程序中的数据或业务逻辑。Model 包括数据,以及它与数据相关的方法和函数。Model 维护和管理应用程序的数据、状态和规则,这些数据和规则由逻辑和动作组成。
View:表示应用程序中所需要的用户界面。View 将数据从 Model 中获取,并以用户友好的方式呈现给用户。View 是应用程序的直接界面,它负责处理用户请求、响应和显示相应的数据响应。
Controller:表示应用程序中的控制器。Controller 接收用户输入并调用 Model 中的方法和函数进行处理。Controller 通过对 Model 进行设置,从而控制应用程序的行为。Controller 响应用户的输入并更新 Model 和 View 的状态。

MVC 的三个部分如下所示:

Model

模型被设计为独立的组件,包含与业务逻辑相关的数据和操作。
模型可以是任何表示数据的对象或一组类。这些类包括处理数据的方法和数据结构。
通常模型是最小化或不包含 UI 的部分。

View

视图是与用户看到的界面相关的组件。
视图显示模型的数据块和操作。
视图可以是在图形用户界面 (GUI) 中使用的窗口或屏幕上的区域。
通常将视图定义为依赖于模型的被动组件。

Controller

控制器是视图和模型之间的中间件。
控制器处理用户的输入事件,并在模型中传递这些事件。
控制器负责更新模型和视图。
控制器可以是应用程序的单个类或一组类。

三级结构指的是 MVC 设计模式被分成了三层进行设计和实现。通常,这些层是:

Presentation Layer(视图层)- UI 界面,视图组件呈现模型的数据和操作。
Business Layer(业务逻辑层)- 应用程序的内部工作。该层关注于数据转换、流程和问题解决。
Data Layer (模型层)- 应用程序的主数据存储区域。该层包括所有读写操作,如数据库读写操作。

这个三级结构方式有利于开发人员将代码模块化并实现高度重用性。例如,视图和模型可以进行相对独立的开发,然后能够使用控制器进行连接,从而实现解耦以及更快的开发和测试。

以下是使用Java MVC设计模式的示例代码:

Model 示例

public class Student {
    private String name;
    private int age;
    private String major;

    // getters and setters

    public void setName(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public int getAge() {
        return age;
    }

    public void setMajor(String major) {
        this.major = major;
    }

    public String getMajor() {
        return major;
    }
}

View 示例

public class StudentView {
    public void displayStudentDetails(String name, int age, String major) {
        System.out.println("Student Info:");
        System.out.println("Name: " + name);
        System.out.println("Age: " + age);
        System.out.println("Major: " + major);
    }
}

Controller 示例

public class StudentController {
    private Student model;
    private StudentView view;

    public StudentController(Student model, StudentView view) {
        this.model = model;
        this.view = view;
    }

    public void setStudentName(String name) {
        model.setName(name);
    }

    public String getStudentName() {
        return model.getName();
    }

    public void setStudentAge(int age) {
        model.setAge(age);
    }

    public int getStudentAge() {
        return model.getAge();
    }

    public void setStudentMajor(String major) {
        model.setMajor(major);
    }

    public String getStudentMajor() {
        return model.getMajor();
    }

    public void updateView() {
        view.displayStudentDetails(model.getName(), model.getAge(), model.getMajor());
    }
}

这些代码展示了一个简单的学生信息管理系统,其中 Model 表示学生的信息,View 显示学生信息,Controller 用于管理 Model 和 View 之间的通信。例如,我们可以使用控制器实现添加或更新学生信息并显示在视图层。此外,这些代码可以用于更复杂的应用程序,例如 web 应用程序,其中 Model 表示数据库中的数据,View 包括用户交互界面,Controller 处理用户请求并更新模型和视图。

标签:String,视图,public,MVC,JSP,Model,View,model,日志
From: https://www.cnblogs.com/yzx-sir/p/17436575.html

相关文章

  • unity学习日志5(麦扣老师3DRPG项目学习)
    设计模式单例模式(泛型单例)作用:提高代码复用率,增加代码可读性//实现泛型单例,并对T进行约束,规定只有各类manager使用单例模式publicclassSingleton<T>:MonoBehaviourwhereT:Singleton<T>{privatestaticTinstance;//通过属性来访问直接获取私有的静......
  • 无法在web.xml或使用此应用程序部署的jar文件中解析绝对uri:[http://java.sun.com/jsp/
     第一个错误 刷新后出现第二个 org.apache.jasper.JasperException: java.lang.ClassNotFoundException: org.apache.jsp.admin.adminFace_jsp 解决方法:1.1检查WEB-INF下的lib文件夹里是否导入了写jstl-1.2.jar(jstl.jar),standard1.1.jar(standard.jar)如果没有......
  • 开源可观测性平台Signoz【日志采集篇】
    转载说明:如果您喜欢这篇文章并打算转载它,请私信作者取得授权。原创不易,请文明转载,谢谢。在开源可观测性平台Signoz系列【开篇】中,介绍了signoz的基础理论知识、安装部署及一些初始化配置。本文则记录signoz怎么采集日志,包括docker容器日志和主机日志1.收集容器日志1.1收......
  • MVCC
    参考视频:https://www.bilibili.com/video/BV1hL411479T/?spm_id_from=333.337.search-card.all.click&vd_source=46d50b5d646b50dcb2a208d3946b1598......
  • ELK日志分析系统​
    拓扑图:推荐步骤:搭建ElasticSearch群集,通过浏览器查看和图形管理群集配置客户端安装apache和logstash服务配置采集apache日志配置kibana监听elasticsearch服务器日志实验步骤:一.搭建ElasticSearch群集,通过浏览器查看和图形管理群集1.配置第一台ElasticSearch群集1)修改hosts文件复制......
  • Loki 日志收集系统
    一.系统架构 二.组成部分 Loki的日志堆栈由3个组件组成:promtail:用于采集日志、并给每条日志流打标签,每个节点部署,k8s部署模式下使用daemonset管理。 loki:用于存储采集的日志,并根据标签查询日志流。单节点部署,一般和监控组件部署在同一节点。 Grafana:提供界面,实现......
  • 在jsp中为a标签的href属性拼接动态变量的方法
    在做web项目练习时遇到了一个需要为href拼接动态变量的问题,在jsp中有这么一段代码实现用户的删改功能。首先摆出我一开始错误的代码来说明问题。<html><head><title>人员管理</title></head><body><%//从后端Servlrt获取的一个储存我自定义的Persion对象的ListList<Pers......
  • 简单商品后台管理系统-应用MVC和AJAX,使用Bootstrap
    一个商品后台管理系统-应用了MVC三层设计模式以及AJAX技术,使用Bootstrap模板;是我用于练习Ajax的增删改查写的一个小系统,很简易,但是有助于理解mvc设计模式,并且简单条理清晰使得它是一个好的练习项目;效果展示: 代码部分:index.html<html><head><title>管理系统</titl......
  • 使用SpringMVC 拦截器导致出现@CrossOrigin失效问题解决办法
    非简单请求会发起一个OPTIONS方法的预检请求,这个请求会被拦截器拦截,但是服务器没有给浏览器返回必要的跨域指示信息(比如:“Access-Control-Allow-Origin”----允许哪些请求访问),浏览器没收到指示信息,就认为服务器不允许跨域请求,就会报错。所以需要在拦截器拦截OPTIONS方法的预......
  • MVCC-数据库
    参考地址:看一遍就理解:MVCC原理详解-掘金(juejin.cn) 1.相关数据库知识点回顾1.1什么是数据库事务,为什么要有事务事务,由一个有限的数据库操作序列构成,这些操作要么全部执行,要么全部不执行,是一个不可分割的工作单位。假如A转账给B100元,先从A的账户里扣除100元,再在......