毕业设计论文基于BS架构的大学生成绩管理系统设计与实现

上传人:仙*** 文档编号:37486727 上传时间:2021-11-03 格式:DOC 页数:34 大小:167KB
返回 下载 相关 举报
毕业设计论文基于BS架构的大学生成绩管理系统设计与实现_第1页
第1页 / 共34页
毕业设计论文基于BS架构的大学生成绩管理系统设计与实现_第2页
第2页 / 共34页
毕业设计论文基于BS架构的大学生成绩管理系统设计与实现_第3页
第3页 / 共34页
点击查看更多>>
资源描述
青 岛 科 技 大 学本 科 毕 业 设 计 (论 文)基于B/S架构的大学生成绩管理系统设计与实现题 目 _指导教师_辅导教师_学生姓名_学生学号_121自动化自动化与电子工程学院_学院 _专业_班2016526_年 _月 _日基于B/S架构的大学生成绩管理系统设计与实现摘 要针对大学生成绩信息管理工作,经仔细分析之后本文设计并实现了大学生成绩管理系统。本系统在功能上主要分学生端和管理员端,分别可以完成对应用户所需的功能;在技术上,本系统是采用B/S架构基于java语言开发的,数据库采用oracle 11g,web服务器采用tomcat服务器。采用计算机对大学生成绩进行管理,能进一步提高高校办学效益和现代化水平,帮助教师提高工作效率,实现学生成绩维护工作流程中的系统化、规范化和高效化。 关键词:学生成绩管理;B/S架构;java;oracle数据库BASED ON B / S ARCHITECTURE STUDENT ACHIEVEMENT MANAGEMENT SYSTEM DESIGN AND IMPLEMENTATIONABSTRACTStudents grades for information management, after careful analysis of college students designed and implemented a performance management system. This system is functionally divided students and administrators end side, respectively, corresponding to the user can complete the required functions; Technically, the system is the use of B / S architecture is based on java language development, database using oracle 11g, web server uses tomcat server.Students use computers for performance management, to further improve the level of efficiency and modernization of the Higher Education to help teachers improve work efficiency, maintenance workflow student achievement in the systematic, standardized and efficient.KEY WORDS: student achievement management; B / S architecture; java; Oracle datebase目 录第一章 绪论61.1研究背景6第二章 系统开发相关技术介绍72.1 系统架构72.1.1 B/S架构和C/S架构介绍72.1.2 本系统架构72.2 java语言72.2.1 java简介72.3 Oracle数据库82.3.1 Oracle简介82.3.2 Oracle数据库体系结构概述82.4 本章小结8第三章 系统需求分析93.1用户权限分析93.2系统功能分析93.3 系统数据分析10第四章 系统设计114.1 系统技术架构设计114.2数据库设计114.2.1 项目E-R图114.2.2数据库表的设计124.3底层接口设计124.3本章小结13第五章 详细设计和实现145.1 登录模块145.1.1功能分析145.1.2 代码实现145.2 学生端主页模块175.3管理端主页模块185.3.1 学生信息列表185.3.2 学生信息删除功能235.4学生信息查询模块245.4.1业务逻辑介绍245.4.2代码实现245.5新增学生模块285.5.1业务逻辑285.5.2代码实现285.6 回收站模块305.7 本章小结30第六章 系统测试306.1 测试环境306.2 测试工作316.3 本章小结33第一章 绪论1.1研究背景随着计算机科学的发展,利用计算机来实现数据的管理已经越来越成为一种趋势。当需要管理的数据量较大时,可以通过根据自身特点设计并开发一个对应的信息管理系统来完成既定的功能。相较于传统的信息管理,计算机信息管理系统具有存储量大、查询迅速、可靠性高、成本低和使用方便等优点。现在的大学生成绩信息管理就可通过计算机来实现。开发一个大学生成绩管理系统对于教务人员和学生有着很大的意义,可以帮助相应人员从繁重的信息管理工作中解放出来。1.2研究目标通过对学校教务系统成绩管理的研究,开发一个与学校教务成绩管理特点想适应的学生成绩管理系统。本系统设计的主要目标如下: 能满足成绩管理的功能需求。 有一定的人性化设计,方便用户使用。 操作快捷,提高办公效率。 有一定的安全机制,防止恶意篡改数据。第二章 系统开发相关技术介绍本系统的开发涉及到的语言和技术有:B/S框架技术、软件开发语言java、数据库技术(oracle)等。2.1 系统架构2.1.1 B/S架构和C/S架构介绍C/S全称Client/Server。客户机需安装相应的客户端才可使用。C/S架构通过把任务合理分配到客户端和服务器端,来降低服务器端资源开销。但是C/S架构在系统更新时从服务器到客户机都需要更新,代价较大。B/S全称Browser/Server。相较于C/S架构,B/S架构不需客户机安装客户端,只需安装浏览器即可,例如360浏览器、火狐浏览器等。浏览器通过Web Server 同数据库进行数据交互。B/S架构在系统进行更新时,只需更新服务器即可,但是本架构相较于C/S架构对服务器要求比较高。2.1.2 本系统架构 本系统用户定位于高校师生,是一个小型系统,普通的PC机即可担任客户机。同时考虑到采用B/S架构用户不需客户端以及维护方便的优势,最终采用B/S架构。2.2 java语言2.2.1 java简介Java语言是一种面向对象的语言,继承了c+语言面向对象的核心,同时去除了c+中难懂的指针、多重继承(以接口代替)、运算符重载等特性。Java语言真正实现了“一次编译,到处执行”的特性。2.3 Oracle数据库2.3.1 Oracle简介Oracle 是殷墟出土的甲骨文(oracle bone inscriptions)的英文翻译的第一个单词。Oracle 公司是全球最大的信息管理软件及服务供应商,成立于1977年,总部位于美国加州 Redwood shore。Oracle 公司因其复杂的关系数据库产品而闻名。Oracle的关系数据库是世界第一个支持SQL语言的数据库2.3.2 Oracle数据库体系结构概述平常所说的 Oracle 或 Oracle 数据库指的是 Oracle 数据库管理系统。 Oracle 数据库管理系统是管理数据库访问的计算机软件(Oracle database manager system). 它由 Oracle 数据库和 Oracle 实例(instance)构成。Oracle 数据库: 一个相关的操作系统文件(即存储在计算机硬盘上的文件)集合,这些文件组织在一起, 成为一个逻辑整体, 即为 Oracle 数据库。Oracle 用它来存储和管理相关的信息。Oracle数据库必须要与内存里的实例合作,才能对外提供数据管理服务。Oracle 实例: 位于物理内存里的数据结构,它由操作系统的多个后台进程和一个共享的内存池所组成,共享的内存池可以被所有进程访问。Oracle 用它们来管理数据库访问。用户如果要存取数据库(也就是硬盘上的文件) 里的数据, 必须通过Oracle实例才能实现, 不能直接读取硬盘上的文件。实际上, Oracle 实例就是平常所说的数据库服务(service)。区别:实例可以操作数据库;在任何时刻一个实例只能与一个数据库关联,访问一个数据库;而同一个数据库可由多个实例访问(RAC)。类似java里的类和对象,一个对象只属于一个类,类可以有多个对象。表空间(Tablespace):oracle数据库是通过表空间来存储表的,一个数据库实例可以有n个表空间,一个表空间下有n个表。用户(user):oracle数据库建好后,要想在库里建表,必须先为库创建用户,并为用户指定表空间,不指定的话默认为users表空间。表(Table):有了数据库、表空间和用户就可以创建表,是由行和列组成的二维数据结构,用来存储行记录。数据(Data):表中的行记录。2.4 本章小结本章主要对系统所用的开发工具做了简单介绍。第三章 系统需求分析系统在开发之前,需要和用户进行沟通了解用户所需的具体功能。需求分析不是一个简单的阶段,它是贯穿于整个系统开发过程中的。做好需求分析是系统开发的必备工作。本系统分析主要从需求分析、权限分析、功能分析以及数据分析入手。3.1用户权限分析随着学校招生人数的增长,随之而来的就是大量的学生信息管理问题,本论文针对的便是学生成绩信息管理。成绩管理主要涉及两方面用户的操作:学生和管理员(老师)。学生在成绩管理上的权限仅限于用户注册、个人信息查询;管理员在成绩管理上的权限有:所有学生用户的查询、增加、删除、编辑,所有学生用户成绩信息的查询、增加、删除。图3-1 用户权限示例Fig.3-1User permissions example3.2系统功能分析在对学生和教师所需功能进行分析之后,本系统分别对学生子系统和管理员子系统做了如下功能设计。学生端功能如下:1、 登录功能能够实现一个登录页面,提交后在后台判断用户名密码的正确性。后台处理使用Servlet实现。 (1) 输入的用户名和密码是通过和数据库中信息进行比对,比对成功判断登录成功,跳转到登录成功页面,并在页面上判断用户是否已经登录,如果是已经登录状态,则显示登录用户名及登录时间。 (2)输入的用户名和密码是通过和数据库中信息进行比对,比对失败判断登录失败,此时,跳回登录页面,并在登录页面上提示用户:“用户或密码错误,请重新登录”。2、注册功能通过在注册页面输入自己信息,提交后通过验证可完成学生注册。3、显示信息功能登录成功后可以看到自己详细信息。管理端功能如下:1、 登录功能(同学生端) 2、信息列表功能(1) 按照学号从小到大显示全部学生的列表 (2) 学生列表进行分页显示。 (3) 在列表的“姓名”列增加链接,点击链接,可以查看对应学生的详细信息。 3、 各科成绩范围查询功能在学生列表页面的“各科”下拉框中选中某课,后面输入框中输入成绩范围,点击“查询”按钮,在学生列表页面中显示查询结果。 4、 学生详细信息功能在学生列表中,点击“姓名”列的链接,显示该学生的详细信息。 5、 新增学生功能在学生列表页面,点击“新增”按钮,跳转到新增学生页面,在页面上输入学生的信息点击“提交”按钮,将信息提交至数据库。 6、 删除学生功能在学生列表中,选中想删除的学生记录前面的复选框,点击“删除”按钮,删除选中的学生信息。页面跳转至学生列表页面,并且被删除的学生记录不再被显示。 7、 回收站功能显示被删除的学生列表,在回收站页面提供删除撤销和彻底删除等功能。3.3 系统数据分析 本系统在开发中会使用到学生相关信息包括:学号、姓名、性别、出生日期、手机号、班级号、各科成绩。其中学号会作为学生在数据库中的主键使用,作为唯一标识。 图 3-2 系统流程Fig.3-2 System Flow第四章 系统设计本章主要设计了系统技术架构设计、数据库设计和底层接口设计。如果把系统比喻一颗树的话,本章的工作就是设计树干。好的系统设计可以大大减少之后的代码实现部分工作量。4.1 系统技术架构设计本系统采用当前主流的B/S作为系统架构,此模块中的业务层被划分为:客户层、表示层、业务逻辑层以及数据层。数据层:为系统的最底层,存储了系统所需的数据。系统所做的操作最终都会反映到数据库中。业务逻辑层:该层内为系统的核心代码,负责根据用户不同的指令完成对数据库对应的操作。表示层:该层为web服务器,负责在客户层和业务逻辑层之间传输数据。客户层:该层为用户的web浏览器,表示为网页。用户可以在对应的网页上进行操作,最终会反应到数据库中。 图 4-1 系统总体架构图Fig.4-1 System Architecture4.2数据库设计通过分析,可以抽取出管理员用户和学生用户两个实体类,即对应管理员用户表和学生用户表,用来管理用户信息。4.2.1 项目E-R图 图 4-2 学生实体E-R图Fig.4-2 Student entity E-R diagram图4-3管理员用户实体E-R图Fig.4-3 Administrators entity E-R diagram图4-4 实体间关系图Fig.4-4 Inter Entity Relationship Diagram4.2.2数据库表的设计数据库表设计的科学与否直接关系到项目开发的顺利与否。合理的数据库表格设计能会使项目代码实现容易、简洁,而不合理的数据库表格设计给程序员带来的工作量会大很多,且会造成代码的冗余。本系统的数据库设计基本遵循了数据库开发的三大范式。1、 第一范式:确保每列保持原子性。2、 第二范式:确保表中的每列都和主键相关。3、 第三范式:确保每列都和主键直接相关,而不是间接相关。本系统的数据库设计基本遵循了三大范式。此设计也为之后的编码实现打好了基础,能够有效提高对代码实现的简洁性。 下表即为根据上节中所给出的E-R图设计的数据库表。 1、 学生信息表表4-1 学生信息表Tab.4-1 Student Information Sheet字段名称数据类型字段大小是否主键说明stuidnumber4是学号nameVchar220否姓名passwordVchar220否密码sexVchar220否性别dateTimedate否出生日期phonenumber11否手机号码pcenumber5,2否运控成绩mcsnumber5,2否过控成绩epanumber5,2否嵌入式成绩flagnumber1否删除标志位2. 管理员信息表表4-2 管理员信息表Tab.4-2 Administrator information table字段名称数据类型字段大小是否主键说明manidnumber4是管理员编号nameVchar220否姓名passwordVchar220否密码4.3底层接口设计底层接口对于系统的功能实现有决定性作用,好的接口设计对系统开发后期的编码实现不言而喻。本系统的接口设计如下:int matchStudent(String name,String pwd);boolean addStudent(Student student);/ add studentboolean delStudent0(long id);/delete students by id(假)boolean delStudent1(long id);/delete students by id(真)boolean undoDel(long id);/撤销List querySubStudent(int start,int end);/分页Student queryStudentById(long id,int flag);/通过主键和状态查询boolean queryStudentById(long id);boolean queryStudentByName(String name);/通过name模糊查询boolean updateStudent(Student student);/跟新int getRowNum();/获得总记录数int getRowNumRB();/回收站记录List queryStudentBySubjectScore(String subject,int scoreMin,int scoreMax);/条件查询List querySubStudentRB(int start,int end);/回收站分页List queryStudentBySubjectScoreRB(String subject,int scoreMin,int scoreMax);/回收站条件查询4.3本章小结本章主要完成了系统的框架设计工作,完成了系统的总体架构,为之后的具体编码实现打好了基础。第五章 详细设计和实现本系统的准备工作到此已经完毕,在本章开始对系统功能的编码实现。5.1 登录模块本系统为成绩信息管理系统,不能被随意进入,所以需要通过登录来进行身份验证。登录页面是本系统的客户入口,所以首先被设计。5.1.1功能分析1、 本页面要完成两种用户验证的功能,即用户需要在本页面输入用户名和密码以及用户类型。2、 本页面应该具备一定的动态效果,用来拦截错误的登录过程,比如用户名为空等;后台完成账号密码匹配功能。3、 页面设计应美观、大方。5.1.2 代码实现该页面的最终效果图如下图所示:图 5-1 学生成绩管理系统登陆页面Fig.5-1 Student achievement management system login page用户通过在此页面输入用户名和密码及选择用户类型后(在页面上通过javascript控制用户名和密码不可为空),在后台(LoginServlet.java)通过与数据库中信息进行匹配,匹配成功则会进入用户类型相应的用户操作界面,失败则会返回登陆页面并有提示信息:图 5-2 管理员登陆成功页面Fig.5-2 Administrator login success page图5-3 学生登录成功Fig.5-3 Student login success page图 5-4 学生成绩管理系统登陆失败Fig.5-4 Student achievement management system login failed1、在jsp页面为了防止用户过多的访问服务器,减少服务器的工作量,通过JavaScript实现在客户端验证登录信息的完整性: function checkName(n)/验证姓名是否为空 if(n.value=) alert(用户名不可为空) function checkPwd(n)/验证密码是否为空 if(n.value=) alert(密码不可为空) function checkAll()/登录验证 if(document.getElementById(n).value != & document.getElementById(p).value != ) return true; else alert(有信息为空); return false; 2、当用户点击登录按钮之后,会把用户名等信息通过post的方式提交到LoginServlet,验证是否为真实用户;信息匹配成功时重定向到welcome.jsp页面,否则携带者“密码或用户名错误”的信息转发到login.jsp。LoginServlet关键代码如下:/ 读取requestString name = request.getParameter(name);String pwd = request.getParameter(pwd);String user = request.getParameter(userType);/ 根据用户类型分别进行用户名和密码匹配if (user.equals(student) int stuid = new StudentBizImpl().matchStudent(name, pwd);if (stuid 0) SimpleDateFormat sf = new SimpleDateFormat(yyyy-MM-dd);String loginTime = sf.format(new Date();/ 把用户名、学号、登陆时间和用户类型记录到sessionrequest.getSession().setAttribute(username, name);request.getSession().setAttribute(stuid, stuid);request.getSession().setAttribute(loginTime, loginTime);request.getSession().setAttribute(userType, user);/ 重定向到welcome.jsp response.sendRedirect(welcome.jsp); else / 匹配失败转发到login.jsprequest.setAttribute(msg, 用户名或密码错误);request.getRequestDispatcher(login.jsp).forward(request,response);if (user.equals(manager) Manager m = new Manager(name, pwd);if (new ManagerBizImpl().matchManager(m) SimpleDateFormat sf = new SimpleDateFormat(yyyy-MM-dd);String loginTime = sf.format(new Date();/ 把用户名、登陆时间和用户类型记录到sessionrequest.getSession().setAttribute(username, name);request.getSession().setAttribute(loginTime, loginTime);request.getSession().setAttribute(userType, user);/ 重定向到welcome.jspresponse.sendRedirect(welcome.jsp); else / 匹配失败转发到login.jsprequest.setAttribute(msg, 用户名或密码错误);request.getRequestDispatcher(login.jsp).forward(request,response);5.2 学生端主页模块学生登录成功后可在欢迎页面点击“进入学生成绩管理系统”按钮,通过超链接的方式到后台DetailStudentServlet提取对应学生详细信息,并转发到学生主页。本页面显示学生的个人详细信息,因为业务的需求本页面只提供显示功能,并没有编辑功能。图5-5 学生个人主页Fig.5-5 Student Personal Home page5.3管理端主页模块本页面为管理端主页,承担了本系统的大部分功能:学生信息列表、成绩范围查询、新增学生用户入口、删除学生用户、回收站入口等。图5-6 管理端首页Fig.5-6 Administrators Home page5.3.1 学生信息列表1、 信息显示业务逻辑当管理员用户从欢迎页面点击“进入学生管理系统”按钮之后,会通过当前页面的location对象的href=StudentListServlet?pageNow=1进入到后台servlet层。在StudnetListServlet的doGet(request,response)方法中取出request中携带的pageNow,通过dao层的分页查询函数实现相应页面数据的提取,并做好页数和显示记录数的控制。然后通过转发的方式转发到管理端首页。StudentListServlet关键代码如下:int pageNow;/ 存当前页int pageCount;/ 存总页数int pageSize = 5;/ 每页显示记录数int rowNum;/ 记录总记录数String page = 1;try page = request.getParameter(pageNow).toString(); catch (NullPointerException e) try page = request.getSession().getAttribute(currentPage).toString(); catch (NullPointerException e1) response.sendRedirect(login.jsp);/ 注销查询条件if (request.getSession().getAttribute(subject) != null) request.getSession().removeAttribute(subject);request.getSession().removeAttribute(scoreMin);request.getSession().removeAttribute(scoreMax);/ 控制当前页码最小值pageNow = Integer.parseInt(page);pageNow = pageNow = pageCount ? pageCount : pageNow;/控制分页查询条件int start = (pageNow - 1) * pageSize + 1;int end = start + pageSize -1 rowNum ? rowNum : start + pageSize-1;/ 封装request并转发到index.jsprequest.setAttribute(list, bbi.querySubStudent(start, end);request.setAttribute(lastPage, pageNow - 1);request.setAttribute(nextPage, pageNow + 1);request.setAttribute(endPage, pageCount);request.getSession().setAttribute(currentPage, pageNow);request.getRequestDispatcher(index.jsp).forward(request, response);2、 列表外加功能 (1)全选功能为了管理员用户在使用本列表进行操作时的易用性,在列表设计时在表格第一列添加了全选等复选框来完成多选和全选等操作。当用户点击全选复选框时,本业内所有记录被选中,释放全选则所有记录同时被释放;当所有记录被选中时,全选复选框也同时被选中。代码如下:/* * 全选 * checked则全选 * 否则松开全部 */ function chooseAll(n) var ids=document.getElementsByName(stuId); if(n.checked) /$(name=stuId).checked=true; for(var i=0;iids.length;i+) idsi.checked=true; else for(var i=0;iids.length;i+) idsi.checked=false; /* * 单选 * 如果都选中触发全选 */ function choose() var stuIds=document.getElementsByName(stuId); var flag=0; for(var i=0;istuIds.length;i+) if(stuIdsi.checked) flag+; if(flag=stuIds.length) document.getElementById(checkAll).checked=true; else document.getElementById(checkAll).checked=false; (2)详细信息功能用户可以通过点击学生用户的姓名来到达用户详细信息页面,来查看对应学生的所有信息。当用户点击该按钮之后,会触发onclick函数,页面会跳转到DetailStudentServlet,得到学生详细信息然后转发到detailStudent.jsp页面,在此页面实现学生详细信息的显示。(3)选中变色功能为了用户在使用时的使用体验,通过JavaScript的方式给表格中每行添加了onmouseover事件:当鼠标移动到相应的行时,该行颜色改变。关键代码如下:/* * 鼠标over则变色 */$(document).ready(function () $(tbody tr).hover(function() $(this).addClass(odd);, function() $(this).removeClass(odd);););(4) 跳页功能用户可以通过点击表格下方的“首页”、“尾页”、“上页”、“下页”超链接来分别实现对应的跳转功能。用户还可以用在表格下方的文本框中输入到相应的页码来跳转到对应的页码。关键代码如下:首页上一页下一页尾页5.3.2 学生信息删除功能用户通过在任意页面选中一个或一个以上的学生后,点击删除按钮即可完成相应的删除操作。1、 业务逻辑介绍当用户选中学生信息不为空时,点击删除submit按钮,会把选中的信息通过post的方式提交到后台DelStudentServlet,通过在后台调用StudentDaoImpl类的 delStudent1(int id)方法,来实现对相应学生用户flag属性的修改,完成在显示学号列表的隐藏操作。并在页面内显示删除成功与否信息。图5-7 删除成功Fig.5-7 successfully deleted2、 后台关键代码/提取学号数组String stuIds= request.getParameterValues(stuId);int ids=new intstuIds.length;for(int i=0;istuIds.length;i+)idsi=Integer.parseInt(stuIdsi);String msg=;/调用删除方法完成删除操作,并根据返回值来确定是否删除成功if(new StudentBizImpl().delStudent0(ids)msg=删除成功;elsemsg=删除失败;/封装删除结果重定向到QueryStudentBySubjectScoreServletrequest.getSession().setAttribute(msg, msg);response.sendRedirect(QueryStudentBySubjectScoreServlet);5.4学生信息查询模块用户通过下拉列表框选择想要查询的科目,并通过在文本框中输入最低分和最高分,点击查询按钮完成相应科目成绩范围查询功能。查询结果会在queryStudent.jsp页面显示。5.4.1业务逻辑介绍当用户完成查询条件选择和输入时,点击查询按钮会把查询条件通过get的方式提交到后台QueryStudentByStudentScoreServlet,在后台取出request里封装的查询条件并调用StudnetDaoImpl类的 queryStudentBySubjectScore(String subject,int scoreMin,int scoreMax)方法来完成查询,并把查询结果封装到response中,转发到queryStudent.jsp页面显示。前台完成查询信息不为空和最小值、最大值数值控制。图5-8 查询结果显示页面Fig.5-8 Query results page5.4.2代码实现1、 前台查询条件控制代码 /跳转到查询QueryStudentBySubjectScoreServlet function toFind() var s=document.getElementById(s).selectedIndex; var subject=document.getElementById(s).optionss.value; var smin=parseInt(document.getElementById(smin).value); var smax=parseInt(document.getElementById(smax).value); if(subject != ) if(smin = ) smin=0;/最低分默认为0 if(smax = ) smax=100;/最高分默认为100 var r=/0-9+(.0-91,2)?$/; if(r.test(smin) if(r.test(smax) if(smin=smax) window.location.href=QueryStudentByStudentScoreServlet?subject=+subject+&scoreMin=+smin+&scoreMax=+smax; else alert(拜托最低分比最高分还高了) else alert(最高分格式不对) else alert(最低分格式不对) 2、后台关键代码tryint smin,smax;String subject;if(request.getParameter(scoreMin)=null)subject=request.getSession().getAttribute(subject).toString();smin=Integer.parseInt(request.getSession().getAttribute(scoreMin).toString();smax=Integer.parseInt(request.getSession().getAttribute(scoreMax).toString();elsesmin=Integer.parseInt(request.getParameter(scoreMin);subject=request.getParameter(subject);smax=Integer.parseInt(request.getParameter(scoreMax);/记录smin和smaxrequest.getSession().setAttribute(scoreMin,smin);request.getSession().setAttribute(scoreMax,smax);request.getSession().setAttribute(subject, subject);StudentBiz bbi=new StudentBizImpl();/获得查询结果List list=bbi.queryStudentBySubjectScore(subject, smin, smax);int rowNum=list.size();int pageSize=5;/每页显示记录条数int pageCount=rowNum/pageSize=0?rowNum/pageSize:rowNum/pageSize+1;/控制总页数/当前页码设置和读取和控制int pageNow=1;if(request.getParameter(pageNow)!=null)pageNow=Integer.parseInt(request.getParameter(pageNow);pageNow=pageNow=pageCount?pageCount:pageNow;pageNow=pageNowrowNum?rowNum:startIndex+pageSize;/封装requestrequest.setAttribute(startIndex,startIndex);request.setAttribute(endIndex , endIndex);request.setAttribute(lastPage, pageNow-1);request.setAttribute(nextPage, pageNow+1);request.setAttribute(endPage, pageCount);request.setAttribute(list,list );/转发到request.getRequestDispatcher(queryStudent.jsp).forward(request, response);catch(NumberFormatException e)response.sendRedirect(StudentListServlet);catch(NullPointerException e1)response.sendRedirect(StudentListServlet);5.5新增学生模块5.5.1业务逻辑用户在点击主页或者查询页面中的新增按钮之后,会触发一个超链接指向addStudent.jsp,用户在此页面完成信息的确诊录入提交后即可完成在数据库中完成学生用户的新增功能。前台控制关键信息的不为空控制,以及相应信息的格式控制。 图5-9 新增学生页面Fig.5-9 New Students page5.5.2代码实现1、 后台关键代码/实例化一个studenttryStudent stu=new Student();stu.setName(request.getParameter(name);stu.setSex(request.getParameter(sex);stu.setDateTime(request.getParameter(dateTime);stu.setPhone(Long.parseLong(request.getParameter(phone);stu.setClassNo(request.getParameter(classNo);stu.setPce(Double.parseDouble(request.getParameter(pce);stu.setMcs(Double.parseDouble(request.getParameter(mcs);stu.setEpa(Double.parseDouble(request.getParameter(epa);/调用新增学生函数,并得到返回值if(new StudentBizImpl().addStudent(stu)request.getSession().setAttribute(msg, 添加成功);elserequest.getSession().setAttribute(msg, 添加失败);/转发到条件查询response.sendRedirect(QueryStudentBySubjectScoreServlet);catch(NumberFormatException e)response.sendRedirect(StudentListServlet);5.6 回收站模块考虑到用户可能有误删的操作,设计了回收站功能。用户第一次删除的用户会显示在回收站中,在回收站页面用户可完成已删除用户的恢复和彻底删除等操作。图5-10 回收站页面
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 压缩资料 > 基础医学


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!