基于jsp的网上考试系统论文内容摘要:

HP三分天下的局面,但是对 于大型的电子商务站点, JSP及 J2EE技术将成为首选。 用 JSP 开发 Web的几种主要方式 JSP网站开发技术标准给出了两种使用 jsp的方式。 这些方式都可以归纳为模式一和模式二。 这两种结构在 jsp技术一开始应用,就占有了绝对的统治地位。 在当今的开发中,我们比较偏向使用模式二,但是模式一对小型的开发比较占优势。 下面来介绍这两种模式。 模式一: jsp+javabean 模式一就是指 jsp+javabean技术,如图 21所示。 图 21 在模式一中, jsp页面独自响应请求并将处理结果返回客户。 所有的 数据通过 bean来处理,jsp实现页面的表现。 模式一技术也实现了页面的表现,和页面的商业逻辑的相分离。 在最新引入jsp技术的时候,模式一占有统治地位。 在用 jsp处理显示和业务逻辑时,使用模式一比较简单。 Jsp页面独自响应请求并经处理后把结果返回给客户端。 所有的数据处理通过 javabean来处理,jsp实现页面的显示。 通过使用模式一,可以实现页面的显示和页面的内容(逻辑)分离。 但是大量使用此模式时可能带来一个副作用,那就是会导致在页面里嵌入了大量的 java控制代码,当要处理的业务逻辑很复杂时,这种情况就变得非 常糟糕。 大量的内嵌代码使得页面变得庞大,同时也非常复杂,当页面的功能实现后交给美工或者页面内容设计人员进行包装时,问题就变得严重了。 所以,在大型的项目里,这种方法将会导致页面的维护困难。 故在大型的项目中不要使用模式一,而在小型的应用中可以考虑此模式。 模式二: jsp+servlet+javabean 模式二,就是指 jsp+servlet+javabean技术,如图 22所示。 图 22 在模式二中,结合了 jsp和 servlet技术。 模式二充分利用了 jsp和 servlet两种技术原有的优点。 此模式遵循模型 视图 控制器( mvc)模式,模型( model)代表的是系统的内部状态和业务逻辑 beans,视图( view)代表的是 jsp页面和表现层,控制器( controller)代表的是servlets。 它的主要思想是使用一个或者多个 servlet作为控制器。 请求由前沿的 servlet(可能是多个 servlet构成的一个处理链)接收并处理后,会重新定向到 jsp。 在 servlet作为控制器时,每个 servlet通常只实现很少一部分功能,多个 servlet控制器就可以结合起来完成复杂的任务,这样的好处是 servlet的重用 性好,一个副作用就是可能会导致请求响应的时间加长。 在此模式里, javabean作为模型的角色,它充当 jsp和 servlet通信的中间工具, servlet处理完后设置bean的属性, jsp读取此 bean的属性,然后进行显示。 在实际的项目开发过程中,页面设计者可以方便地使用普通的 html工具来开发 jsp页面, servlet却更适合于后端开发者使用,开发 servlets需要的工具是 java集成开发工具,也就是说, servlets技术需要技术人员更多的编程。 此模式更加地把显示和逻辑分离,使得代码比模式一更容易管理, 适合于大型项目的开发。 在本考试系统中,因为项目不是太大,故选择了模型一模式,即 jsp+javabean模式。 第三章 系统设计 可复用性和可维护性是现代软件设计追求的重要目标。 面向对象的软件系统设计,在支持可维护性的同时,提高系统的可复用性。 软件设计的原则首先都是复用的原则,遵循软件设计原则可以有效地提高系统的复用性,同时提高系统的可维护性。 开闭原则 (OpenClosed Principle, OCP) 开闭原则是面向对象的可复用设计的基石,其含义是:一个软件实体应 对扩展开放,对修改关闭( Software should be open for extension, but closed to modification) . 为了满足开闭原则,抽象化是关键。 用 JAVA语言可以给系统定义一个抽象设计,该抽象设计的行为在具体的实现层被实现。 可以采用 JAVA类或 JAVA接口,规定出所有的具体类必须提供的方法,这个抽象层要预见所有可能的扩展,从而使得在任何扩展情况下,系统的抽象层不需修改,从而满足 “开闭 ”原则。 可变性封装原则( Principle of Encapsulation of Variation, EVP)是对开闭原则的另一种表述。 该原则要求在进行系统设计时,考虑容许发生的变化,且变化不导致系统重新设计。 达到这一目的的方法是找到一个系统的可变因素,将它封装在一个对象里,通过类的继承来表示所有可能变化,起到万变不离其中的效果。 在进行可变性封装时,应注意一种可变性不应当与另一种可变性混合在一起,也就是说在具体继承类中最好不能再有可变性,这样保证可变性封装类的继承等级结构不会超过两层。 里氏代换原则 (Liskov Substitution Principle, LSP) 抽象化到具体化要使用继承关系,子类与基类在软件中角色互换关系由里氏代换原则约束。 里氏代换原则是指在一个软件实体中如果使用的是一个基类的话,那么一定适用于其子类,软件实体无法察觉基类对象与子类对象的区别,反之则不成立。 里氏代换原则是继承复用的基石。 JAVA语言编译器负责检查一个程序是否符合里氏代换。 依赖倒转原则 (Dependence Inversion Principle, DIP) 依赖倒转原则是面向对象设计的主要机制,其内容是 :要依赖于抽象,不要依赖于具体。 依赖 倒转原则要求客户端依赖于抽象耦合;抽象不应当依赖于细节,细节应当依赖于抽象;要针对接口编程,不要针对实现编程。 以抽象方式耦合是依赖倒转原则的关键。 依赖倒转原则是面向对象设计的核心原则,设计模式的研究和应用是以依赖倒转原则为指导的。 在 JAVA语言中,提供两种机制支持抽象类型。 它们分别是 JAVA接口和 JAVA抽象类。 接口隔离原则( Interface Segregation Principle, ISP) 接口隔离原则内容是指使用多个专门的接口优于使用单一的总接口,一个类对另外一个类的 依赖性应当是建立在最小的接口上。 接口是指一个类型所具有的方法特征的集合。 一个接口应当代表一个角色,而不是多个角色。 如果系统涉及多个角色,那么每一个角色都应当由一个特定的接口代表。 将接口理解为狭义的 JAVA接口,接口隔离原则就是为同一个角色提供宽、窄不同的接口,以达到为客户端订制服务的目的。 合成 /聚合复用原则 (Composite/Aggregate Resuse Principle, CARP) 合成 /聚合复用原则就是在一个新的对象里使用一些已有的对象,使之成为新对象的一部分,新的对象通过向已有对象进行委派达到复用已有功能的目的。 合成 /聚合复用原则可表述为:尽量使用合成 /聚合,尽量不用继承。 迪米特法则( Law of Demeter, LoD 或 Least Knowledge Principle, LKP) 迪米特法则是指一个对象应该对其他的对象有尽可能少的了解,每一个软件单元对其他单元都只有最少的知识,而且局限于那些与本单元密切相关的软件单元。 如果两个类不必彼此直接通信,那么这两个类就不应当发生直接的相互作用。 如果其中的一个类需要调用另一个类的某一个方法,通过第三者转 发这个调用。 系统模块图: 图 31 系统整体分为四大模块:系统登录模块,超级管理员模块,教师模块,学生模块。 系统登录模块功能: 完成不同角色的登录,传递相应的参数到各个模块,为下面各模块操作做准备。 超级管理员模块的功能: 实现对试题的管理,对试卷的管理,对科目的管理,对通知的管理,对教师用户的管理,对学生用户的管理,以及对自身信息的修改。 教师模块的功能: 实现生成题目,生成试卷,自身信息的修改等功能。 学生模块的功能: 实现参加考试,成绩查询等功能。 据库设计 数据库设计的重要性 数据库设计是指对于一个给定的应用环境,提供一个确定最优数据模型与处理模式的逻辑设计,以及一个确定数据库存储结构与存取方法的物理设计,建立起既能反映现实世界信息和信息联系,满足用户数据要求和加工要求,又能被某个数据库管理系统所接受,同时能实现系统目标,并有效存取数据的数据库。 数据库已成为现代信息系统等计算机系统的基础与核心部分。 数据库设计的好坏直接影响着整个系统的效率和质量。 在数据库设计中,良好的、清晰的数据库设计方案对数据库设计来说是非常重要的。 之所以需要制定好的数 据库设计方案,是因为设计工作提倡组织性、条理性。 如果项目已经非常有条理地分析并制定了清晰的设计方案,设计人员就能更好地控制项目的设计、实现以及管理。 由于数据库设计的目标是要求完全满足业务的数据库存储要求,这样,最终的产品也就是一个准确的、便于使用的和性能优秀的数据库。 假设已经制定了优秀的数据库设计方案,并且最终的数据库也实现了所有业务处理、规则以及便于客户使用的应用软件接口。 在像这样的数据库中,数据检索和修改就可以很容易实现,同样,从用户的角度,数据库的维护工作也变得简单并且容易完成。 数据库本身也就可以确 保数据完整性以及保持与业务规则一致。 在设计阶段缺少全面而清晰的方向,就会导致没有完全实现业务规则和业务处理,导致有些所需的信息疏漏。 没有一个全面的设计方案,就不可能与客户和最终用户开展全面的调研工作,也就不能从客户和最终用户那里得到所有业务的反馈。 这样设计出来的数据库系统就不可能完全满足公司的需求,甚至还需要手工处理来保持数据的准确性和一致性。 可见,数据库设计工作在设计阶段中是多么的重要。 数据库 er图: 图 32 系统包括七个实体:管理员,教师,学生,科目,试题,试卷,题型 实际生成 九个数据库表 : 用户表 :admin,student,teacher 通知表 :news 科目表 :subject 试题表 :question 试卷表 :paper 答案表 :paper_answer 分数表 :scores 表间关系图 : 图 33 系统数据库表 admin表 序号 字段名 数据类型 备注 1 id int(8) 主键 2 username varchar(50) 管理员帐号 3 userpsw varchar(30) 管理员密码 4 name varchar(50) 管理员真名 5 sex enum(39。 male39。 ,39。 female39。 ) 管理员性别 6 dept varchar(50) 管理员所属部门 7 addr varchar(50) 管理员住址 8 idcard varchar(20) 管理员身份证号码 9 phone varchar(20) 管理员联系电话 10 varchar(40) 管理员 11 status Enum(39。 y39。 ,39。 n39。 ) 管理员状态 teacher表 序号 字段名 数据类型 备注 1 id int(8) 主键 2 username varchar(50) 教师帐号 3 userpsw varchar(30) 教师密码 4 tea_no varchar(30) 教师号 5 name varchar(50) 教师真名 6 sex enum(39。 male39。 ,39。 female39。 ) 教师性别 7 idcard varchar(20) 教师身份证号 8 addr varchar(50) 教师住址 9 dept varchar(50) 教师所属部门 10 birthday varchar(10) 教师生日 11 phone varchar(20) 教师联系电话 12 varchar(50) 教师 13 status enum(39。 y39。 ,39。 n39。 ) 教师状态 student表 序号 字段名 数据类型 备注 1 id int(8) 主键 2 username varchar(50) 学生帐号 3 userpsw varchar(30) 学生密码 4 std_no varchar(30) 学号 5 name varchar(50) 学生真名 6 sex enum(39。 male39。 ,39。 female39。 ) 学生性别 7 idcard varchar(20) 学生身份证 8 class varchar(50) 学生所属班级 9 addr varchar(50) 学生住址 10。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。