选课系统的设计与实现_第1页
选课系统的设计与实现_第2页
选课系统的设计与实现_第3页
选课系统的设计与实现_第4页
选课系统的设计与实现_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

毕业设计说明书选课系统的设计与实现摘要随着计算机及互联网的普及,计算机已经在人们生活的各个领域中都起到了越来越重要的作用作为计算机应用的一个重要部分,计算机信息管理也被广泛应用。相比手工管理,计算机管理有着很多无法比拟的优点,例如查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。学生选课管理系统作为高等院校信息化发展的一个重要组成部分,正在逐渐的改变着传统人工管理的选课模式,慢慢的提高着管理人员和老师的工作效率,极大的提高学生管理的效率,同时也为学生管理带来方便。本系统使用JAVA语言来开发制作界面,使用MYSQL做后台数据库支持。这使得系统有较高的安全性和较好的性能根据登录类型的不同,系统登录以后弹出不同的窗口学生窗口和管理员窗口。学生在系统中可以选课、退选课程、修改密码。管理员在系统中可以现实以下功能学生的查询;课程的增加,删除,修改,查询等功能。关键词选课系统,JAVA,MYSQLTHEDESIGNANDIMPLEMENTATIONOFCOURSESELECTIONSYSTEMABSTRACTWITHTHEPOPULARITYOFCOMPUTERSANDINTERNET,THECOMPUTERHASBEENINALLAREASOFPEOPLESLIFEANDITHASPLAYEDANINCREASINGLYIMPORTANTROLEASANIMPORTANTPARTOFCOMPUTERAPPLICATIONS,INFORMATIONMANAGEMENTISALSOWIDELYUSEDCOMPAREDTOMANUALMANAGEMENT,COMPUTERMANAGEMENTHASMANYINCOMPARABLEADVANTAGES,SUCHASEASYTOFIND,HIGHRELIABILITY,LARGEMEMORYCAPACITY,SECURITY,LONGLIFEANDLOWCOSTSTUDENTSELECTIVESYSTEMASAIMPORTANTPARTOFCOLLEGEINFORMATIONITISGRADUALLYCHANGINGTHETRADITIONALOFARTIFICIALEDUCATIONALADMINISTRATIONELECTIVEANDALSOGRADUALLYINCREASETHEEFFICIENCYOFTEACHERSANDSTUDENTSCANGREATLYIMPROVETHEEFFICIENCYOFSTUDENTMANAGEMENT,THESYSTEMISALSOFORSTUDENTCONVENIENCETHESYSTEMUSETHEJAVATOCREATEINTERFACES,ANDMYSQLWASUSEDTODOBACKENDDATABASESUPPORTTHISALLOWSTHESYSTEMHASHIGHSECURITYANDBETTERPERFORMANCEACCORDINGTOTHEDIFFERENTLOGTYPES,THESYSTEMAFTERLOGGINGINWILLSHOWADIFFERENTPOPUPWINDOWTHEWINDOWOFSTUDENTSANDADMINISTRATORSWINDOWSTUDENTSINTHESYSTEMCANBEELECTIVE,COURSEWITHDRAWAL,CHANGEYOURPASSWORDTEACHERSINTHESYSTEMCANREALISTICALLYTHEFOLLOWINGFEATURESSTUDENTSQUERYCOURSEADD,DELETE,MODIFY,QUERYANDOTHERFUNCTIONSKEYWORDSCOURSESELECTIONSYSTEM,JAVA,MYSQL目录1引言111开发背景112系统架构113系统目标12主要技术介绍321J2EE概述322J2EE的优势323MVC设计模式424SSH框架介绍5241STRUTS简介5242HIBERNATE简介6243SPRING简介63系统开发工具及容器831开发工具832数据库的选择8321MYSQL简介833JDK版本的选择834容器8341TOMCAT简介94选课系统总体设计1041需求调研1042可行性分析1043需求分析11431系统概要设计1144系统分层设计1145系统流程1246设计的基本思想145详细设计1651数据库16511数据库设计16512数据表1652WEB层的设计17521JSP简介1753EJB层的设计18531实体BEAN的设计18532数据库映射与连接2154选课系统的实现22541用户登录22542用户注册24543管理员功能27544学生功能296系统测试317结论32参考文献33致谢341引言11开发背景当今社会,信息资源已经成为各个行业的重要财富。建立一个满足各行各业信息处理要求的行之有效的信息系统也成为了一个企业或者组织生存和发展的重要条件之一。因此,作为信息系统和基础的核心数据库技术得到了越来越广泛的应用。当今的社会是一个信息化快速发展的时代。在不同的行业发展中都离不开处理信息,因此基于计算机的信息管理系统被广泛的应用于商业发展和生活中。在信息化发展迅速的今天,利用计算机进行系统的信息化管理,不仅提高了我们的工作效率,也大大减少了人力的浪费,同时也有效的提高了安全性。对于整理起来相对复杂的信息和文档,利用计算机所做的各种管理系统可以充分的发挥其操作简单、管理系统化的优越性。本系统的设计使得管理学生选课信息更加简单快捷1。学生选课作为一种信息资源的集散地,包含很多的信息数据管理。由于数据繁多,容易丢失,且不易查找。因此,学生选课系统是一个学校不可缺少的部分,它的内容对于学校的决策者和管理者来说都至关重要,所以学生选课系统应该能够为用户提供充足的信息和快捷的查询手段。但一直以来人们使用传统人工的方式管理文件档案,这种管理方式存在着许多缺点,如效率低、保密性差,另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。随着以网络为依托的选课系统的快速发展,网上选课系统以方便,快捷的优点在逐渐的替代传统的选课系统,使得学生选课管理工作趋于规范化,系统化2。12系统架构本文重点研究基于J2EE的学生选课系统。采用了J2EE技术作为系统架构开发。本系统体现了较为先进的设计思想,主要有以下几点1系统采用较为流行的J2EE技术体系,具有良好的可伸缩性和跨平台性,为日后功能的扩展提供了良好的升级空间。2采用MVC模式STRUTS架构设计,将系统的表示层、逻辑层和WEB表示层分离,便于日后的开发和维护3。13系统目标选课系统其作用范围为在校学生、教师、系统管理员。切实地减少了学校对信息管理的工作量,同时也提高了信息的安全性。本课题设计实现了一个基于网络平台的选课系统,具体的实现目标是1教务管理模块教务管理员通过该模块,可以发布选课信息、发布专业相关信息、发布课程相关信息、修改管理员密码等。2学生选课模块学生通过该模块可以查询个人信息、课程信息、已选课程信息、修改个人密码等。2主要技术介绍21J2EE概述J2EE是SUN公司定义的一个开放分布式企业级应用的规范。它是一套不同于传统开发技术的架构模式,其中包含了很多不同类型的组件,主要实现的功能是简化系统项目的开发与部署,提高安全性、可移植性和再利用价值。普通JAVA类和J2EE组件的不同之处在于J2EE组件装配的位置是J2EE的应用中,并且有着严格的规范,被J2EE的服务器管理。所装配的J2EE组件遵循的J2EE规范如下可运行在服务器端的WEB组件为JAVASERVLET和JAVASERVERPAGESJSP;可运行在服务器端的组件为ENTERPRISEJAVABEANEJB。J2EE是使企业解决各种问题的部署、开发、管理相关复杂结构的基于JAVA平台的技术。J2EE技术的核心就是JAVA平台,J2EE不仅巩固了标准JAVA类中的许多优点,同时还提供了对JAVASERVLETSAPI、EJB、JSP以及XML页面开发技术的全面支持。其最终目的就是为了使企业开发者投放市场的时间极大的缩短。J2EE体系结构提供中间层集成框架用来满足无需太多费用而又需要高可用性、高可靠性以及可扩展性应用的需求。通过提供的开发平台,J2EE降低了开发多层的费用和复杂性,同时提供对现有应用程序集成强有力支持,完全支持ENTERPRISEJAVABEANS,有良好的向导支持打包和部署应用,添加目录支持,增强了安全机制,提高了性能4。22J2EE的优势J2EE为搭建具有可伸缩性、灵活性、易维护性的商务系统提供了良好的机制1保留现存的IT资产由于企业必须适应新的商业需求,利用已有的企业信息系统方面的投资,而不是重新制定全盘方案就变得很重要。这样,一个以渐进的(而不是激进的,全盘否定的)方式建立在已有系统之上的服务器端平台机制是公司所需求的。J2EE架构可以充分利用用户原有的投资,如一些公司使用的BEATUXEDO、IBMCICS,IBMENCINA,以及NETSCAPEAPPLICATIONSERVER。这之所以成为可能是因为J2EE拥有广泛的业界支持和一些重要的“企业计算”领域供应商的参与。每一个供应商都对现有的客户提供了不用废弃已有投资,进入可移植的J2EE领域的升级途径。因此基于J2EE平台的产品几乎能够在任何操作系统和硬件配置上运行,现有的操作系统和硬件也能被保留使用。2高效的开发J2EE允许公司把一些通用的、很繁琐的服务端任务交给中间供应商去完成。这样开发人员可以集中精力在如何创建商业逻辑上,相应地缩短了开发时间。3支持异构环境J2EE是能够开发部署在异构环境中的可移植程序。基于J2EE的应用程序不依赖任何特定操作系统、中间件、硬件。因此设计合理的基于J2EE的程序只需开发一次就可部署到各种平台。这在典型的异构企业计算环境中是十分关键的。J2EE标准也允许客户订购与J2EE兼容的第三方的现成的组件,把他们部署到异构环境中,节省了由自己制订整个方案所需的费用。4可伸缩性企业必须要选择一种服务器端平台,这种平台应能提供极佳的可伸缩性去满足那些在他们系统上进行商业运作的大批新客户。基于J2EE平台的应用程序可被部署到各种操作系统上。例如可被部署到高端UNIX与大型机系统,这种系统单机可支持64至256个处理器。(这是NT服务器所望尘莫及的)J2EE领域的供应商提供了更为广泛的负载平衡策略。能消除系统中的瓶颈,允许多台服务器集成部署。这种部署可达数千个处理器,实现可高度伸缩的系统,满足未来商业应用的需要。(5)稳定的可用性一个服务器端平台必须能全天候运转以满足公司客户、合作伙伴的需要。因为INTERNET是全球化的、无处不在的,即使在夜间按计划停机也可能造成严重损失。若是意外停机,那会有灾难性后果。J2EE部署到可靠的操作环境中,他们支持长期的可用性5。23MVC设计模式MVC设计模式的全名是MODELVIEWCONTROLLER,模型层指的是MODE,视图层指的是VIEW,控制器层指的是CONTROLLER。MVC模式指的是一种软件的架构模式。它系统化的将软件分为三个基本部分模型、视图、控制器。MVC模式所实现的目的是动态的程序设计,可以使程序的后续修改和扩展简便化,并且可以使程序的某一部分可以重复利用。MVC模式的具体负责功能(1)CONTROLLER控制器层处理用户之间的交互问题,(2)VIEW视图层处理程序中数据的显示部分。(3)MODEL模型层处理程序中的数据逻辑,数据库存储数据。24SSH框架介绍SSH2STRUTS2SPRINGHIBERNATE是J2EE的最新流行框架。其结构如下图21所示。SPRING是一个开源框架,它由RODJOHNSON创建。它是为了解决企业应用开发的复杂性而创建的。SPRING使用基本的JAVABEAN来完成以前只可能由EJB完成的事情。然而,SPRING的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何JAVA应用都可以从SPRING中受益。HIBERNATE是一个开放源代码中对象的关系映射框架,它对JDBC进行了非轻量级的对象封装。HIBERNATE可以应用在任何使用JDBC的场合,既可以在JAVA的客户端程序使用,也可以在SERVLET/JSP的WEB应用中使用。最具革命意义的是HIBERNATE可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。STRUTS2框架是STRUTS1的下一代版本,STRUTS2是在WEBWORK和STRUTS1的基础上发展开来的。从一定的角度来说,STRUTS2是秉承WEBWORK的血统,而不是秉承STRUTS1的血统。WEBWORK的升级版本其实就是我们现在所熟知的STRUTS2,因此STRUTS2并不是一个全新的框架结构,它在各种性能上都很好的继承了STRUTS1和WEBWORK的优势,是一个实用性很强的框架结构体系。图21SSH框架241STRUTS简介STRUTS的工作流程ACTIONSERVLET是在WEB项目应用程序启动时初始化的加载,ACTIONSERVLET读取配置信息则是从STRUTSCONFIGXML中。当客户所发送的请求被ACTIONSERVLET接收到的时候,将执行如下流程1查询与该用户请求的ACTIONMAPPING相对应的JAVA例,如果存在则向下执行,如果不存在,返回信息是无效路径;SPRING表示层业务层数据层STRUTS2HIBERNATE2若实例ACTIONFORM不存在,则NEW一个ACTIONFORM对象,把用户所提交的FORM表单数据保存到新建的ACTIONFORM对象中;3根据配置信息决定是否需要表单验证如果需要验证,就调用ACTIONFORM的VALIDATE方法;4如果ACTIONFORM的VALIDATE方法返回NULL或返回一个不包含ACTIONMESSAGE的ERRORS对象,就表示表单验证成功;5ACTIONSERVLET根据ACTIONMAPPING所包含的映射信息决定将请求转发给哪个ACTION,如果相应的ACTION实例不存在,就先创建这个实例,然后调用ACTION的EXECUTE方法;6ACTION的EXECUTE方法返回一个ACTIONFORWARD对象,ACTIONSERVLET在把客户请求转发给ACTIONFORWARD对象指向的JSP组件;7ACTIONFORWARD对象指向JSP组件生成动态网页,返回给客户6。242HIBERNATE简介HIBERNATE是一个开放源代码对象的关系映射框架,是一个中间件(软件),位于应用程序和数据库之间的持久化层,封装了数据访问细节,让业务逻辑层专注于业务逻辑(自动实现数据库中的数据和内存中数据的双向同步更新)。ORM映射工具,能够在面向对象的JAVA领域和面向关系的数据库领域建立起联系7。243SPRING简介SPRING的关键特性如下1非侵入式SPRING对很多难用的JAVAEEAPI(如JDBC,JAVAMAIL,远程调用等)提供了一个简单的封装层,通过SPRING的简易封装,这些JAVAEEAPI的使用难度大为降低。2容器SPRING容器从来不能独立运行,一定借助于其他容器启动,或者借助WEB容器启动,或者EJB容器启动。3IOC控制反转意味着将你设计好的类交给容器去控制,而不是在类的内部进行控制,即控制权由应用代码中转到了外部容器。4依赖注入可以用非容器依赖的编程方式进行几乎所有的测试工作,在SPRING里,测试不再是昂贵的操作,而是随手可做的事情。5AOP通过SPRING提供的AOP功能,方便进行面向切面的编程,许多不容易用传统OOP实现的功能可以通过AOP轻松应付8。3系统开发工具及容器31开发工具本系统使用的开发工具,后台JAVA代码编写使用MYECLIPSE100MYECLIPSE企业级工作平台是对ECLIPSEIDE的扩展,利用它我们可以在数据库和JAVAEE的开发、发布,以及应用程序服务器的整合方面效率。它是功能丰富的JAVAEE集成开发程序的环境,包括了程序编码、代码测试、调试代码和程序发布的功能,完整支持HTML,STRUTS,JSF,CSS,JAVASCRIPT,SQL,HIBERNATE。MYECLIPSE是一个十分优秀的用于开发JAVA,J2EE的ECLIPSE插件的聚合,MYECLIPSE的功能非常厉害,也十分广泛,尤其是对开源的产品有不错的支持。MYECLIPSE可以支持JAVASERVLET,AJAX,JSP,JSF,STRUTS,SPRING,HIBERNATE,EJB3,JDBC等多项功能。可以说MYECLIPSE是几乎包含了所有主流开源产品的专属ECLIPSE开发工具10。32数据库的选择321MYSQL简介MYSQL是一个开放源码的关系数据路管理系统,因此任何人都可以在GENERALPUBLICLICENSE的许可下下载并根据个性化的需要对其进行修改。MYSQL由于性能高、成本低、可靠性好,已经成为最流行的开源数据库,被广泛地应用在中小型网站中。随着MYSQL的不断成熟,它也逐渐用于更多大规模网站和应用。MYSQL虽然功能未必很强大,但因为它的开源、广泛传播,导致很多人都了解到这个数据库。它的历史也富有传奇性11。33JDK版本的选择JDK是SUN公司针对JAVA开发员的软件开发工具包。自从JAVA推出以来,JDK已经成为使用最广泛的JAVASDK。本系统采用JDK5EDITIONUPDATE版本。34容器本系统页面采用JSP,所以对应的容器采用APACHETOMCAT60。既然JSP/SERVLET,那么它当然是不能直接运行的,必须把它放到某种运行环境中,它才能发挥它的作用。这个环境就是我们讲的容器。容器也是JAVA程序,它主要功能除了为SERVLET提供环境,还有更重要的,就是提供网络传输协议与JAVA程序实体的相互转换。客户端想服务器发送数据,遵循的是HTTP协议的数据格式。在客户端和服务器端,可能存在着不同的编程语言编写的程序,比如JAVA,C的等等。各种语言都有自己用于处理HTTP协议数据的方法(类),为了使用JAVA提供的各种HTTP处理相关的类,必须将HTTP协议下的数据做一定的转换,转换成一些JAVAOBJECT,这样才能使用JAVA的方法进行数据处理。同理,当这些处理完成,又需要将这些JAVAOBJECT转换回HTTP协议下的数据,反馈给客户端(JSP/SERVLET当然存在于服务器端)。JSP/SERVLET容器就扮演了完成这个双向转换的角色12。341TOMCAT简介TOMCAT是由APACHE公司下属的JAKARTA项目开发的一个SERVLET容器,TOMCAT是一款轻量级的小型服务器软件,可以给我们提供基于HTTP等协议上的一个资源的访问和响应。也就是说,我们开发好的WEB项目,如果想让别人通过网络用浏览器访问的话,我们就需要把这个开发好的WEB项目放到可以给他们提供这样一个服务的软件中去比如TOMCAT服务器软件APACHE服务器软件JBOSS服务器软件等。TOMCAT是用JAVA写的,TOMCAT的运行本身是需要JDK的支持的也就是说TOMCAT要想运行,需要看你的环境变量有没有配置一个JAVAHOME的环境变量13。4选课系统总体设计41需求调研教育是科学之本,随着我国教育的普及和当前全球范围的知识经济的突飞猛进,一套高质量高效率的选课排课系统更是必不可少,当前不论是我国还是海外其他国家,均把学校教育放在战略地位,投入巨大的人力物力研制各种教育模式,其中,选课排课系统的开发是首当其冲的。一套好的管理系统是良好学习环境的组织者。由于信息系统数据量大,传统的人工操作不仅效率低,准确性不高,而且其完整性,保密性均得不到保证。此信息管理系统可以实现学生信息的高效查询,修改,删除等操作,使学生信息关系系统化,规范化和自动化。42可行性分析开发任何一个系统,都会受到时间和资源上的限制。因此,在每一个项目开发之前,都要进行可行性分析,可以减少项目的开发风险,避免人力、物力和财力的浪费。下面就技术、经济、操作和法律四个方面来介绍。1技术的可行性本系统开发工具是MYECLIPSE和MYSQL数据库,开发语言是JAVA,主要使用了J2EE的技术,JAVA是一种面向对象编程语言,简单易学而且灵活方便。大二时就学习了JAVA课程,大四期间也系统的了解了J2EE的知识,选课排课系统总体上开发难度不高,数据库的设计和操作是本系统设计的核心。在大学期间学习过软件工程,软件测试,UML统一建模语言等课程,每个学期也会完成对应的课程设计,具备一定的系统分析、设计和测试能力。因此,完成系统实现在技术上完全具有可行性。2经济的可行性如今是信息化时代,信息化管理可以使选课排课系统工作更加系统化、快速化、全面化。这样可以为企业带来较高的工作效益和经济效益,本系统对计算机配置的要求不高,企业机房更换下来的低配置电脑都可以完全满足需要,再者,企业在管理工作上的高效率和便捷性远远超过了开发本系统的成本,所以在经济上具有完全的可行性。3操作可行性本系统操作简单,输入信息页面大多数都是下拉框的选择形式,在某些页面,信息可以自动生成,无需输入,操作简便,对操作人员的要求很低,只需对WINDOWS操作熟练,加之对本系统的操作稍加培训即可工作,而且本系统可视性非常好,所以在技术上不会有很大难度。4法律的可行性本选课排课系统是自行开发的管理系统,是很有实际意义的系统,开发环境软件和使用的数据库都是开源代码,开发这个系统不同于开发普通的系统软件,不存在侵权等问题,即法律上是可行的。综上所述,开发一个选课排课系统与人工记录的方式相比具有速度更快,操作更准确,节省开支等有利之处,因此,建立一个选课排课系统是必要可行的。43需求分析431系统概要设计系统概要设计(1)功能模块设计管理员模块可以增加专业和课程、增加专业和课程详细信息、指定课程状态、修改管理员密码。学生管理模块可以注册用户添加学生信息、查看已选课程、查看课程列表、学生详细信息、修改学生密码。登录模块可以判断帐号的合法性和角色/权限,根据不同的角色/权限跳转到相应的页面。(2)数据库设计学生信息表包含、ID、性别、生日、专业等基本信息。课程信息表包含课程号、课程名、代课老师等基本信息。学生课程信息表包含ID、课程ID、学生ID、代课老师等基本信息。44系统分层设计本系统编码采用MVC分层结构设计。工程主要分为ACTION包、DAO包和DTO包。ACTION包主要是放置STRUTS的ACTIONJAVA类,用来控制流程跳转、操纵MODEL层、从MODEL里面取数据呈现给表示层。DAO包主要放置负责与数据库打交道的JAVA类,所有类皆继承自一个HIBERNATEDAO。该层封装了数据的增、删、改、查操作。DTO包主要是放置实体BEANJAVA类,用来表示实体,并且映射至数据库对应的表,负责想VIEW层提供数据。另外,所有JSP页面均放在工程WEBROOT下14。45系统流程1登录模块图41登录流程图(2)学生模块学生选课系统登录失败登录输入用户名和密码用户名密码是否正确进入相应界面退出系统错误提示否是图42学生流程图(3)管理员模块学生界面查看个人信息修改个人信息个人选课情况所有课程信息输入个人信息修改成功退选退选成功选课成功选课退出系统成功登录学生选课系统失败图43管理员流程图46设计的基本思想设计思想遵循以下几点1采用B/S模式进行开发,其优点是后台与前台处理层次分明,而且符合众多已经习惯网页方式的用户。2开发时的设计理念是面向对象的,采用面向对象技术必须对所设计系统的整体高度能够准确的抽象出来,以此来保证框架的良好,使得产品可以具有较强的安全性、稳定新和运行成功率。3设计模块化,有利于代码的重载,简化设计和实现过程。4简单方便的系统界面,设计简单友好的系统界面,方便用户较快的适应系统的操作。管理员界面统计信息管理课程信息管理专业信息管理修改密码添加课程信息添加成功添加专业信息添加成功修改成功修改退出系统成功5速度优先原则,由于此工具最重要的评测标准就是速度,因此在设计过程中,具体过程尽量做到资源占用少,速度快。6设计既要突出重点,又要细致周到。要符合设计需求,在有可能改进的地方进行扩充,使系统更适应用户的需要。5详细设计51数据库511数据库设计一个软件产品,数据库设计的好坏决定着软件的开发维护和运行容易程度。如果把企业的数据比作生命所必需的血液,那么数据库的设计就是应用中最重要的一部分。整个系统的操作实际上就是操作数据库,所以,数据库的设计方式决定这系统的好坏。512数据表本系统一共建立了5张表。TB_USERLOGIN用户登录表如图51图51表及字段说明图TB_SPECIALTY专业表如图52图52表及字段说明图TB_STUDENTCOURSE学生课程表如图53图53表及字段说明图TB_STUDENTUSER学生用户表如图54图54表及字段说明图TB_COURSE课程表如图55图55表及字段说明图52WEB层的设计这一层主要是作为用户访问系统的界面,提供WEB网页服务器,同时与后台服务器连接,将客户端的请求信息传递到业务层,同时将后台反馈的信息传送到客户端。视图部分采用JSP,控制器部分交由STRUTS的ACTION直接和实体BEAN交互以操作数据库15。521JSP简介JSP的全称为JAVASERVERPAGES是由SUNMICROSYSTEMS公司创立的响应客户端请求的一种软件,目的是为HTML、XML等网页的WEB技术制定一个标准。JSP作为服务器端是J2EE的一种规范。JSP的作用是来替换SERVLET显示信息的功能,简单理解就是在HTML页面中嵌入JAVA代码从而达到动态网页的效果。JSP的适用场合是在整个软件开发系统中处于视图层,作为视图来使用。53EJB层的设计531实体BEAN的设计实体BEAN是根据数据库之中的表来建立的其中的相关属性/成员变量对应数据库表中的各种字段。以本工程的一个实体BEANSTUDENT为例,各种操作需要调用到STUDENT实体BEAN,STUDENT实体BEAN的代码如下学生信息PACKAGECOMJWYDTOPUBLICCLASSSTUUSERIMPLEMENTSJAVAIOSERIALIZABLEPRIVATEINTEGERID/学生编号PRIVATESTRINGSTUNAME/学生姓名PRIVATESTRINGSTUNO/学生学号PRIVATEINTEGERSPECIALTYID/学生所学专业编号PRIVATESTRINGSTUSEX/学生性别PRIVATESTRINGBIRTHDAY/学生出生年月日PRIVATESTRINGHOMEADDR/学生家庭地址PRIVATESTRINGTEL/学生电话PRIVATESTRINGADDR/学生当前居住地址PUBLICSTUUSERPUBLICSTUUSERINTEGERID,STRINGSTUNAME,STRINGSTUNO,INTEGERSPECIALTYID,STRINGSTUSEX,STRINGBIRTHDAY,STRINGHOMEADDR,STRINGTEL,STRINGADDRTHISIDIDTHISSTUNAMESTUNAMETHISSTUNOSTUNOTHISSPECIALTYIDSPECIALTYIDTHISSTUSEXSTUSEXTHISBIRTHDAYBIRTHDAYTHISHOMEADDRHOMEADDRTHISTELTELTHISADDRADDRPUBLICINTEGERGETIDRETURNTHISIDPUBLICVOIDSETIDINTEGERIDTHISIDIDPUBLICSTRINGGETSTUNAMERETURNTHISSTUNAMEPUBLICVOIDSETSTUNAMESTRINGSTUNAMETHISSTUNAMESTUNAMEPUBLICSTRINGGETSTUNORETURNTHISSTUNOPUBLICVOIDSETSTUNOSTRINGSTUNOTHISSTUNOSTUNOPUBLICINTEGERGETSPECIALTYIDRETURNTHISSPECIALTYIDPUBLICVOIDSETSPECIALTYIDINTEGERSPECIALTYIDTHISSPECIALTYIDSPECIALTYIDPUBLICSTRINGGETSTUSEXRETURNTHISSTUSEXPUBLICVOIDSETSTUSEXSTRINGSTUSEXTHISSTUSEXSTUSEXPUBLICSTRINGGETBIRTHDAYRETURNTHISBIRTHDAYPUBLICVOIDSETBIRTHDAYSTRINGBIRTHDAYTHISBIRTHDAYBIRTHDAYPUBLICSTRINGGETHOMEADDRRETURNTHISHOMEADDRPUBLICVOIDSETHOMEADDRSTRINGHOMEADDRTHISHOMEADDRHOMEADDRPUBLICSTRINGGETTELRETURNTHISTELPUBLICVOIDSETTELSTRINGTELTHISTELTELPUBLICSTRINGGETADDRRETURNTHISADDRPUBLICVOIDSETADDRSTRINGADDRTHISADDRADDR532数据库映射与连接本系统使用的是HIBERNATE将对象持久化,让传统的关系型数据库与实体映射成为符合面向对象的编程处理方式,HIBERNATE是对象关系映射的框架,对JDBC的封装是非轻量级的,使得JAVA程序员可以轻松的去操做数据库。采用HIBERNATE,实体与数据库的映射只需要配置相应的XML文件,可以和代码完全的分离使用。而SPRING则将HIBERNATE全权交给SPRING处理,使得程序员编写代码更加的简洁方便。以下是本次设计所采用的连接方式。以下是SPRING的APPLICATIONCONTEXTXML的内容。这里使用的是与SPRING整合的方式,而不是传统的HIBERNATECFGXML配置文件。同时也需要JDBC的驱动,MYSQLCONNECTORJAVA515BINJARDATASOURCE是本次设计采用的数据源。所采用的连接池,代码中也有相应的配置。DRIVERCLASS指向JDBC驱动。JDBCURL为所用数据库的URL,此次设计采用MYSQL数据库,URL为JDBCMYSQL/LOCALHOST/SYSTEM。本机的地址是LOCALHOST,数据库的名称是SYSTEM,USER和PASSWORD为ROOT,到此数据库的链接完成。其他和HIBERNATE有关的,SESSIONFACTORY和TRANSACTION是用SPRING依赖注入的功能实现的,将HIBERNATE中的各种事务分配给SPRING来管理的。在SESSIONFACTORY中要注入HIBERNATE的数据源,这是我们需要注意的地方。学生信息配置文件学生编号课程编号54选课系统的实现541用户登录用户登录界面如图56图56用户登录界面用户登录,系统会根据用户的类型,跳转到相应的JSP页面,也就是说让用户拥有自己应该有的功能,比如管理员可以添加专业、课程信息,而学生只能选择课程、查看课程信息,却不能去修改课程。用户登录代码如下PUBLICACTIONFORWARDEXECUTEACTIONMAPPINGMAPPING,ACTIONFORMFORM,HTTPSERVLETREQUESTREQUEST,HTTPSERVLETRESPONSERESPONSEDYNAACTIONFORMUSERLOGINFORMDYNAACTIONFORMFORMUSERLOGINUSERLOGINUSERLOGINDAOFINDBYNAMEANDPWDUSERLOGINFORMGETSTRING“LOGINNAME“,USERLOGINFORMGETSTRING“PWD“IFUSERLOGINNULLREQUESTSETATTRIBUTE“ERROR“,“用户登录失败,用户名或密码不正确“RETURNMAPPINGFINDFORWARD“INDEX“ELSEREQUESTGETSESSIONSETATTRIBUTE“LOGINNAME“,USERLOGINGETLOGINNAMEREQUESTGETSESSIONSETATTRIBUTE“ID“,USERLOGINGETIDIFUSERLOGINGETTYPEEQUALS“1“SYSTEMOUTPRINTLN“管理员登录“RETURNMAPPINGFINDFORWARD“MANAGER“ELSE/判断学生有没有填写过基本信息STUUSERSTUUSERSTUUSERDAOFINDBYIDUSERLOGINGETIDIFSTUUSERNULLSYSTEMOUTPRINTLN“没添写过基础信息“LISTLISTSPECIALTYDAOFINDSTUBYALLREQUESTSETATTRIBUTE“LIST“,LISTRETURNMAPPINGFINDFORWARD“ADDSTUINFO“ELSESPECIALTYSPECIALTYSPECIALTYDAOFINDBYIDSTUUSERGETSPECIALTYIDREQUESTSETATTRIBUTE“SPECIALTY“,SPECIALTYREQUESTSETATTRIBUTE“STUUSER“,STUUSERSYSTEMOUTPRINTLN“添写过基础信息“RETURNMAPPINGFINDFORWARD“WELCOME“542用户注册用户注册界面如图57图57用户注册界面用户注册时,系统会判定所填写的用户名是否存在,如果不存在则代码将向下执行,之后跳转到填写基本信息的页面,如果存在则返回错误提示,并再次跳转到注册页面。用户注册代码如下PUBLICCLASSREGACTIONEXTENDSACTIONPRIVATEIUSERLOGINDAOUSERLOGINDAOPRIVATEISPECIALTYDAOSPECIALTYDAO/PARAMSPECIALTYDAOTHESPECIALTYDAOTOSET/PUBLICVOIDSETSPECIALTYDAOISPECIALTYDAOSPECIALTYDAOTHISSPECIALTYDAOSPECIALTYDAO/PARAMUSERLOGINDAOTHEUSERLOGINDAOTOSET/PUBLICVOIDSETUSERLOGINDAOIUSERLOGINDAOUSERLOGINDAOTHISUSERLOGINDAOUSERLOGINDAO/METHODEXECUTEPARAMMAPPINGPARAMFORMPARAMREQUESTPARAMRESPONSERETURNACTIONFORWARD/PUBLICACTIONFORWARDEXECUTEACTIONMAPPINGMAPPING,ACTIONFORMFORM,HTTPSERVLETREQUESTREQUEST,HTTPSERVLETRESPONSERESPONSEUSERLOGINUSERLOGINNEWUSERLOGINUSERLOGINSETTYPE“2“/设置用户类型为学生USERLOGINSETLOGINNAMEREQUESTGETPARAMETER“LOGINNAME“USERLOGINSETPWDREQUESTGETPARAMETER“PWD“USERLOGINSETMAILREQUESTGETPARAMETER“MAIL“IFUSERLOGINDAOFINDBYLOGINNAMEUSERLOGINGETLOGINNAMESYSTEMOUTPRINTLN“用户名不存在可以注册“INTEGERIDUSERLOGINDAOINSERTUSERLOGIN/返回自动生成的主键REQUESTGETSESSIONSETATTRIBUTE“ID“,IDREQUESTGETSESSIONSETATTRIBUTE“LOGINNAME“,USERLOGINGETLOGINNAME/进入到填写基本信息页面LISTLISTSPECIALTYDAOFINDSTUBYALLREQUESTSETATTRIBUTE“LIST“,LISTRETURNMAPPINGFINDFORWARD“ADDSTUINFO“ELSEREQUESTSETATTRIBUTE“ERROR“,“用户名已经存在,不可以注册“/返回到注册页面RETURNMAPPINGFINDFORWARD“REG“543管理员功能下面介绍管理员功能。管理员用管理员账号登陆后,然后默认进入的是管理员操作页面。管理员可以增加专业信息,可以增加课程信息,课程信息有对应的专业,也就是说一门专业对应多门课程,课程信息包括上课信息和带课老师情况,管理员添加完课程信息以后,学生就可以登录到系统选择对应专业的课程,学生可以查看课程的时间地点是否适合自己选这门课,学生也可以查看代课老师的信息,从而做到了学生的自主化,学生选完课以后,管理员就可以查看统计信息,就可以知道选择课程的学生的情况,这样教务处就可以省去很多繁琐的工作,避免了一些认为的失误,大大的提高了教学管理的效率。以下ACTION层是添加专业的代码PUBLICACTIONFORWARDINSERTACTIONMAPPINGMAPPING,ACTIONFORMFORM,HTTPSERVLETREQUESTREQUEST,HTTPSERVLETRESPONSERESPONSEDYNAACTIONFORMSPECIALTYFORMDYNAACTIONFORMFORMSPECIALTYSPECIALTYNEWSPECIALTYSPECIALTYSETISFINISHFALSE/设置是否结业,默认为否SYSTEMOUTPRINTLN“NAME“SPECIALTYFORMGETSTRING“NAME“SPECIALTYSETNAMESPECIALTYFORMGETSTRING“NAME“SPECIALTYSETENTERYEARSPECIALTYFORMGETSTRING“ENTERYEAR“SPECIALTYSETLANGTHYEARSPECIALTYFORMGETSTRING“LANGTHYEAR“SPECIALTYDAOINSERTSPECIALTYFINDALLMAPPING,SPECIALTYFORM,REQUEST,RESPONSERETURNNULL以下ACTION层是添加课程的代码PUBLICACTIONFORWARDINSERTACTIONMAPPINGMAPPING,ACTIONFORMFORM,HTTPSERVLETREQUESTREQUEST,HTTPSERVLETRESPONSERESPONSEDYNAACTIONFORMCOURSEFORMDYNAACTIONFORMFORMCOURSECOURSENEWCOURSECOURSESETNAMECOURSEFORMGETSTRING“NAME“COURSESETSCHOOLTIMECOURSEFORMGETSTRING“SCHOOLTIME“COURSESETADDRCOURSEFORMGETSTRING“ADDR“COURSESETCREDITSHORTCOURSEFORMGET“CREDIT“COURSESETCOURSEINFOCOURSEFORMGETSTRING“COURSEINFO“COURSESETTEACHERNAMECOURSEFORMGETSTRING“TEACHERNAME“COURSESETTEACHERINFOCOURSEFORMGETSTRING“TEACHERINFO“COURSESETISFINISHTRUE/是否可以选课,默认为可以COURSESETSPECIALTYIDINTEGERCOURSEFORMGET“SPECIALTYID“COURSEDAOINSERTCOURSERETURNFINDBYSEARCHMAPPING,COURSEFORM,REQUEST,RESPONSE从代码我们可以看出SSH框架确实让程序员省去了很多繁琐的工作,简化了代码,增强了程序的可维护性。管理员登录界面如图58所示图58管理员进入界面管理员功能如图59图59管理员功能列表管理员增加专业信息如图510图510管理员增加专业管理员增加课程信息如图511图511管理员增加课程544学生功能下面介绍学生功能学生首先要注册,因为注册用户名是唯一的,所以学生可以用自己的学号来当用户名,既避免了重复,又有一定的意义,学生注册完成以后要补全自己的信息,学号、性别、专业、等等基本信息。当学生补全信息以后就可以根据自己专业选择相对应的课程,学生查看课程详细信息,然后选择。这样也方便了学生的选课。学生选完课后的信息会通过系统反馈给教务科的管理员,这样既方便了工作人员,也方便了学生。如图512,左边的列表是学生具有的功能,点击相应的功能,就会反馈给学生想要知道的信息,学生就知道了上课时间、地点和所选课程的老师。学生进入首页模块代码如下PUBLICACTIONFORWARDWELCOMEACTIONMAPPINGMAPPING,ACTIONFORMFORM,HTTPSERVLETREQUESTREQUEST,HTTPSERVLETRESPONSERESPONSEINTEGERIDINTEGERREQUESTGETSESSIONGETATTRIBUTE“ID“STUUSERSTUUSERSTUUSERDAOFINDBYIDIDSPECIALTYSPECIALTYSPECIALTYDAOFINDBYIDSTUUSERGETSPECIALTYIDREQUESTSETATTRIBUTE“STUUSER“,STUUSERREQUESTSETATTRIBUTE“SPECIALTY“,SPECIALTYRETURNMAPPINGFINDFORWARD“WELCOME“学生界面如图512所示图512学生界面学生查询已选课程代码如下PUBLICACTI

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论