学生管理系统的几个设计模式

本次学生管理系统,主要采用的是使用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中的顺序,依次过滤,也可以设置属性,来调整顺序。


  • 3
    点赞
  • 2
    评论
  • 11
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

相关推荐
为实现用户需求,从需求分析阶段数据流图出发,根据小组讨论后确定最佳方案。本系统主要包括两大功能模块:学生信息和成绩信息两个系统。其中学生信息系统划分为七个模块,学生成绩划分为四个模块。然后在需求分析阶段所确定系统数据需求基础上,进一步设计数据结构。在测试过程中,先对单个模块进行测试,然后把模块连接起来进行测试。测试完成后书写文档,最后小组成员和用户在一块审查和复审。 1、 课题陈述 一方面,在时下这个飞速发展信息社会中,直到今天仍然没有一套完善可行学生信息管理系统出现在学校里。每年,从大专生、本科生到硕士生、博士生,几千人入学、升学、毕业,全要由教务处和各系老师人工管理。信息量之巨大,工作量之繁重,是难以想象。因此,学校和各个系都要安排多名教师专门负责学生学籍管理,浪费了大量人力资源。然而,即使这样,管理仍然谈不上井井有条。举一个最简单真实例子,一个同学姓名在花名册里印错了,就一错错了三年,一直没能改正。同学想去改,却不知道是应该找系里,还是去找教务处。还有,当学生基本信息,比如家庭住址、电话等变更后,无法及时在档案中修改,使得老师与同学无法联系沟通。 另一方面,从社会这方面讲,随着计算机普及,越来越多学校利用计算机来处理日常事务。面对众多数据资料,很多管理者常常感到无从下手。在数字化今天,我们需要一个学生管理系统,使我们整体管理水平上一个档次,与如今这个高科技信息社会接轨。 因此,如何有效管理学生信息,帮助学校和老师管理和掌握这些情况,这就是学生信息管理系统需要完成任务。
©️2020 CSDN 皮肤主题: 技术黑板 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值