本次学生管理系统,主要采用的是使用MVC模式,单例模式,和过滤链模式进行整个项目的设计以及数据库的设计。

下面简单介绍下,经过这次项目对这几种设计模式的了解。

一、MVC设计模式

首先,先介绍下MVC设计。MVC全名是Model View Controller,是模型(model数据持久层)-视图(view表现层)-控制器(controller业务逻辑层)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。MVC被独特的发展起来用于映射传统的输入、处理和输出功能在一个逻辑的图形化用户界面的结构中。

三层体系结构是将整个系统划分为下图所示的结构

(1)表现层(Presentation layer):包含表示代码、用户交互GUI、数据验证。

该层用于向客户端用户提供GUI交互,它允许用户在显示系统中输入和编辑数据,同时

系统提供数据验证功能。

(2)业务逻辑层(Business layer):包含业务规则处理代码,即程序中与业务

相关专业算法、业务政策等等。该层用于执行业务流程和制订数据的业务规则。业务逻

辑层主要面向业务应用,为表示层提供业务服务。

(3)数据持久层(Persistence layer):包含数据处理代码和数据存储代码。数

据持久层主要包括数据存取服务,负责与数据库管理系统(如数据库)之间的通信。

三个层次的每一层在处理程序上有各自明确的任务,在功能实现上有清晰的区分,各层与其余层分离,但各层之间存有通信接口。

采用三层软件设计架构后,软件系统在可扩展性和可复用性方面得到极大提高,在资源分配策略设计合理运用的同时,软件的性能指标也得到提升,系统的安全性和易管理性也得到改善。

三层体系结构对Web应用的软件架构产生很大影响,促进了基于组件的设计思想,

产生了许多开发Web层次框架的实现技术。较之两级结构来说,三层结构修改和维护上更加方便。目前开发B/S结构的Web应用系统广泛采用这种三层体系结构。

本次项目中,以jsp做为表现层,如下图所示:

以Servlet和service做为业务逻辑层,其中Servlet主要是用于接收客户端发送来的各类请求,并选择相应业务处理的service,最后将结果返回客户端。

数据持久层则以javaBean来在代码中显示。

二、单例模式

概念:java中单例模式是一种常见的设计模式,单例模式分三种:懒汉式单例、饿汉式单例、登记式单例三种。   单例模式有一下特点:   1、单例类只能有一个实例。   

2、单例类必须自己自己创建自己的唯一实例。   

3、单例类必须给所有其他对象提供这一实例。   

单例模式确保某个类只有一个实例,而且自行实例化并向整个系统提供这个实例。在计算机系统中,线程池、缓存、日志对象、对话框、打印机、显卡的驱动程序对象常被设计成单例。这些应用都或多或少具有资源管理器的功能。每台计算机可以有若干个打印机,但只能有一个Printer Spooler,以避免两个打印作业同时输出到打印机中。每台计算机可以有若干通信端口,系统应当集中管理这些通信端口,以避免一个通信端口同时被两个请求同时调用。总之,选择单例模式就是为了避免不一致状态,避免政出多头。

本次项目中数据库链接工具DBUtil就采用了单例模式设计,其中的链接采用了c3p0数据库连接池。

三、过滤链模式

因为该系统是用UTF-8,浏览器为ISO_8859_1,且除了登录界面,其他页面必须用户登录。然而在每个Servlet里面都需要进行转码和是否登录的判断,这样不利于我们代码的编写和运用。所以采用一条过滤链模式,共有两个过滤器,一个是判断用户是否登录,一个是用来给整个服务的请求进行转码。

过滤器中需要实现Filter接口,并在doFilter(ServletRequest request, ServletResponse response,         FilterChain chain)中重写该方法。

同时也需要在web.xml中配置接口。

/*是过滤所有的请求服务器的资源。

过滤器会根据在web.xml中的顺序,依次过滤,也可以设置属性,来调整顺序。

学生管理系统的几个设计模式相关推荐

  1. java上机实验报告_javaweb上机实验报告(学生管理系统)

    jsp学生管理系统实验报告 一 实验题目 在线学生管理系统 二 开发背景简介 随着网络技术的发展和普及许多以前基于 CS的应用都开始向 BS方向发展,而Java在这方面的应用有着许多其他技术不具备的优 ...

  2. 《编码规范和测试方法——C/C++版》作业 ·008——编写一个符合依赖倒置原则的简单学生管理系统

    文章目录 问题描述 参考解答 整体架构 UML图 整体代码 MySQL-C-API封装 Model层 Dao层 Service层 Controller层 View层 主程序 测试环境 测试流程 测试效 ...

  3. 学生管理系统(JSP+Servlet+MySQL)

    文章目录 前言 项目功能 运用知识 一 .前期准备工作 1. 导入jar包 2. 创建包 2.1 持久层 2.2 控制层(统一放在web包下) 2.3 其他 3. 创建配置文件 3.1 log4j.p ...

  4. 教育培训机构学生管理系统

    摘  要 计算机网络如果结合使用信息管理系统,能够提高管理员管理的效率,改善服务质量.优秀的教育培训机构学生管理系统能够更有效管理教育培训机构学生信息业务规范,帮助管理者更加有效管理教育培训机构学生信 ...

  5. (附源码)ssm学生管理系统 毕业设计 141543

    基于ssm学生管理系统 摘 要 随着互联网趋势的到来,各行各业都在考虑利用互联网将自己推广出去,最好方式就是建立自己的互联网系统,并对其进行维护和管理.在现实运用中,应用软件的工作规则和开发步骤,采用 ...

  6. python学生管理系统数据库_Django+Mysql实现--学生管理系统

    写在前面 在python课中老师要求使用python的web框架实现学生管理系统,经过查找资料等,最后选择了使用Django来搭建这个系统 Django Django是一个开放源代码的Web应用框架, ...

  7. DBUtils以及学生管理系统

    一.DBUtils通用增删改查代码 第一种:没有释放资源,有if条件语句 object-args与onject[]args的区别 以问号个数为准 元数据(Meata data) 描述数据的数据 Str ...

  8. python制作学生管理系统_Python——面向对象,简易学生信息管理系统

    一.概述 1.1涉及到的知识点 项目开发:创建项目,创建包,导入包: 面向对象:静态方法,继承,内置函数,自定义函数: 数据类型:列表,字典,字符串.列表.字典的转换和自动生成导向: 异常处理:捕获异 ...

  9. 用python设计学生管理系统_python+tkinter实现学生管理系统

    本文实例为大家分享了python+tkinter实现学生管理系统的具体代码,供大家参考,具体内容如下 from tkinter import * from tkinter.messagebox imp ...

最新文章

  1. 阅读Book: MultiObjective using Evolutionary Algorithms (1) --prologue 单目标和多目标的不同
  2. 64xWin7Orcale安装
  3. hdu 4090--GemAnd Prince(搜索)
  4. 【运筹学】单纯形法总结 ( 单纯形法原理 | 单纯形法流程 | 单纯形表 | 计算检验数 | 最优解判定 | 入基变量 | 出基变量 | 方程组同解变换 ) ★★★
  5. mysql util_关于mysql数据库操作工具类MySQLUtils用于连接数据提交sql脚本及结果转为JSONArray等操作...
  6. 如何查看、备份电脑隐藏的恢复分区
  7. Spark系列—02 Spark程序牛刀小试
  8. java mongodb 删除字段类型_Mongodb基本数据类型、常用命令之增加、更新、删除
  9. 栈在表达式计算过程中的应用
  10. 如何VMare虚拟机里安装Mac操作系统(图文详解)
  11. 组合数据类型练习,综合练习
  12. 2019年企业数据生产力调研报告,90%的人都没看过
  13. 性能优化—— 代码优化
  14. 零基础学python大概要多久-零基础学Python要多久
  15. 7-16 装箱问题 (20 分)
  16. linux at24测试程序,C51读写AT24C04源代码及AT24C04测试程序
  17. 使用xcode上传ipa到app store
  18. 做一个好看的个人网站
  19. android 图片手动放大,Android图片的手动放大缩小
  20. Android之doze机制的白名单

热门文章

  1. 【Node】—nrm的简单使用
  2. HTML+CSS制作旋转的loading效果
  3. windows10系统如何设置标题栏显色
  4. 基金投资需要注意什么?
  5. 免费盈利模式是骗人的吗?
  6. 为什么你写的文字没人看,没人赞?
  7. 做自媒体最重要的是坚持,但你坚持后还是一无所获
  8. C++低级程序设计支持规则
  9. CentOS安装docker图解(下载、卸载、安装、启动、检测、设置开机自启动)
  10. 学习PowerShell和SQL Server –简介