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

下载本文档

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

文档简介

题目:学生网上选课系统的设计与实现产品设计工艺设计方案设计√摘要上方需一空行上方需一空行当今时代是互联网信息技术高速发展的时代,信息处理显得尤为重要。信息化技术应用在生活的方方面面,学校也不例外。信息化技术为传统的高校教务管理和工作带来了十分巨大的变化。随着高校的快速发展,办学规模的多元化,在校学生和教职员工的人数在不断增加。学生网上选课工作也逐渐变成了网络的多元管理,极大的方便每一位师生,同时也便于学校对教务工作进行管理,能够高效的解决人力资源的损耗,并且能以更高效的速度达到教学目标,以便更好的提升教学质量。本系统研究在此基础上进行分析和研究,设计出一个适合广大高校使用的学生网上选课系统。并对系统和现实之间的各个功能映射进行了一一详细的需求分析和相对应的功能模块结构层的设计。具体的设计流程如下:管理员角色下有学院管理、专业管理、教师管理、课程审核、选课管理、学生管理,教师角色下有课程管理、成绩管理、选课统计,学生角色下有选课、我的选课记录、成绩查询各个功能模块。从技术方面来讲,本系统采用的是B/S架构,使用SSH框架作为学生网上选课系统的开发,用eclipseJ2EE作为开发工具,用MySQL作为数据库平台,设计了一个适合广大师生使用的选课系统。本系统开发页面采用JSP动态页面开发技术,展示的页面清新友好,功能齐全的实现了各个模块之间的信息通信和操作,更好的提高了教务管理的水平。关键词:学生网上选课系统;SSH框架;MySQL;B/S架构目录1.绪论 .绪论1.1设计背景我国的信息化建设发展已经深入到各行各业,如何主动去适应信息化时代的发展需求,是如今每个高校教务都应立即处理的一个问题。学校在对学校师生进行选课管理时,广大的学生和老师所产生的信息量十分的庞大,在这方面加大了人力和物力的消耗和浪费,不仅数据处理起来很缓慢,并且容易造成数据的丢失。而学生网上选课系统就能有效的解决上述问题,所以学生网上选课系统在各个高校中占有非常重要的位置。在当今的新的教育背景下,每个高等学校都想要与时俱进,跟上时代的脚步,因此许多学校面临着教育工作的挑战。通过现代互联网和计算机技术来代替传统的人工讲台面授的方式来辅助教学工作,让学校向信息化的方向扩展,网上选课系统是每一个高校必然的选择。配合高校学分制教育,让高校的教务管理工作完成的更好,更好的提高工作效率。1.2系统特性(1)技术性本系统采用jsp技术,基于MVC模式开发,使用SSH框架来增加系统的开发速度。该系统能够让师生避免繁琐的软件安装,并且充分利用校园网络资源。程序就是用struts2和hibernate这两个框架来实现模型层和控制器这两层,jsp实现视图这一层,设计了简洁大方的使用界面并且便于操作的网上选课系统。系统的设计结构方向采用分模块化程序设计方式,方便开发人员的后台修改。(2)实用性本系统中,根据调查需求分析,设计了许多功能供师生使用,将以前的手工操作全部转移到电脑上操作,极大地节省物力和人力,并且功能齐全,比如:教师的课程管理和成绩管理,以及学生的选课查询与成绩查询等等。(3)高效性本系统中使用了Hibernate进行数据库的操作,很大程度上发挥了数据库的性能,因为高校中的数据量十分庞大,数据的交错复杂,使用Hibernate能够有效地开发出效率更高的系统。1.3系统开发的目的根据SSH框架和Mysql数据库,设计一个能够让每个高校使用的网上选课系统。通过实际项目提升自己的基础根底和专业相关知识。通过项目中出现的问题,运用自己所学的知识进行解决,通过独立思考和分析更好的提升自己解决问题的能力。通过项目增加对项目开发工作的认识,掌握架构方案,增加自己在实际工作中的能力。掌握学会使用资料查询的根本方法以及获取新知识的途径。通过参与实际项目开发,使自己更加了解工作方面存在哪些不足,增强实际工作能力。2.系统相关技术2.1SSH框架2.1.1Struts2Struts2是Apache组织的一个开放源码项目。Struts2是一个比较好的MVC框架,提供了对开发MVC系统的底层支持,它采用的主要技术是Servlet,JSP和Customtaglibrary。其基本构成如图2.1所示。图2.1Struts框架工作流程2.1.2SpringSpring是一个轻量级的java开发框架,开始于2003年。由RodJohnson在其著述中阐述的部分理念和原型衍生而来。Spring不仅本身是个非常好的框架,并且可以融合其他的框架使用。简单讲述下Spring优点:声明式事件的支持不用程序员进行手动的编程,只用配置相关的运行参数就可事物进行管理。方便程序的测试Spring也支持Junit4,在平常编写Spring应用程序时可以利用注解功能进行简便的测试。降低JavaEEAPI的使用难度对于一些平常硬编码和难度较大的功能,Spring都提供了相应的API来降低开发难度(JDBC、远程调用等)。2.1.3HibernateHibernate是一个开放源码的ORM持久层框架。作为优秀的持久层框架实现,Hibernate框架提供了强大、高性能的对象到关系型数据库的持久化服务,开发人员可以使用面向对象的设计进行持久层开发。简单的说,Hibernate只是一个将持久化类与数据库表相映射的工具,每个持久化类实例均对应于数据库表中的一个数据行而已。用户只需直接使用面向对象的方法操作此持久化类实例,即可完成对数据库表数据的插入、删除、修改、读取等操作。2.2Mysql数据库MySQL使用的SQL语言是访问数据库最常用的标准语言。MySQL软件采用双重授权策略。有两种不同的版本,分别分为开源社区版和商业版。由于其规模小、速度快、总体拥有成本低,中小网站的开发一般选用MySQL作为网站数据库。2.2.1应用环境相比较例如Oracle、DB2等大型数据库相比,MySQL自身也有很多不安全的地方,但是MySQL依然是市面上非常流行的数据库软件。MySQL提供的功能对于个人的使用者和中小型企业已经足够满足日常需要。2.2.2Mysql特性(1)MySQL对关系型数据库的SQL算法进行了优化,可以更好的提高查询速率。(2)对于存储引擎提供多种支持。(3)复制无崩溃从机,可提高可用性。(4)复制多线程从机,可提高性能。

3.系统总体设计每章的上方都需要一空行每章的上方都需要一空行3.1总体功能模块系统分管理员,教师和学生3个用户角色,总功能图如图3.1所示。图3.1系统功能需求分析系统管理员、学生、教师等不同的用户,不同的用户有着不同的功能,所以数据库管理员可以给用户设置与其身份标识相对应的权限,系统识别用户的权限给予用户相对应的操作页面,用户可以在操作页面进行相应的操作。3.2管理员的功能模块系统管理员的主要功能有学院管理、专业管理、教师管理、课程审核、选课管理、学生管理。管理员的功能图如图3.2所示。图重画,线要画直,且要有文字描述图重画,线要画直,且要有文字描述图3.2管理员的功能图在管理员功能模块中,可以对学院、教师、学生等信息进行增删改查。例如:添加教师的个人信息,删除学院等。可以对学校的每个专业进行管理,对已注册学生信息的删除,对课程信息进行审核以及对选课时间的管理等。3.3教师的功能模块教师的主要功能是课程管理、成绩管理、选课统计。教师模块的功能图如图3.3所示。图重画,要有文字描述,以下相同处理图重画,要有文字描述,以下相同处理图3.3教师的功能图在教师功能模块中,教师进行身份验证成功登录后,可以申请开课,安排上课时间地点,统计学生的选课情况等。可以查询选择自己课程相应的学生,以及为学生进行成绩评定。3.4学生的功能模块学生的主要功能是选课、我的选课记录、成绩查询。学生的功能图如图3.4所示。图3.4学生的功能图在学生用户功能模块中,学生进行注册登录后,可以在系统中进行选课,个人课表查询,个人成绩查询等等。3.5系统业务描述系统分管理员,教师和学生3个用户角色:系统管理员的主要功能有学院管理、专业管理、教师管理、课程审核、选课管理、学生管理;教师的主要功能是课程管理、成绩管理、选课统计;学生的主要功能是选课、我的选课记录、成绩查询。用例图如图3.5所示。用例图如图3.5所示。后面用句号用例图如图3.5所示。后面用句号图3.5系统用例图3.6用户登录流程用户进入登录页面,输入对应的信息(用户名、密码、角色、验证码)进行登录,然后系统会验证用户输入的信息是否正确,如果输入正确则登录成功,进入系统主界面,就可以进行各种操作了。验证失败的话需要用户重新输入信息。用户登录流程图如图3.6所示。图3.6用户登录流程图适当调整图的大小,篇幅有点长,30多页就够了,写出实质性的内容适当调整图的大小,篇幅有点长,30多页就够了,写出实质性的内容

4.系统详细设计与实现4.1系统和数据库的配置系统按通用的B/S(浏览器、服务器)模式进行设计(如图4.1)。图4.1B/S结构图要居中显示,那边框之类的就不用截图要居中显示,那边框之类的就不用截数据库在一个信息管理系统中占有非常重要的地位,数据库结构设计的好坏将直接对应用系统的效率,以及实现的效果产生影响。合理的数据库结构设计可以提高数据存储的效率,保证数据的完整和一致。4.2概念模型设计概念模型设计的典型方法是用E-R图方法,即用实体-联系模型表示。E-R方法是用E-R图来描述显示世界,E-R图包含三个基本成分:实体、联系、属性。它直观易懂,能够比较准确地反映现实世界的信息联系,从概念上表示一个数据库的信息组织情况。本系统E-R如图4.2所示。图4.2系统E-R图4.3数据库逻辑模型课程表(主键、申请时间、上课地点、课程简介、节、结束选课日期、开始选课日期、是否删除标志、课程名、上课人数、审核状态、选课状态、星期、学分、已选人数、申报的教师、专业)。图4.3课程表逻辑模型此图重画,去掉多余的空白,图内容要紧凑,以下相同处理此图重画,去掉多余的空白,图内容要紧凑,以下相同处理选课表(主键、成绩、评语、选课时间、是否提交、关联的课程、选课的学生)。图4.4选课表逻辑模型选课统计表(主键、总人数、已选人数、占比、关联的课程)。图4.5选课统计表逻辑模型学院表(主键、学院名、是否删除状态)。图4.6学院表逻辑模型用户表(主键、是否删除状态、年龄、邮箱、密码、用户角色、性别、手机号码、姓名、用户名、职称、学院、专业)。图4.7用户表逻辑模型专业表(主键、是否删除状态、专业名)。图4.8专业表逻辑模型4.4数据库表结构每个表都要有文字描述,表用三线表格,参考格式文件每个表都要有文字描述,表用三线表格,参考格式文件课程表:存放学校所有课程信息。如表4.1所示。表4.1课程表字段名数据类型长度是否为空备注idint11no主键createtimevarchar255yes申请时间didianvarchar255yes上课地点jianjietextyes课程简介jievarchar255yes节jieshuvarchar255yes结束选课日期kaishivarchar255yes开始选课日期kechengdeleteint11no是否删除的标志knamevarchar255yes课程名renshuint11no上课人数shenhevarchar255yes审核状态statusvarchar255yes课状态weekvarchar255yes星期xuefenvarchar255yes学分yixuanint11no已选人数useridint11yes申报的教师,外键zhuanyeidint11yes专业选课表:存放学生选课的选课情况。如表4.2所示。表4.2选课表字段名数据类型长度是否为空备注idint11no主键chengjivarchar225yes成绩pingyutextyes评语shijianvarchar255yes选课时间statusvarchar255yes是否提交kechengidInt11yes关联的课程,外键useridint11yes选课的学生,外键选课统计表:统计选课的总人数以及以及每门课程的选课占比。如表4.3所示。表4.3选课统计表字段名数据类型长度是否为空备注idint11no主键totalint11no总人数yiyuanint11no已选的人数zhanbidoubleyes占比kechengidint11yes关联的课程,外键学院表:统计各学院的信息。如表4.4所示。表4.4学院表字段名数据类型长度是否为空备注idint11no主键cnamevarchar225yes学院名collegedeleteint11no是否删除标志用户表:统计管理员、教师、学生的个人信息,如用户名,密码等。如表4.5所示。表4.5用户表表注和表要在同一页表注和表要在同一页字段名数据类型长度是否为空备注idint11no主键agevarchar225yes年龄deletestatusint11no是否删除标志emailvarchar255yes邮箱passwordvarchar255yes密码roleint11no管理员教师学生sexvarchar255yes性别telvarchar255yes手机号码truenamevarchar255yes姓名usernamevarchar255yes用户名zhichenvarchar255yes职称collegeidint11yes学院zhuanyeidint11yes专业专业表:存放学校所有专业信息。如表4.6所示。表4.6专业表字段名数据类型长度是否为空备注idint11no主键zhuanyedeleteint11no是否删除状态znamevarchar255yes专业名5.系统功能实现5.1数据库的实现根据平台的需求分析和功能模块的划分,定义数据库主要包含6张表。课程表t_kecheng建表的sql语句如下所示。CREATETABLE`t_kecheng`(`id`int(11)NOTNULLauto_incrementCOMMENT'主键',`createtime`varchar(255)defaultNULLCOMMENT'申请时间',`didian`varchar(255)defaultNULLCOMMENT'上课地点',`jianjie`textCOMMENT'课程简介',`jie`varchar(255)defaultNULLCOMMENT'节',`jieshu`varchar(255)defaultNULLCOMMENT'结束选课日期',`kaishi`varchar(255)defaultNULLCOMMENT'开始选课日期',`kechengdelete`int(11)NOTNULLdefault'0'COMMENT'是否删除的标志,0表示正常1,表示删除',`kname`varchar(255)defaultNULLCOMMENT'课程名',`renshu`int(11)NOTNULLdefault'0'COMMENT'上课人数',`shenhe`varchar(255)defaultNULLCOMMENT'审核状态审核中审核通过审核不通过',`status`varchar(255)defaultNULLCOMMENT'选课状态未开始选课中选课结束',`week`varchar(255)defaultNULLCOMMENT'星期',`xuefen`varchar(255)defaultNULLCOMMENT'学分',`yixuan`int(11)NOTNULLdefault'0'COMMENT'已选人数',`userid`int(11)defaultNULLCOMMENT'申报的教师,外键',`zhuanyeid`int(11)defaultNULLCOMMENT'专业',PRIMARYKEY(`id`),KEY`FKED02AC54CA20D953`(`zhuanyeid`),KEY`FKED02AC548066BBB9`(`userid`),CONSTRAINT`FKED02AC548066BBB9`FOREIGNKEY(`userid`)REFERENCES`t_user`(`id`),CONSTRAINT`FKED02AC54CA20D953`FOREIGNKEY(`zhuanyeid`)REFERENCES`t_zhuanye`(`id`))ENGINE=InnoDBDEFAULTCHARSET=utf8;选课表t_xuanke建表的语句如下所示。CREATETABLE`t_xuanke`(`id`int(11)NOTNULLauto_incrementCOMMENT'主键',`chengji`varchar(255)defaultNULLCOMMENT'成绩',`pingyu`textCOMMENT'评语',`shijian`varchar(255)defaultNULLCOMMENT'选课时间',`status`varchar(255)defaultNULLCOMMENT'是否提交未提交已提交',`kechengid`int(11)defaultNULLCOMMENT'关联的课程,外键',`userid`int(11)defaultNULLCOMMENT'选课的学生,外键',PRIMARYKEY(`id`),KEY`FK5041490F16222911`(`kechengid`),KEY`FK5041490F8066BBB9`(`userid`),CONSTRAINT`FK5041490F16222911`FOREIGNKEY(`kechengid`)REFERENCES`t_kecheng`(`id`),CONSTRAINT`FK5041490F8066BBB9`FOREIGNKEY(`userid`)REFERENCES`t_user`(`id`))ENGINE=InnoDBDEFAULTCHARSET=utf8;选课统计表t_tongji建表的语句如下所示。CREATETABLE`t_tongji`(`id`int(11)NOTNULLauto_incrementCOMMENT'主键',`total`int(11)NOTNULLdefault'0'COMMENT'总人数',`yixuan`int(11)NOTNULLdefault'0'COMMENT'已选的人数',`zhanbi`doubledefaultNULLCOMMENT'占比',`kechengid`int(11)defaultNULLCOMMENT'关联的课程,外键',PRIMARYKEY(`id`),KEY`FK491F27FE16222911`(`kechengid`),CONSTRAINT`FK491F27FE16222911`FOREIGNKEY(`kechengid`)REFERENCES`t_kecheng`(`id`))ENGINE=InnoDBDEFAULTCHARSET=utf8;学院表t_college建表的语句如下所示。CREATETABLE`t_college`(`id`int(11)NOTNULLauto_incrementCOMMENT'主键',`cname`varchar(255)defaultNULLCOMMENT'学院名',`collegedelete`int(11)NOTNULLdefault'0'COMMENT'是否删除的标志,0表示正常1,表示删除',PRIMARYKEY(`id`))ENGINE=InnoDBDEFAULTCHARSET=utf8;用户表t_user建表的语句如下所示。CREATETABLE`t_user`(`id`int(11)NOTNULLauto_incrementCOMMENT'主键',`age`varchar(255)defaultNULLCOMMENT'年龄',`deletestatus`int(11)NOTNULLdefault'0'COMMENT'是否删除的标志,0表示正常1,表示删除',`email`varchar(255)defaultNULLCOMMENT'邮箱',`password`varchar(255)defaultNULLCOMMENT'密码',`role`int(11)NOTNULLdefault'0'COMMENT'1表示管理员,2表示教师,3表示学生',`sex`varchar(255)defaultNULLCOMMENT'性别',`tel`varchar(255)defaultNULLCOMMENT'手机号码',`truename`varchar(255)defaultNULLCOMMENT'姓名',`username`varchar(255)defaultNULLCOMMENT'用户名',`zhichen`varchar(255)defaultNULLCOMMENT'职称',`collegeid`int(11)defaultNULLCOMMENT'学院',`zhuanyeid`int(11)defaultNULLCOMMENT'专业',PRIMARYKEY(`id`),KEY`FKCB5540D6D011F3C1`(`collegeid`),KEY`FKCB5540D6CA20D953`(`zhuanyeid`),CONSTRAINT`FKCB5540D6CA20D953`FOREIGNKEY(`zhuanyeid`)REFERENCES`t_zhuanye`(`id`),CONSTRAINT`FKCB5540D6D011F3C1`FOREIGNKEY(`collegeid`)REFERENCES`t_college`(`id`))ENGINE=InnoDBAUTO_INCREMENT=2DEFAULTCHARSET=utf8;专业表t_zhuanye建表的语句如下所示。CREATETABLE`t_zhuanye`(`id`int(11)NOTNULLauto_incrementCOMMENT'主键',`zhuanyedelete`int(11)NOTNULLdefault'0'COMMENT'是否删除的标志,0表示正常1,表示删除',`zname`varchar(255)defaultNULLCOMMENT'专业名',PRIMARYKEY(`id`))ENGINE=InnoDBDEFAULTCHARSET=utf8;5.2系统功能实现的主要框架5.2.1SSH框架SSH框架就是struts2,spring,hibernate的简称,运用3个框架的集成协作使用,可以有效的提高代码编写的效率,从而有效的降低程序开发的周期。5.2.2hibernate配置文件这是Hibernate的配置文件,在该文件中首先加载了数据库的连接信息,控制台打印SQL语句,并格式化SQL语句,当前数据库的语言用的是MYSQL。然后进行当前数据库建立起来的表和类之间的映射关系,比如<mappingclass="com.xawl.model.User"/>,表示User类和t_user表之间的建立起来的对应关系,其他也都类似。这乱七八糟的排版,是段落就要缩进,是代码就放入一行一列的表格hibernate配置文件实现如下所示。这乱七八糟的排版,是段落就要缩进,是代码就放入一行一列的表格<hibernate-configuration> <session-factory><propertyname="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property><propertyname="hibernate.connection.url">jdbc:mysql://localhost:3306/test108?characterEncoding=utf-8</property><!--指定连接数据库的用户名和密码。--><propertyname="hibernate.connection.username">root</property><propertyname="hibernate.connection.password">root</property> <!--EchoallexecutedSQLtostdout--><propertyname="show_sql">true</property><propertyname="format_sql">true</property> <propertyname="dialect">org.hibernate.dialect.MySQLDialect</property> <!--EnableHibernate'sautomaticsessioncontextmanagement--><propertyname="current_session_context_class">thread</property> <!--数据库没有改表的情况下可以自动生成--> <propertyname="hibernate.hbm2ddl.auto">update</property> <mappingclass="com.xawl.model.User"/> <mappingclass="com.xawl.model.Kecheng"/> <mappingclass="com.xawl.model.Xuanke"/> <mappingclass="com.xawl.model.Tongji"/> <mappingclass="com.xawl.model.College"/> <mappingclass="com.xawl.model.Zhuanye"/> </session-factory></hibernate-configuration>5.2.3struts配置文件这是struts的配置文件,该文件的作用主要起到来自JSP的请求的跳转分配的作用。该struts配置文件是个总的配置文件。Struts配置文件实现如下所示。<struts> <constantname="struts.objectFactory"value="spring"/> <constantname="struts.i18n.encoding"value="UTF-8"/> <constantname="struts.action.extension"value="html"/> <packagename="index"namespace="/"extends="struts-default"> <actionname="index"method="index"class="indexAction"> <resultname="success">index.jsp</result></action><actionname="indexmethod"class="indexAction"><resulttype="dispatcher">${url}</result> <resultname="redirect"type="redirect">${url}</result></action> <actionname="method"class="manageAction"> <resulttype="dispatcher">${url}</result> <resultname="redirect"type="redirect">${url}</result> </action></package></struts>文字提到代码上,然后在文字中加文字提到代码上,然后在文字中加“xxxx实现如下所示。”类似问题相同处理5.2.4spring配置文件Spring在本项目中主要用到了IOC的功能,就是把对象实例化。本段代码是把DAO和Action实例化的代码,原理是spring的IOC模式。Spring配置文件实现如下所示。<!--daos--> <beanid="userDao"class="com.xawl.dao.impl.UserDaoImpl"> <propertyname="sessionFactory"><refbean="sessionFactory"/></property> </bean> <beanid="kechengDao"class="com.xawl.dao.impl.KechengDaoImpl"> <propertyname="sessionFactory"><refbean="sessionFactory"/></property> </bean> <beanid="xuankeDao"class="com.xawl.dao.impl.XuankeDaoImpl"> <propertyname="sessionFactory"><refbean="sessionFactory"/></property> </bean> <beanid="tongjiDao"class="com.xawl.dao.impl.TongjiDaoImpl"> <propertyname="sessionFactory"><refbean="sessionFactory"/></property> </bean> <beanid="collegeDao"class="com.xawl.dao.impl.CollegeDaoImpl"> <propertyname="sessionFactory"><refbean="sessionFactory"/></property> </bean> <beanid="zhuanyeDao"class="com.xawl.dao.impl.ZhuanyeDaoImpl"> <propertyname="sessionFactory"><refbean="sessionFactory"/></property> </bean> <!--actions--> <beanid="manageAction"class="com.xawl.action.ManageAction"scope="prototype"> <propertyname="userDao"><refbean="userDao"/></property> <propertyname="kechengDao"><refbean="kechengDao"/></property> <propertyname="xuankeDao"><refbean="xuankeDao"/></property> <propertyname="tongjiDao"><refbean="tongjiDao"/></property> <propertyname="collegeDao"><refbean="collegeDao"/></property> <propertyname="zhuanyeDao"><refbean="zhuanyeDao"/></property> </bean> 5.3系统功能实现的主要模块5.3.1系统登录页面系统登录页面的设计较为简洁,用户进入登录页面时需要在对应的框里输入账号、密码和验证码。当账号、密码和验证码都输入正确时,验证通过跳转至系统主页。不同的用户可以根据自己的身份选择相应的用户角色进行登录。用户进行登录时,有三种不同的身份进行选择,不同的身份只能与相对应的身份进行选择登录,一个账号只能有一个身份。调整图的大小,不要超出宽度实现效果图如图5.1所示。调整图的大小,不要超出宽度图5.1系统登录页面登陆代码:缩进ManageAction的login()方法 。缩进//管理员后台登陆 publicStringlogin()throwsIOException{ HttpServletRequestrequest=this.getRequest(); PrintWriterwriter=this.getPrintWriter(); Stringusername=request.getParameter("username"); Stringpassword=request.getParameter("password"); Stringrole=request.getParameter("role"); Useruser=userDao.selectBean("whereusername='"+username +"'andpassword='"+password+"'androle="+role+"anddeletestatus=0"); if(user!=null){ HttpSessionsession=request.getSession(); session.setAttribute("manage",user); this.setUrl("index.jsp"); return"redirect"; }else{ writer.print("<scriptlanguage=javascript>alert('用户名或者密码错误');window.location.href='login.jsp';</script>"); } returnnull; }本段代码是程序的登陆代码,首先从获取从页面输入的用户名、密码以及用角色,然后调用userDao.selectBean方法,从数据库里取出该条记录进行判断,如果该条记录存在,则说明用户登陆成功,同时把用户信息存在session里面方便调用,如果记录为空,则跳转到登陆页面,同时提醒用户错误信息。5.3.2教师管理页面在教师管理页面中,管理员可以添加老师的信息,例如用户名、姓名、所属学院、手机号码、职称等。可以对教师的各项信息进行增删改查。实现效果图如图5.2所示。图5.2教师管理页面//教师列表 publicStringuserlist(){ HttpServletRequestrequest=this.getRequest(); Stringusername=request.getParameter("username"); Stringtruename=request.getParameter("truename"); StringBuffersb=newStringBuffer(); sb.append("where"); if(truename!=null&&!"".equals(truename)){ sb.append("truenamelike'%"+truename+"%'"); sb.append("and"); request.setAttribute("truename",truename); } if(username!=null&&!"".equals(username)){ sb.append("usernamelike'%"+username+"%'"); sb.append("and"); request.setAttribute("username",username); } sb.append("deletestatus=0androle=2orderbyiddesc"); Stringwhere=sb.toString(); intcurrentpage=1; intpagesize=10; if(request.getParameter("pagenum")!=null){ currentpage=Integer.parseInt(request.getParameter("pagenum")); } inttotal=userDao.selectBeanCount(where.replaceAll("orderbyiddesc","")); request.setAttribute("list",userDao.selectBeanList((current1) *pagesize,pagesize,where)); request.setAttribute("pagerinfo",Pager.getPagerNormal(total,pagesize, currentpage,"method!userlist.html","共有"+total+"条记录")); request.setAttribute("url","method!userlist.html"); request.setAttribute("url2","method!user"); request.setAttribute("biaoti","教师管理"); this.setUrl("user/userlist.jsp"); returnSUCCESS; } 首先通过Stringusername=request.getParameter("username");Stringtruename=request.getParameter("truename");这句代码从页面获取查询的选项,然后通过if(username!=null&&!"".equals(username)){,if(truename!=null&&!"".equals(truename)){通过这句条件语句分别判断下这个值是否为空,当不为空时则通过StingBuffer来叠加组装查询的sql语句,最后当sql语句组装好了之后,通过userDao.selectBeanList方法来调用数据库的查询方法来查到符合条件的记录,在通过request.setAttribute方法把查询到的记录传到显示的页面。同时通过this.setUrl("user/userlist.jsp");方法指定传回到具体指定的是哪个JSP页面。通过这样实现对数据查询功能的实现,同时在该教师列表页面定义了对教师信息的增加,修改,删除等操作。格式有问题,行距一看就不对,以下相同处理格式有问题,行距一看就不对,以下相同处理5.3.3选课审核页面在教师完成申请开课,确定了上课时间和地点后,管理员要对该课程进行审核,审核该课程的安排是否合理。审核通过之后,学生才可以对该课程进行选课。实现效果图如图5.3所示。图5.3选课审核页面//课程列表 publicStringkechenglist(){ HttpServletRequestrequest=this.getRequest(); Stringkname=request.getParameter("kname"); StringBuffersb=newStringBuffer(); sb.append("where"); if(kname!=null&&!"".equals(kname)){ sb.append("knamelike'%"+kname+"%'"); sb.append("and"); request.setAttribute("kname",kname); } HttpSessionsession=request.getSession(); Useruser=(User)session.getAttribute("manage"); sb.append("kechengdelete=0anduser.id="+user.getId()+"orderbyiddesc"); Stringwhere=sb.toString(); intcurrentpage=1; intpagesize=10; if(request.getParameter("pagenum")!=null){ currentpage=Integer.parseInt(request.getParameter("pagenum")); } inttotal=kechengDao.selectBeanCount(where.replaceAll("orderbyiddesc","")); request.setAttribute("list",

温馨提示

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

评论

0/150

提交评论