毕业设计(论文)
基于jsp(java)信息管理系统的设计和开发
姓 名 系 别、 专 业 导 师 姓 名、职 称 完 成 时 间
摘 要
随着全球化信息技术的兴起,特别是Internet的日益普及,我国各大中专院校都建立了自己的校园网。毕业生以班级为单位的原始手工报送的毕业设计选题方式已经不能适应时代发展的需求,所以基于互联网的毕业设计信息管理系统也就孕育而生了。
毕业设计信息管理系统就是能够使学生通过互联网完成毕业设计课题的选定,它采用Web方式,同时适用于局域网和Internet,它要实现审核,权限管理等功能,并能提供毕业设计课题保存、课题查询等功能,该系统同时能够进行权限的判断,同时对用户和毕业设计课题进行多种操作。
本系统采用了JSP技术为主要手段,Oracle为后台数据库,本系统采用了多级角色管理:包括系统管理员、教师和学生三种权限。本文主要介绍了教师权限的功能,并详细地论述了系统设计的思想和实现的方法步骤从而为以后的研究打下了基础。
关键词:信息管理系统;网络;JSP
目 录
1 引言 ............................................................... 2 1.1 系统开发背景 ................................................... 2 1.2 系统开发的目的意义 ............................................. 2 2 开发工具、技术简介及运行环境 ....................................... 1 2.1 开发工具简介 ................................................... 1 2.1.1 Tomcat 简介 ................................................ 1 2.1.2 MyEclipse 简介 ............................................. 1 2.2 开发技术简介 ................................................... 2 2.2.1 JSP简介 .................................................... 2 2.2.2 JDBC简介 ................................................... 2 2.2.3 Oracle 数据库简介........................................... 3 3 需求分析和总体设计 ................................................. 3 3.1 系统需求分析 ................................................... 3 3.2 可行性分析 ..................................................... 4 3.3 系统设计思想 ................................................... 4 3.4 数据库设计 ..................................................... 5 3.4.1 数据库需求分析 ............................................. 5 3.4.2 数据库逻辑结构设计 .......................................... 5 3.5 系统功能设计 ................................................... 6 3.6 系统功能图 ..................................................... 7 3.7 系统功能流程图 ................................................. 7 4 部分详细设计和实现 ................................................. 8 4.1 系统页面主题设计 ............................................... 8 4.2 数据库操作类 ................................................... 9 4.3 教师界面及其基本功能的实现 .................................... 12 4.3.1 教师登录 .................................................. 12 4.3.2 教师在线出题 .............................................. 13 4.3.3 毕业设计课题查询........................................... 14
4.3.4 毕业设计课题修改........................................... 14 4.3.5 查询已选课题名单........................................... 17 4.3.6 安全管理 .................................................. 18 5 软件测试 .......................................................... 20 5.1 软件测试的目的 ................................................ 20 5.2 系统测试 ...................................................... 20 结 论 ............................................... 错误!未定义书签。 参考文献 ............................................. 错误!未定义书签。 致 谢 ............................................... 错误!未定义书签。
1 引言
1.1 系统开发背景
随着物质化办公的日益普及,信息的自动处理以及网络式的信息交互方式越来越被人们认可和使用。让计算机来管理学生的信息是现在各个高校都在积极进行的工作之一,也是高校教学管理工作的重要内容之一。随着近几年高校的持续扩招,学生人数逐年增加。为了满足广大学生的求学需求,各个高校的师资力量、硬件配置也随之增强。这样一来,日常行政部门的工作也接越来越繁重。传统的管理方式要耗费大量的资源,毕业设计信息管理系统和传统的手工方式选择毕业设计课题相比不但节约资源,而且更加准确,便于查询和修改信息。同时,增强学生选题的自主权,能够选择自己感兴趣的课题。传统的毕业设计课题选择方式已经不适应现代教学管理的改革和发展的需要,迫切需要一种新的信息管理方式。
1.2 系统开发的目的意义
毕业设计是学生在校期间的最后一个教学环节,是学习深化和提高的一个重要过程,也是综合检验所学理论知识的一个重要环节。本系统从课题的审核,学生选题、查询课题,教师出题、查询课题、修改课题等多个环节进行管理,实现了毕业设计课题的管理工作。同时实现了学生自主选题,对已选课题进行查询的功能,同时教师可以及时查看所选课题名单,保证毕业设计期间教师和学生之间信息的联通。
随着Internet的发展,基于网络的毕业设计信息管理系统由于能使得学生可以在任意地点、任意时间进行课题的选择,因此,基于网络的信息管理系统的研发工作正引起国内外高校的广泛关注。并且随着学院的教学体制改革不断加深,本系统的建立
为参加毕业设计的教师和学生提供了接口。
2 开发工具、技术简介及运行环境
2.1 开发工具简介
2.1.1 Tomcat 简介
Tomcat是由Apache软件基金会下属的Jakarta项目开发的一个Servlet容器,按照Sun Microsystems提供的技术规范,实现了对Servlet和JavaServer Page(JSP)的支持,并提供了作为Web服务器的一些特有功能,如Tomcat管理和控制平台、安全域管理和Tomcat阀等。由于Tomcat本身也内含了一个HTTP服务器,它也可以被视作一个单独的Web服务器。但是,不能将Tomcat和Apache Web服务器混淆。Apache Web Server是一个用C语言实现的HTTP web server;这两个HTTP web server不是捆绑在一起的。Apache Tomcat包含了一个配置管理工具,也可以通过编辑XML格式的配置文件来进行配置。 2.1.2 MyEclipse 简介
MyEclipse企业级工作平台(MyEclipse Enterprise Workbench ,简称MyEclipse)是对Eclipse IDE的扩展,利用它我们可以在数据库和J2EE的开发、发布,以及使用程序服务器的整合方面极大的提高工作效率。它是功能丰富的J2EE集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持HTML,Struts,JSF,CSS,Javascript,SQL,Hibernate。
在结构上,MyEclipse的特征可以被分为7类: (1)J2EE模型。 (2)WEB开发工具。 (3)EJB开发工具。
(4)使用程序服务器的连接器。 (5)J2EE项目部署服务。 (6)数据库服务。 (7)MyEclipse整合帮助。
对于以上每一种功能上的类别,在Eclipse中都有相应的功能部件,并通过一系列的插件来实现它们。MyEclipse结构上的这种模块化,可以让我们在不影响其他模块的情况下,对任一模块进行单独的扩展和升级。
简单而言,MyEclipse是Eclipse的插件,也是一款功能强大的J2EE集成开发环境,支持代码编写、配置、测试以及除错。
2.2 开发技术简介
2.2.1 JSP简介
JSP(Java Server Pages)是由Sun Microsystems公司倡导、许多公司参和一起建立的一种动态网页技术标准。JSP技术有点类似ASP技术,它是在传统的网页HTML文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件(*.jsp)。JSP设计目标是为了使动态页面编写更容易,更简单,用JSP开发的Web使用是跨平台的,既能在Linux下运行,也能在其他操作系统上运行,JSP特点主要有以下几点:
(1)一次编写,到处运行。在这一点上Java比PHP更出色,除了系统之外,代码不用做任何更改。
(2)系统的多平台支持。基本上可以在所有平台上的任意环境中开发,在任意环境中进行系统部署,在任意环境中扩展。相比ASPPHP的局限性是显而易见的。
(3)强大的可伸缩性。从只有一个小的jar文件就可以运行Servlet/JSP,到由多台服务器进行集群和负载均衡,到多台Application进行事务处理,消息处理,一台服务器到无数台服务器,Java显示了一个巨大的生命力。
(4)多样化和功能强大的开发工具支持。这一点和ASP很像,Java已经有了许多非常优秀的开发工具,而且许多可以免费得到,并且其中许多已经可以顺利的运行于多种平台之下。 2.2.2 JDBC简介
JDBC是Java Data Base Connectivity的简称,也就是java数据库连接。它是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库使用程序。有了JDBC向各种关系数据发送SQL语句就是一件很容易的事,程序员只需用JDBC API写一个程序就够了,它可向相应数据库发送SQL调用。同时JDBC API 既支持数据库访问的两层模型(C/S),也支持三层模型(B/S)。
2.2.3 Oracle 数据库简介
Oracle Database,又名Oracle RDBMS,或简称Oracle。Oracle数据库管理系统是一个以关系型和面向对象为中心管理数据的数据库管理软件系统,其在管理信息系统、企业数据处理、因特网及电子商务等领域有着非常广泛的使用。因其在数据安全性和数据完整性控制方面的优越性能,以及跨操作系统、跨硬件平台的数据互操作能力,使得越来越多的用户将Oracle作为其使用数据的处理系统。
Oracle数据库是基于“客户端/服务器”模式结构。客户端使用程序执行和用户进行交互的活动。其接收用户信息,并向“服务器端”发送请求。服务器系统负责管理数据信息和各种操作数据的活动。
Oracle数据库有如下几个强大的特性:支持多用户、大事务量的事务处理;数据安全性和完整性的有效控制;支持分布式数据处理;可移植性很强。
Oracle数据库的优点:
(1)Oracle的稳定性要比Sql server好。
(2)Oracle在导数据工具sqlload.exe功能比Sqlserver的Bcp功能强
大,Oracle可以按照条件把文本文件数据导入。 (3)Oracle的安全机制比Sql server好。 (4)在处理大数据方面Oracle会更稳定一些。
(5)处理速度方面比Sql server快一些,和两者的协议有关。
3 需求分析和总体设计
3.1 系统需求分析
作为高校毕业生的一个毕业设计信息管理系统,它就面对着许多用户的操作,而这些用户对系统的操作应该有所不同,所以我们在设计时必须要对不同的用户设立不同的权限。在本系统中,我们考虑了3种权限(管理员,指导教师,学生)。管理员可以对教师、学生、毕业设计课题进行操作,而教师和学生只能对毕业设计课题进行部分操作。
同时,我们为了使本系统更加符合我们的实际要求,教师可以在线查询班级的课程表,根据不同专业所学课程的内容在线出题,但是所出的题目必须经过管理员的审核后学生才能进行选择。在学生的选题模块中,学生可以先进行本班毕业设计所有课
题的查询,然后在根据自己的实际情况,选择自己要选的毕业设计课题。同时还可以进行选题情况查询,以进一步确定。
3.2 可行性分析
(1)经济可行性
系统所要求的硬件(计算机及相关硬件)和软件环境(JSP+Oracle),市场上都容易买到或从相关网站下载,系统成本主要集中在开发和维护上,不会造成过重的经济负担。而一旦此系统投入使用,不仅可以减少教学管理者的工作强度,提高工作效率,而且极大限度的方便了用户,可以节省大量的人力、财力。
(2)技术可行性
技术上的可行性分析主要是分析技术条件能否顺利完成开发工作,硬、软件能否满足开发者的需要等。在软件方面,本系统采用JSP技术进行开发,前台网页设计使用的是Dreamweaver,而数据库系统采用的是Oracle 9i。通过在软、硬件方面的分析,现有工具和环境可以实现系统的开发,因此具有技术上的可行性。
(3)管理可行性
主要是管理人员是否支持,现有的管理制度和方法是否科学,规章是否齐全,原始数据是否正确等。系统的开发主要就是为了方便毕业设计信息的管理,补充现在传统管理方式的不足,因此具备了管理上的可行性。
综上所述,系统开发目标已明确,在技术和经济等方面具备可行性,投入少,见效快,因此系统的开发是完全可行的。
3.3 系统设计思想
本系统存在3种用户:学生、教师、管理员。学生和教师用给定的帐号、密码登录系统进行操作。登录判定上首次基于数据库验证,然后把用户信息写入session,然后其他页面采用session验证。系统结构上采用页面镶嵌程序和语句,工作原理如图3-1所示:
用户界面 毕业设计信息管理系统 操作请求,运用SQL语句操作数据库 数据库存储层 返回查询结果集或操作结果 Oracle Database 9i 图3-1 系统工作原理图
在系统结构中,用户界面层通过统一的接口向数据库存储层发送请求,数据库存储层收到请求处理之后把数据返回到用户界面层。
3.4 数据库设计
3.4.1 数据库需求分析
数据库需求分析就是要了解在这个系统中,用户需要查询、更新、删除和保存哪些数据,收集基本数据、数据结构以及数据处理的流程,组成一份详尽的数据字典,为后面的具体设计打下基础。
针对毕业设计信息管理系统功能的需求,总结出如下需求信息: (1) 用户分教师、学生和管理员。 (2) 教师担任一门或多门课程。 (3) 学生只能选择一个毕业设计课题。 (4) 学生对自己所选课题的查询。
(5) 教师根据自己所授课程可以给相应的班级在线出题。 (6)教师可以对自己所出的课题进行查询、修改。
(7) 管理员可以添加、查询、删除、更改学生和教师的信息,可以对教师所出的题目进行审核。
通过总结,数据项和数据结构设计如下:
(1) 用户信息表,包括数据项:用户名、用户密码、角色。 (2) 教师信息表,包括数据项:教职工号、教师姓名。
(3) 学生信息表,包括数据项:学号、姓名、班级、专业名称。
(4) 课题表,包括数据项:课题编号、课题名称、课题要求、课题完成所需的人数、出题人、出题对应的班级。
(5)学生选题表,包括数据项:课题编号、课题名称、课题要求、出题人、学生姓名、学号。
3.4.2 数据库逻辑结构设计
毕业设计信息管理系统各表设计如下:
表3-1 用户信息表(users)
字段名 类型 长度 中文描述 备注 id idpwd role varchar varchar varchar 12 12 8 用户名 用户密码 用户角色 主键、非空 非空 非空 表3-2 教师信息表(teacher)
字段名 teacher_id teacher_name 类型 varchar varchar 长度 12 8 中文描述 教职工号 教师姓名 备注 主键、非空 非空 表3-3 学生信息表(student)
字段名 student_id student_name class_no class_name 类型 varchar varchar varchar varchar 长度 12 8 10 30 表3-4 课题表(subject)
字段名 subject_id subject_name subject_request subject_num class_no teacher_name 类型 varchar varchar varchar varchar varchar varchar 长度 5 100 250 8 10 8 中文描述 课题编号 课题名称 课题要求 人数 班级 出题人 备注 主键、非空 非空 非空 非空 非空 非空 中文描述 学号 姓名 班级 专业名称 备注 主键、非空 非空 非空 非空 表3-5 学生选题表(choose_subject)
字段名 subject_id subject_name subject_request teacher_name student_name student_id 类型 varchar varchar varchar varchar varchar varchar 长度 5 100 250 8 8 12 中文描述 课题编号 课题名称 课题要求 出题人 学生姓名 学号 备注 主键、非空 非空 非空 非空 非空 非空 3.5 系统功能设计
本系统分为学生操作界面、教师操作界面和管理员操作界面,下面主要对教师操作界面进行叙述:
教师界面能完成如下操作:
(1)班级课程表和班级名单:通过该功能模块,教师可以根据班级所学的课程给
出符合实际要求的毕业设计课题。
(2)题目管理:通过该功能模块,教师可以在线出题,可以查询自己所出课题,同时也可以对已出课题进行修改。
(3)查看已选该课题名单:通过该功能模块,教师可以查看所选课题的学生信息,及时和同学沟通交流。
(4)安全管理:通过该功能模块,教师可以及时修改自己的密码,保证安全性。 (5)退出系统:通过该功能模块,当教师完成出题后,可以安全退出本系统。
3.6 系统功能图
毕业设计信息管理系统的功能主要包括三部分:管理员、教师题库信息管理、学生在线选题信息管理。其毕业设计信息管理系统功能设计结构图结构如图3-2:
毕业设计选题系统 学生界面 教师界面 管理员界面 题目管理课程和名单查询已选课题名单安全管理退出系统 在线出题查询已出题目修改已出题目修改密码 3.7 系统功能流程图
系统功能流程如图3-3:
图3-2 系统功能图
开始 输入用户名 输入密码 说明不通过原因(用户名或密码或角色错误) 选择身份 no 验证 yes 登录成功 学生 教师 管理员 查看个人信息选择课题查询已选课题修改密码在线出题查询已处课题修改已出课题课程名单查询已选课题名单修改密码查询学生信息修改学生信息添加学生信息查询教师信息修改教师信息添加教师信息查询课题情况修改已出课题 4 部分详细设计和实现
4.1 系统页面主题设计
系统登录页面如图4-1:
教师登录系统,例如用户名:1000002,密码:1000002
图3-3 系统功能流程图
图4-1 系统登录界面
4.2 数据库操作类
用户在登录的时候,需要访问Oracle数据库中的信息,提高了程序的安全行和可靠性,经信息验证成功后才可以进入相应的用户操作界面。以下是部分代码:
(1)连接Oracle数据库代码:
<%@ page language=\"java\" import=\"java.util.*\" pageEncoding=\"GB2312\"%> <%@ page import=\"java.sql.*\" %>
<%Connection conn=null; Statement stmt=null; Statement stmt1=null; Statement stmt2=null; Statement stmt3=null; try{
Class.forName(\"oracle.jdbc.driver.OracleDriver\");
conn=DriverManager.getConnection(\"jdbc:oracle:thin:@localhost:1521: hsj\
stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
stmt1=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
stmt2=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
stmt3=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
}catch(SQLException e1){ out.println(e1.toString()); } %>
(2)提交登录界面输入的信息并进行判断代码如下:
<%@ page language=\"java\" import=\"java.util.*\" pageEncoding=\"GB2312\"%> <%@ page import=\"java.sql.*\" %>
<%@ include file=\"oracle.jsp\" %> <%String msg=\"\";
String id=request.getParameter(\"username\"); if(id==null){
id=\"\";}
byte b[]=id.getBytes(\"ISO-8859-1\"); id=new String(b);
String idpwd=request.getParameter(\"userpwd\"); String role=request.getParameter(\"userrole\"); if(role==null){
role=\"\";}
byte c[]=role.getBytes(\"ISO-8859-1\"); role=new String(c); ResultSet rs = null;
String strSql=\"select * from users where id='\"+id+\"' rs=stmt.executeQuery(strSql); if(!rs.next()){ %>
<%}
else{if(role.equals(\"管理员\")) {
session.setAttribute(\"result\response.sendRedirect(\"administer.jsp\"); }
if(role.equals(\"教师\")){
session.setAttribute(\"result\response.sendRedirect(\"teacher.jsp\"); }
if(role.equals(\"学生\")) {
session.setAttribute(\"result\
and idpwd='\"+idpwd+\"' and role='\"+role+\"'\";
response.sendRedirect(\"student.jsp\"); } }
rs.close(); stmt.close(); %>
4.3 教师界面及其基本功能的实现
4.3.1 教师登录
教师登录成功后,进入主界面,界面如图4-2:
图4-2 教师主界面
教师进入主界面后,可以进行班级课程表和班级名单的查询。
在使用本系统时均需要登录后才可使用,登录时系统会让你输入用户名,用户密码,和角色的选择。系统根据你输入的信息进行判断,如果用户名、密码和角色正确,将会进入教师主页面进行操作,如果用户名或密码或角色不正确,将会提示返回错误
页面。提示部分代码如下:
if(!rs.next()){ %>
4.3.2 教师在线出题
进入主页面后,点击题目管理,教师即可在线出题,界面如图4-3:
图4-3 教师在线出题界面
每位教师出题的课题编号是唯一的,当编号有重复时则会提示,并且出题失败,返回出题区,部分代码如下:
(1)查询表中是否已有此课题编号,并执行,代码如下:
String subject_id=new String(request.getParameter(\"th\")); String strsel=\"select subject_id from subject
where subject_id='\"+subject_id+\"'\";
ResultSet rs=stmt1.executeQuery(strsel); (2)如果有此编号,给出提示信息,代码如下: if(rs.next()) { %>
<%
4.3.3 毕业设计课题查询
进入题目管理界面后,点击下方的题目查询,即可查看教师本人所出的毕业设计课题。界面如图4-4:
图4-4 毕业设计课题查询界面
4.3.4 毕业设计课题修改
教师对所出课题进行查看后,如有更改的内容,点击题目修改,即可进入修改页面,完成修改操作。界面如图4-5:
图4-5 毕业设计课题修改界面
教师点击修改后,进入修改页面,显示要修改的毕业设计课题的全部信息,但是毕业设计课题的编号及出题人不能修改,其他内容可做修改。
(1)点击“修改”操作,将进入修改页面,通过超链接传值,代码如下: \">修改
(2)进入get_tmxiugai.jsp,将显示课题的全部信息,但是课题编号和出题人不能修改,部分代码如下:
<%
String id=request.getParameter(\"subject_id\"); String subject_name=null; String subject_request=null; String subject_num=null; String teacher_name=null; String class_no=null; ResultSet rs=null;
String strSel=\"select * from subject where subject_id='\"+id+\"'\"; rs=stmt.executeQuery(strSel);
while(rs.next()){ id=rs.getString(\"subject_id\"); subject_name=rs.getString(\"subject_name\"); subject_request=rs.getString(\"subject_request\"); subject_num=rs.getString(\"subject_num\"); teacher_name=rs.getString(\"teacher_name\"); class_no=rs.getString(\"class_no\");} %>
4.3.5 查询已选课题名单教师在主页面点击查询已选题目名单,将会显示选择此教师课题的学生信息,并进行人数的统计。界面如图4-6:
图4-6 查询已选课题名单
4.3.6 安全管理
用户登录时,用户名是唯一的,用户自己不可更改,但是用户可以更改自己的密码,保证个人信息的安全性。界面如图4-7:
图4-7 安全管理界面
当用户修改密码时会进行前台验证,不符合要求时会提示错误信息。实现代码如下:
5 软件测试
5.1 软件测试的目的
测试是对软件分析、设计、编码进行查错和纠错的过程。暴露问题并不是软件测试的最终目的,发现问题是为了改进软件或纠正程序的错误。测试阶段的根本目标是以最少的人力、物力和时间,尽可能多地发现并排除软件中潜在的错误,最终把一个高质量的软件系统交给用户使用。
5.2 系统测试
完成系统的编写后,我便对毕业设计信息管理系统进行测试,把教师模块的每个功能,超链接部分进行了测试,经过运行,修改代码后,基本已符合需求分析的要求。
软件测试是软件生产的一个重要的环节,也是最为耗费时间的一个环节。统计资料表明,测试的工作量约占整个项目开发工作量的40%左右。因此我们准备了充分的时间进行系统测试。
通过对系统的测试,我们发现了一些隐含的错误,找到了错误的原因,并对其进行改正。并在改正之后进行了调试,得到了可运行的程序。
因篇幅问题不能全部显示,请点此查看更多更全内容