MVC设计模式、JSP开发模式、三层架构&MVC练习学生信息管理系统

这篇具有很好参考价值的文章主要介绍了MVC设计模式、JSP开发模式、三层架构&MVC练习学生信息管理系统。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

MVC设计模式、JSP开发模式、三层架构&MVC练习学生信息管理系统

本文将介绍MVC设计模式、JSP开发模式、三层架构和MVC练习的基本概念,并演示如何使用这些技术来构建一个学生信息管理系统。该系统将包括数据库准备、查询、增加、删除、更新和分页功能。

MVC设计模式

MVC是一种软件架构模式,将应用程序分为三个部分:模型(Model)、视图(View)和控制器(Controller)。MVC模式的目标是将应用程序的数据、用户界面和控制逻辑分离,以实现更好的代码组织、更好的可维护性和更好的可重用性。

在MVC模式中,Model表示应用程序的数据和业务逻辑,View表示应用程序的用户界面,Controller表示应用程序的控制逻辑。这三个部分相互独立,彼此之间只通过接口通信。这种分离使得应用程序的每个部分都可以独立变更,而不会影响到其他部分。

JSP开发模式

JSP(JavaServer Pages)是一种动态网页技术,它允许将Java代码嵌入到HTML页面中。JSP开发模式是一种使用JSP的软件开发模式,它将应用程序分为多个模块,每个模块都使用JSP来实现。

在JSP开发模式中,每个模块都包含一个JSP页面,该页面负责显示数据和处理用户输入。每个模块都可以独立开发和测试,然后通过一个控制器将它们组合起来形成一个完整的应用程序。

三层架构

三层架构是一种软件架构模式,将应用程序分为三个部分:表示层(Presentation Layer)、业务逻辑层(Business Logic Layer)和数据访问层(Data Access Layer)。三层架构的目标是将应用程序的不同方面分离,以实现更好的代码组织和可维护性。

在三层架构中,表示层负责显示数据和处理用户输入,业务逻辑层负责应用程序的业务逻辑,数据访问层负责与数据库交互。这三个部分相互独立,彼此之间只通过接口通信。这种分离使得应用程序的每个部分都可以独立变更,而不会影响到其他部分。

MVC练习

为了练习MVC模式和JSP开发模式,我们将开发一个简单的学生信息管理系统。该系统将包括一个表示层、一个业务逻辑层和一个数据访问层。我们将使用MySQL数据库来存储学生信息。

数据库准备

首先,我们需要创建一个名为“student”的数据库,以存储学生信息。下面是用于创建数据库和表的SQL语句:

CREATE DATABASE student;

USE student;

CREATE TABLE IF NOT EXISTS `student` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(50) NOT NULL,
  `gender` varchar(10) NOT NULL,
  `age` int(11) NOT NULL,
  `major` varchar(50) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

查询功能

我们将在表示层中实现查询功能。下面是查询页面的JSP代码:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>查询学生信息</title>
</head>
<body>
    <form action="StudentServlet" method="post">
        <input type="hidden" name="action" value="query" />
        姓名:<input type="text" name="name" />
        <input type="submit" value="查询" />
    </form>
</body>
</html>

在这个页面中,我们使用一个表单来接收用户输入的查询条件。当用户点击“查询”按钮时,表单将提交到StudentServlet中,并传递一个名为“action”的参数,值为“query”。

下面是StudentServlet的代码:文章来源地址https://www.toymoban.com/news/detail-424802.html

package com.example.servlet;

import java.io.IOException;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.example.dao.StudentDao;
import com.example.model.Student;

@WebServlet("/StudentServlet")
public class StudentServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;

    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        String action = request.getParameter("action");

        if ("query".equals(action)) {
            String name = request.getParameter("name");
            List<Student> students = StudentDao.query(name);
            request.setAttribute("students", students);
            request.getRequestDispatcher("query.jsp").forward(request, response);
        }
    }
}

在这个Servlet中,我们首先从请求中获取名为“action”的参数,然后根据参数值执行不同的操作。如果参数值为“query”,则从请求中获取名为“name”的参数,然后使用StudentDao查询学生信息,并将结果存储在请求属性“students”中。最后,将请求转发到一个名为“query.jsp”的JSP页面,该页面将显示查询结果。

下面是query.jsp的代码:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>查询结果</title>
</head>
<body>
    <table>
        <tr>
            <th>ID</th>
            <th>姓名</th>
            <th>性别</th>
            <th>年龄</th>
            <th>专业</th>
        </tr>
        <c:forEach items="${students}" var="student">
            <tr>
                <td>${student.id}</td>
                <td>${student.name}</td>
                <td>${student.gender}</td>
                <td>${student.age}</td>
                <td>${student.major}</td>
            </tr>
        </c:forEach>
    </table>
</body>
</html>

在这个JSP页面中,我们使用<c:forEach>标签循环显示查询结果。每个结果将显示在一个HTML表格中。

增加功能

我们将在表示层中实现增加功能。下面是增加页面的JSP代码:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>增加学生信息</title>
</head>
<body>
    <form action="StudentServlet" method="post">
        <input type="hidden" name="action" value="add" />
        姓名:<input type="text" name="name" /><br />
        性别:<input type="radio" name="gender" value="男" checked="checked" /><input type="radio" name="gender" value="女" /><br />
        年龄:<input type="text" name="age" /><br />
        专业:<input type="text" name="major" /><br />
        <input type="submit" value="提交" />
    </form>
</body>
</html>

在这个页面中,我们使用一个表单来接收用户输入的新增信息。当用户点击“提交”按钮时,表单将提交到StudentServlet中,并传递一个名为“action”的参数,值为“add”。

下面是StudentServlet的代码:

package com.example.servlet;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.example.dao.StudentDao;
import com.example.model.Student;

@WebServlet("/StudentServlet")
public class StudentServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;

    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        String action = request.getParameter("action");

        if ("add".equals(action)) {
            String name = request.getParameter("name");
            String gender = request.getParameter("gender");
            int age = Integer.parseInt(request.getParameter("age"));
            String major = request.getParameter("major");
            Student student = new Student(name, gender, age, major);
            StudentDao.add(student);
            response.sendRedirect("add.jsp");
        }
    }
}

在这个Servlet中,我们首先从请求中获取名为“action”的参数,然后根据参数值执行不同的操作。如果参数值为“add”,则从请求中获取新增信息,然后使用StudentDao将新增信息插入到数据库中。最后,将请求重定向到一个名为“add.jsp”的JSP页面,该页面将显示新增成功的消息。

删除功能

我们将在表示层中实现删除功能。下面是删除页面的JSP代码:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>删除学生信息</title>
</head>
<body>
    <form action="StudentServlet" method="post">
        <input type="hidden" name="action" value="delete" />
        ID:<input type="text" name="id" />
        <input type="submit" value="删除" />
    </form>
</body>
</html>

在这个页面中,我们使用一个表单来接收用户输入的删除条件。当用户点击“删除”按钮时,表单将提交到StudentServlet中,并传递一个名为“action”的参数,值为“delete”。

下面是StudentServlet的代码:

package com.example.servlet;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.example.dao.StudentDao;

@WebServlet("/StudentServlet")
public class StudentServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;

    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        String action = request.getParameter("action");

        if ("delete".equals(action)) {
            int id = Integer.parseInt(request.getParameter("id"));
            StudentDao.delete(id);
            response.sendRedirect("delete.jsp");
        }
    }
}

在这个Servlet中,我们首先从请求中获取名为“action”的参数,然后根据参数值执行不同的操作。如果参数值为“delete”,则从请求中获取删除条件,然后使用StudentDao将符合条件的学生信息从数据库中删除。最后,将请求重定向到一个名为“delete.jsp”的JSP页面,该页面将显示删除成功的消息。

更新功能

我们将在表示层中实现更新功能。下面是更新页面的JSP代码:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>更新学生信息</title>
</head>
<body>
    <form action="StudentServlet" method="post">
        <input type="hidden" name="action" value="update" />
        ID:<input type="text" name="id" /><br />
        姓名:<input type="text" name="name" /><br />
        性别:<input type="radio" name="gender" value="男" checked="checked" /><input type="radio" name="gender" value="女" /><br />
        年龄:<input type="text" name="age" /><br />
        专业:<input type="text" name="major" /><br />
        <input type="submit" value="提交" />
    </form>
</body>
</html>

在这个页面中,我们使用一个表单来接收用户输入的更新信息。当用户点击“提交”按钮时,表单将提交到StudentServlet中,并传递一个名为“action”的参数,值为“update”。

下面是StudentServlet的代码:

package com.example.servlet;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation

到了这里,关于MVC设计模式、JSP开发模式、三层架构&MVC练习学生信息管理系统的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • javaWebssh汽车销售管理系统myeclipse开发mysql数据库MVC模式java编程计算机网页设计

    一、源码特点      java ssh汽车销售管理系统是一套完善的web设计系统(系统采用ssh框架进行设计开发),对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用 B/S模式开发。开发环境为TOMCAT7.0,Myeclipse8.5开发,数据库为Mysql5.0,使用java语言开发。

    2024年02月04日
    浏览(61)
  • javaWebssh运动会管理系统myeclipse开发mysql数据库MVC模式java编程计算机网页设计

    一、源码特点      java ssh运动会管理系统是一套完善的web设计系统(系统采用ssh框架进行设计开发),对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为TOMCAT7.0,Myeclipse8.5开发,数据库为Mysql5.0,使用java语言开发。

    2024年01月20日
    浏览(62)
  • MVC设计模式

    在当今的软件开发领域,MVC(Model-View-Controller)设计模式已经成为了一种广泛使用的架构模式。它为应用程序提供了一种结构化的方法,将数据、用户界面和业务逻辑分开,从而使得应用程序更易于维护、扩展和重用。 一、MVC的概述 MVC是一种分层的设计,主要用于解决UI交互

    2024年02月02日
    浏览(56)
  • Spring MVC学习之——了解MVC设计模式

    MVC 模式代表 Model-View-Controller(模型-视图-控制器) 模式。这种模式用于应用程序的分层开发。 Model(模型) - 模型代表一个存取数据的对象或 JAVA POJO。它也可以带有逻辑,在数据变化时更新控制器。 数据模型:POJO 业务模型:Service,Mapper View(视图) - 视图代表模型包含的

    2024年01月21日
    浏览(58)
  • .net 软件开发模式——三层架构

    三层架构是一种常用的软件开发架构模式,它将应用程序分为三个层次: 表示层、业务逻辑层和数据访问层 。每一层都有明确的职责和功能,分别负责用户交互、业务处理和数据存储等任务。这种架构模式的优点包括易于维护和扩展、更好的组织结构和代码重用性、更高的

    2024年02月10日
    浏览(55)
  • 设计模式 ~ 职责链、策略、适配器、MVC、MVVM

    一种行为型设计模式,它允许多个对象按照特定的顺序处理请求,直到其中一个对象能够处理该请求为止 一个流程,需要多个角色处理,通过 一个“链”串联起来,各个角色相互分离,互不干扰 如:promise.then、Jquery 的链式 如果一项业务有太多的 if else 或 switch case,那么可

    2024年02月16日
    浏览(50)
  • 安卓基础巩固(四):设计原则、安卓主流技术框架MVC/MVP/MVVM、设计模式

    模块化功能:使得程序模块化,即内部高聚合,模块之间低耦合 提高开发效率:开发人员只需要专注于一点(视图显示、业务逻辑、数据处理) 提高测试效率:后期测试时可以迅速根据报错反馈,定位到问题出现的位置。 六大设计原则是设计模式的理论,设计模式是设计原

    2024年02月06日
    浏览(57)
  • Python web实战之 Django 的 MVC 设计模式详解

      技术栈:Python、Django、HTML、CSS、JavaScript。 在 Web 开发中,MVC(Model-View-Controller)模式是一种非常常见的设计模式,它可以帮助我们更好地管理代码,提高代码的可维护性。今天就介绍如何使用 Django 框架实现 MVC 模式。 MVC 模式是一种软件设计模式,它将应用程序分为三个

    2024年02月14日
    浏览(116)
  • 三层架构与MVC架构区别

    表示层:主要对用户的请求接受,以及数据的返回,为客户端提供应用程序的访问。 servlet层 业务逻辑层:对我们数据实现业务逻辑的封装 service层 数据访问层:对数据库访问操作 dao层         1.MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写

    2024年02月04日
    浏览(44)
  • JavaEE的MVC(Model-View-Controller)设计模式

    JavaEE的MVC(Model-View-Controller)设计模式是一种用于组织和管理Web应用程序的架构模式。MVC模式将应用程序分为三个主要组件:模型(Model)、视图(View)和控制器(Controller)。每个组件有着不同的责任,以促使代码的分离和模块化,提高应用程序的可维护性和可扩展性。 以

    2024年01月23日
    浏览(58)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包