基于jspjava信息管理系统的方案设计书和开发.docx
《基于jspjava信息管理系统的方案设计书和开发.docx》由会员分享,可在线阅读,更多相关《基于jspjava信息管理系统的方案设计书和开发.docx(28页珍藏版)》请在冰豆网上搜索。
基于jspjava信息管理系统的方案设计书和开发
毕业设计(论文)
基于jsp(java)信息管理系统的设计和开发
姓 名
系别、专业
导师姓名、职称
完成时间
摘要
随着全球化信息技术的兴起,特别是Internet的日益普及,我国各大中专院校都建立了自己的校园网。
毕业生以班级为单位的原始手工报送的毕业设计选题方式已经不能适应时代发展的需求,所以基于互联网的毕业设计信息管理系统也就孕育而生了。
毕业设计信息管理系统就是能够使学生通过互联网完成毕业设计课题的选定,它采用Web方式,同时适用于局域网和Internet,它要实现审核,权限管理等功能,并能提供毕业设计课题保存、课题查询等功能,该系统同时能够进行权限的判断,同时对用户和毕业设计课题进行多种操作。
本系统采用了JSP技术为主要手段,Oracle为后台数据库,本系统采用了多级角色管理:
包括系统管理员、教师和学生三种权限。
本文主要介绍了教师权限的功能,并详细地论述了系统设计的思想和实现的方法步骤从而为以后的研究打下了基础。
关键词:
信息管理系统;网络;JSP
目录
1引言1
1.1系统开发背景1
1.2系统开发的目的意义1
2开发工具、技术简介及运行环境1
2.1开发工具简介1
2.1.1Tomcat简介1
2.1.2MyEclipse简介2
2.2开发技术简介2
2.2.1JSP简介2
2.2.2JDBC简介3
2.2.3Oracle数据库简介3
3需求分析与总体设计4
3.1系统需求分析4
3.2可行性分析4
3.3系统设计思想5
3.4数据库设计5
3.4.1数据库需求分析5
3.4.2数据库逻辑结构设计6
3.5系统功能设计7
3.6系统功能图8
3.7系统功能流程图8
4部分详细设计和实现10
4.1系统页面主题设计10
4.2数据库操作类10
4.3教师界面及其基本功能的实现13
4.3.1教师登录13
4.3.2教师在线出题14
4.3.3毕业设计课题查询15
4.3.4毕业设计课题修改15
4.3.5查询已选课题名单18
4.3.6安全管理19
5软件测试21
5.1软件测试的目的21
5.2系统测试21
结论22
参考文献23
致谢24
1引言
1.1系统开发背景
随着物质化办公的日益普及,信息的自动处理以及网络式的信息交互方式越来越被人们认可和应用。
让计算机来管理学生的信息是现在各个高校都在积极进行的工作之一,也是高校教学管理工作的重要内容之一。
随着近几年高校的持续扩招,学生人数逐年增加。
为了满足广大学生的求学需求,各个高校的师资力量、硬件配置也随之增强。
这样一来,日常行政部门的工作也接越来越繁重。
传统的管理方式要耗费大量的资源,毕业设计信息管理系统与传统的手工方式选择毕业设计课题相比不但节约资源,而且更加准确,便于查询和修改信息。
同时,增强学生选题的自主权,能够选择自己感兴趣的课题。
传统的毕业设计课题选择方式已经不适应现代教学管理的改革和发展的需要,迫切需要一种新的信息管理方式。
1.2系统开发的目的意义
毕业设计是学生在校期间的最后一个教学环节,是学习深化和提高的一个重要过程,也是综合检验所学理论知识的一个重要环节。
本系统从课题的审核,学生选题、查询课题,教师出题、查询课题、修改课题等多个环节进行管理,实现了毕业设计课题的管理工作。
同时实现了学生自主选题,对已选课题进行查询的功能,同时教师可以及时查看所选课题名单,保证毕业设计期间教师和学生之间信息的联通。
随着Internet的发展,基于网络的毕业设计信息管理系统由于能使得学生可以在任意地点、任意时间进行课题的选择,因此,基于网络的信息管理系统的研发工作正引起国内外高校的广泛关注。
并且随着学院的教学体制改革不断加深,本系统的建立为参加毕业设计的教师和学生提供了接口。
2开发工具、技术简介及运行环境
2.1开发工具简介
2.1.1Tomcat简介
Tomcat是由Apache软件基金会下属的Jakarta项目开发的一个Servlet容器,按照SunMicrosystems提供的技术规范,实现了对Servlet和JavaServerPage(JSP)的支持,并提供了作为Web服务器的一些特有功能,如Tomcat管理和控制平台、安全域管理和Tomcat阀等。
由于Tomcat本身也内含了一个HTTP服务器,它也可以被视作一个单独的Web服务器。
但是,不能将Tomcat和ApacheWeb服务器混淆。
ApacheWebServer是一个用C语言实现的HTTPwebserver;这两个HTTPwebserver不是捆绑在一起的。
ApacheTomcat包含了一个配置管理工具,也可以通过编辑XML格式的配置文件来进行配置。
2.1.2MyEclipse简介
MyEclipse企业级工作平台(MyEclipseEnterpriseWorkbench,简称MyEclipse)是对EclipseIDE的扩展,利用它我们可以在数据库和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.1JSP简介
JSP(JavaServerPages)是由SunMicrosystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。
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.2JDBC简介
JDBC是JavaDataBaseConnectivity的简称,也就是java数据库连接。
它是一种用于执行SQL语句的JavaAPI,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。
JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序。
有了JDBC向各种关系数据发送SQL语句就是一件很容易的事,程序员只需用JDBCAPI写一个程序就够了,它可向相应数据库发送SQL调用。
同时JDBCAPI既支持数据库访问的两层模型(C/S),也支持三层模型(B/S)。
2.2.3Oracle数据库简介
OracleDatabase,又名OracleRDBMS,或简称Oracle。
Oracle数据库管理系统是一个以关系型和面向对象为中心管理数据的数据库管理软件系统,其在管理信息系统、企业数据处理、因特网及电子商务等领域有着非常广泛的应用。
因其在数据安全性与数据完整性控制方面的优越性能,以及跨操作系统、跨硬件平台的数据互操作能力,使得越来越多的用户将Oracle作为其应用数据的处理系统。
Oracle数据库是基于“客户端/服务器”模式结构。
客户端应用程序执行与用户进行交互的活动。
其接收用户信息,并向“服务器端”发送请求。
服务器系统负责管理数据信息和各种操作数据的活动。
Oracle数据库有如下几个强大的特性:
支持多用户、大事务量的事务处理;数据安全性和完整性的有效控制;支持分布式数据处理;可移植性很强。
Oracle数据库的优点:
(1)Oracle的稳定性要比Sqlserver好。
(2)Oracle在导数据工具sqlload.exe功能比Sqlserver的Bcp功能强大,Oracle可以按照条件把文本文件数据导入。
(3)Oracle的安全机制比Sqlserver好。
(4)在处理大数据方面Oracle会更稳定一些。
(5)处理速度方面比Sqlserver快一些,和两者的协议有关。
3需求分析与总体设计
3.1系统需求分析
作为高校毕业生的一个毕业设计信息管理系统,它就面对着许多用户的操作,而这些用户对系统的操作应该有所不同,所以我们在设计时必须要对不同的用户设立不同的权限。
在本系统中,我们考虑了3种权限(管理员,指导教师,学生)。
管理员可以对教师、学生、毕业设计课题进行操作,而教师和学生只能对毕业设计课题进行部分操作。
同时,我们为了使本系统更加符合我们的实际要求,教师可以在线查询班级的课程表,根据不同专业所学课程的内容在线出题,但是所出的题目必须经过管理员的审核后学生才能进行选择。
在学生的选题模块中,学生可以先进行本班毕业设计所有课题的查询,然后在根据自己的实际情况,选择自己要选的毕业设计课题。
同时还可以进行选题情况查询,以进一步确定。
3.2可行性分析
(1)经济可行性
系统所要求的硬件(计算机及相关硬件)和软件环境(JSP+Oracle),市场上都容易买到或从相关网站下载,系统成本主要集中在开发与维护上,不会造成过重的经济负担。
而一旦此系统投入使用,不仅可以减少教学管理者的工作强度,提高工作效率,而且极大限度的方便了用户,可以节省大量的人力、财力。
(2)技术可行性
技术上的可行性分析主要是分析技术条件能否顺利完成开发工作,硬、软件能否满足开发者的需要等。
在软件方面,本系统采用JSP技术进行开发,前台网页设计使用的是Dreamweaver,而数据库系统采用的是Oracle9i。
通过在软、硬件方面的分析,现有工具与环境可以实现系统的开发,因此具有技术上的可行性。
(3)管理可行性
主要是管理人员是否支持,现有的管理制度和方法是否科学,规章是否齐全,原始数据是否正确等。
系统的开发主要就是为了方便毕业设计信息的管理,补充现在传统管理方式的不足,因此具备了管理上的可行性。
综上所述,系统开发目标已明确,在技术和经济等方面具备可行性,投入少,见效快,因此系统的开发是完全可行的。
3.3系统设计思想
本系统存在3种用户:
学生、教师、管理员。
学生和教师用给定的帐号、密码登录系统进行操作。
登录判定上首次基于数据库验证,然后把用户信息写入session,然后其他页面采用session验证。
系统结构上采用页面镶嵌程序和语句,工作原理如图3-1所示:
图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
varchar
12
用户名
主键、非空
idpwd
varchar
12
用户密码
非空
role
varchar
8
用户角色
非空
表3-2教师信息表(teacher)
字段名
类型
长度
中文描述
备注
teacher_id
varchar
12
教职工号
主键、非空
teacher_name
varchar
8
教师姓名
非空
表3-3学生信息表(student)
字段名
类型
长度
中文描述
备注
student_id
varchar
12
学号
主键、非空
student_name
varchar
8
姓名
非空
class_no
varchar
10
班级
非空
class_name
varchar
30
专业名称
非空
表3-4课题表(subject)
字段名
类型
长度
中文描述
备注
subject_id
varchar
5
课题编号
主键、非空
subject_name
varchar
100
课题名称
非空
subject_request
varchar
250
课题要求
非空
subject_num
varchar
8
人数
非空
class_no
varchar
10
班级
非空
teacher_name
varchar
8
出题人
非空
表3-5学生选题表(choose_subject)
字段名
类型
长度
中文描述
备注
subject_id
varchar
5
课题编号
主键、非空
subject_name
varchar
100
课题名称
非空
subject_request
varchar
250
课题要求
非空
teacher_name
varchar
8
出题人
非空
student_name
varchar
8
学生姓名
非空
student_id
varchar
12
学号
非空
3.5系统功能设计
本系统分为学生操作界面、教师操作界面和管理员操作界面,下面主要对教师操作界面进行叙述:
教师界面能完成如下操作:
(1)班级课程表和班级名单:
通过该功能模块,教师可以根据班级所学的课程给出符合实际要求的毕业设计课题。
(2)题目管理:
通过该功能模块,教师可以在线出题,可以查询自己所出课题,同时也可以对已出课题进行修改。
(3)查看已选该课题名单:
通过该功能模块,教师可以查看所选课题的学生信息,及时和同学沟通交流。
(4)安全管理:
通过该功能模块,教师可以及时修改自己的密码,保证安全性。
(5)退出系统:
通过该功能模块,当教师完成出题后,可以安全退出本系统。
3.6系统功能图
毕业设计信息管理系统的功能主要包括三部分:
管理员、教师题库信息管理、学生在线选题信息管理。
其毕业设计信息管理系统功能设计结构图结构如图3-2:
图3-2系统功能图
3.7系统功能流程图
系统功能流程如图3-3:
图3-3系统功能流程图
4部分详细设计和实现
4.1系统页面主题设计
系统登录页面如图4-1:
教师登录系统,例如用户名:
1000002,密码:
1000002
图4-1系统登录界面
4.2数据库操作类
用户在登录的时候,需要访问Oracle数据库中的信息,提高了程序的安全行和可靠性,经信息验证成功后才可以进入相应的用户操作界面。
以下是部分代码:
(1)连接Oracle数据库代码:
<%@pagelanguage="java"import="java.util.*"pageEncoding="GB2312"%>
<%@pageimport="java.sql.*"%>
<%
Connectionconn=null;
Statementstmt=null;
Statementstmt1=null;
Statementstmt2=null;
Statementstmt3=null;
try{
Class.forName("oracle.jdbc.driver.OracleDriver");
conn=DriverManager.getConnection("jdbc:
oracle:
thin:
@localhost:
1521:
hsj","scott","tiger");
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(SQLExceptione1){
out.println(e1.toString());
}
%>
(2)提交登录界面输入的信息并进行判断代码如下:
<%@pagelanguage="java"import="java.util.*"pageEncoding="GB2312"%>
<%@pageimport="java.sql.*"%>
--body{background-image:
url(tupian/2008071611575321.jpg);}-->
<%@includefile="oracle.jsp"%>
<%Stringmsg="";
Stringid=request.getParameter("username");
if(id==null){
id="";}
byteb[]=id.getBytes("ISO-8859-1");
id=newString(b);
Stringidpwd=request.getParameter("userpwd");
Stringrole=request.getParameter("userrole");
if(role==null){
role="";}
bytec[]=role.getBytes("ISO-8859-1");
role=newString(c);
ResultSetrs=null;
StringstrSql="select*fromuserswhereid='"+id+"'andidpwd='"+idpwd+"'androle='"+role+"'";
rs=stmt.executeQuery(strSql);
if(!
rs.next()){
%>
alert("您输入的用户名或密码或身份不正确,请重新输入!
!
!
");
document.write();
history.go(-1);
<%}
else{if(role.equals("管理员"))
{
session.setAttribute("result",id);
response.sendRedirect("administer.jsp");
}
if(role.equals("教师")){
session.setAttribute("result",id);
response.sendRedirect("teacher.jsp");
}
if(role.equals("学生"))
{
session.setAttribute("result",id);
response.sendRedirect("student.jsp");
}
}
rs.close();
stmt.close();
%>
4.3教师界面及其基本功能的实现
4.3.1教师登录
教师登录成功后,进入主界面,界面如图4-2:
图4-2教师主界面
教师进入主界面后,可以进行班级课程表和班级名单的查询。
在使用本系统时均需要登录后才可使用,登录时系统会让你输入用户名,用户密码,和角色的选择。
系统根据你输入的信息进行判断,如果用户名、密码和角色正确,将会进入教师主页面进行操作,如果用户名或密码或角色不正确,将会提示返回错误页面。
提示部分代码如下:
if(!
rs.next()){
%>
alert("您输入的用户名或密码或身份不正确,请重新输入!
!
!
");
document.write();
history.go(-1);
4.3.2教师在线出题
进入主页面后,点击题目管理,教师即可在线出题,界面如图4-3:
图4-3教师在线出题界面
每位教师出题的课