java毕业设计——基于JSP+sqlserver的毕业设计选题系统设计与实现(毕业论文+程序源码)——毕业设计选题系统

该系统采用JSP技术,结合sqlserver数据库,实现多级角色管理,包括系统管理员、系主任、教师和学生权限。学生通过系统在线选题,教师出题并审核,系主任负责题目审批。系统具备题目保存、查询、审核和邮件通知等功能。
摘要由CSDN通过智能技术生成

基于JSP+sqlserver的毕业设计选题系统设计与实现(毕业论文+程序源码)

大家好,今天给大家介绍基于JSP+sqlserver的毕业设计选题系统设计与实现,文章末尾附有本毕业设计的论文和源码下载地址哦。需要下载开题报告PPT模板及论文答辩PPT模板等的小伙伴,可以进入我的博客主页查看左侧最下面栏目中的自助下载方法哦

文章目录:

1、项目简介

  1. 随着全球信息化技术的兴起,特别是Internet的日益普及,我国各大中专院校都建立了自己的校园网。毕业生以班级为单位的原始手工报送的选题方式已经不能适应时代发展的需求, 所以基与互联网的毕业设计选题系统也就孕育而生了。

  2. 毕业设计选题系统就是能够使学生通过互联网完成毕业设计课题的选定,它采用Web方式,同时适用于局域网和Internet,它要实现审核,权限管理,邮件通知等功能,并能提供题目保存、题目查询等功能,该系统同时拥有最开放的题库管理系统和最灵活的选题系统,能够自动进行权限的判断,对用户进行冻结。

  3. 我们采用了JSP技术为主要手段,本系统采用了多级角色管理:包括系统管理员、系主任,学生和老师几种权限.本文主要介绍了用户权限的划分,并详细地论述了系统设计的思想和实现的方法步骤从而为以后的研究打下了基础。


2、资源详情

项目难度:中等难度
适用场景:相关题目的毕业设计
配套论文字数:9032个字26页
包含内容:全套源码+配整论文


3、关键词

审核 ; 权限; 多级角色管理

4、毕设简介

提示:以下为毕业论文的简略介绍,项目完整源码及完整毕业论文下载地址见文末。

引言
1.1选题系统出现的趋势
在网络飞速发展的今天,互联网成为人们快速获取,发布和传递信息的重要渠道,在人们政治,经济,生活等各方面发挥着重要的作用。因此网站建设在Internet应用上地位显而易见,它已成为政府,企事业单位信息化建设中的重要组成部分,从而倍受人们的重视。
省略

1.2选题系统常用的实现技术
网络选题系统的实现技术有多种,可以采用传统的客户机/服务器(C/S)型的MIS型架构,即论文题目内容放在远程的服务器上,在选题机上安装考试应用程序和数据库客户机配置,因此每次选题时要对机器进行安装、配置,这样一来选题工作比较烦琐;而且选题程序放在客户机上,安全性也受到一定影响。另外一种考试系统采用Web 技术实现。Web技术超越了传统的“客户机/服务器”两层结构,采用了三层体系结构:用户界面层/事务层/数据库层。因此Web结构有着更好的安全性。在用户机上不需要安装任何应用程序,应用程序可以安装在作为服务器的计算机上,题目存放在数据库服务器上(事务层和数据库可以是同一台机器)。

2基本技术简介
本系统全称为毕业设计选题系统,开发的目的是为学生提供通过学校的网络进行毕业设计题目的选择。
2.1本系统拟采用的解决方法(技术)
本系统要求实现网络选题系统的各项基本功能,从安全性和易维护性考虑,选择了Web实现技术。简单的说就是将系统做成一种B/S模式,可以让用户通过浏览器直接访问位于服务器上的试题以及对系统进行远程维护。

服务器端程序的实现技术也很多,本人选用了当前比较流行的网络编程技术——JSP作为主要实现手段(配合Java Servlet,HTML等)。JSP作为一种Web实现技术,它的效率是很高的。这一点正好符合了选题系统所要求的实时性。JSP自身的安全性,再加上实现模式的特点,完全能够达到选题的要求。除此之外,作为Java平台的一部分,JSP拥有Java语言“一次编写,各处运行”的特点。又随着越来越多的服务器供应商将JSP支持添加到他们的产品中,这样一来用JSP做成的这套系统可以轻松移植到其它平台来运行。种种优点使得这套系统不但为目前校内的网络教学以至于今后远程教育的实现都打下了良好的基础。所以JSP是实现本系统的最佳技术,它是完全可行的。

2.2主要技术简介
JSP是Java Server Pages的简称,它是由Sun Microsystem公司于1999年6月推出,是基于Java Servlet以及整个Java体系的Web开发技术。作为J2EE体系中的重要一环,JSP为创建高度动态的Web应用提供了一个独特的开发环境。JSP能够适应市场上包括Apache WebServer、IIS4.0在内的85%的服务器产品,这足以胜任绝大多数的商业事务处理。同时JSP代码经过服务器的解释执行后会直接嵌入到HTML语言中,这样就简化了页面的输出,也保留了脚本语言易于使用的优点。SUN公司开发出这个规范来整合和平衡已经存在的规范,对JAVA编程环境进行支持的技术和工具。其结果是产生了一种新的,开发基于WEB应用程序的方法,给予使用基于组件应用逻辑的页面设计者以强大的功能支持。JSP设计目标是为了使动态页面编写更容易,更简单。JSP特点主要有以下几点:到处可执行,JSP技术完全与平台无关的设计,包含它的动态网页和底层Server元件设计,加强元件功能,更容易建立动态网页。

JDBC是Java Data Base Connectivity的简称,也就是java数据库连接。它是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序。将Java语言和JDBC结合起来使程序员只须写一遍程序就可以让它在任何平台上运行,这也是Java语言“编写一次,各处运行“的特点。同时JDBC 扩展了 Java 的功能。例如,用 Java 和 JDBC API 可以发布含有 applet 的网页,而该 applet 使用的信息可能来自远程数据库企业也可以用 JDBC 通过 Intranet 将所有职员连到一个或多个内部数据库中。

3 需求分析与方案设计
3.1功能需求分析
作为高校毕业生的一个毕业设计选题系统,它就面对着许多用户的操作,而这些用户对系统的操作应该有所不同,所以我们在设计时必须要对不同的用户设立不同的的权限。在本系统中,我考虑了4种权限(管理员,系主任,指导教师,学生)。管理员可以添加的用户系主任,而系主任能添加的用户为指导教师和学生。
同时,我们为了使本系统更加的符合我们的实际,教师能在线出题,但是所出的题目必须经过系主任的审核后学生才能进行选择。在学生的选题中,在实现选题的基础上,也要考虑学生选择志愿的顺序,所以在学生的选择过程中,要设立多个志愿,但是在教师的审核过程中,我们必须根据学生的志愿依次进行审核。也就是说在学生的第一志愿未被审核的时候,第二志愿的老师不能对该生的第二志愿进行审核。

3.2数据库需求
在信息世界中,信息从客观事物出发流经数据库,通过决策机构最后又回到客观世界,信息的这一循环经历了三个领域:信息世界,数据世界,现实世界。现实世界的事物反映到人的头脑中,人的大脑对它有个认识过程,经过分析(选择、命名、分类等)进入信息世界。这些信息再进一步加工、编码,然后进入数据世界,而软件系统的开发工作需要考虑这两个方面的问题,也就是要考虑系统开发所需要的数据,以及如何对这些数据进行操作。这两个问题贯穿了整个软件系统的开发过程,这也就是数据库的设计问题,软件设计的一个核心。

作为一个具有一定应用价值的教学管理系统,从本质上说其操作的对象为数据库中存储的具体记录。因此,不仅要求所使用的数据库系统具有比较高的稳定性、安全性及高负载下保持足够相应的能力,还要求设计者清楚需求,做出科学的数据库逻辑结构设计,以提高数据库的利用效率和减少数据冗余。用户的需求具体体现在各种信息的提供、保存、更新和查询,这就要求数据库结构能充分满足各种信息的输入和输出。收集基本数据、数据结构及数据处理的流程,组成一份详尽的数据字典,为后面的具体设计打下基础。

数据库的概念结构设计完毕以后,现在可以将上面的数据库概念结构转化为某种数据库系统所支持的实际数据模型,也就是数据库的逻辑结构。数据库系统的选用需要根据系统的需求而定。

该系统主要涉及到几种信息的存储,首先是毕业班学生的信息,论文的题目信息,学校指导教师和系主任的信息,所以每个信息保存在一张表中,在对表的操作中可以对任意一个表独立操作,也可以对几个表关联操作。

3.3系统支撑环境
1)操作系统:WINDOWS
2)应用服务器:TOMCAT
3)数据库:SQL
4)JAVA VM:JDK
5)硬件:建议内存在512M以上

4系统设计
4.1 功能设计
在线选题系统的功能主要包括三部分:用户管理、教师题库信息管理、学生在线选题信息管理。其软件设计结构图结构如图1:

在这里插入图片描述

图1:系统总结构设计图
4.2 数据库设计
4.2.1 系统登陆,用户会话表(bsm_session_info)

表1:用户会话表
在这里插入图片描述

4.2.2 系统用户信息管理表(bsm_sys_user)
表2:系统用户信息管理表
在这里插入图片描述

4.2.3 毕业论文题库信息表(subject)

表3:毕业论文题库信息表
在这里插入图片描述

4.2.4 毕业论文选题信息管理表(select_sub)
表4:毕业论文选题信息表
在这里插入图片描述

5 系统功能实现
5.1系统组成和业务流程图
系统组成和业务流程图
(一)系统组成
本系统由四个子模块组成:系主任管理,教师出题,学生在线选题和系统的维护。它们各自功能如下叙述:
(1)学生在线选题
学生通过系主任录入的学生信息,姓名,学号和密码登陆系统进行查询题目并且进行选题并且可以修改自己的登陆密码。系统分配给学生4个选题项,学生可以根据自己的实际情况做出几个选择,当第一志愿未被审核,其他的就不能审核,第一志愿审核未通过自动指向第二志愿,依次类推,如果全部都没有通过学生将重新选择过程同上。学生还可以查看历届的毕业设计题目以做参考。
(2)教师出题
此部分主要由教师使用,教师信息由系主任录入,教师必须通过系住任给其分配的帐号,密码登陆次系统。当教师进入次系统后便由教师负责出题,并且对学生选题进行审核,并且可以查看历届题目作为参考。
(3)系主任管理
系主任由此批量录入学生以及教师信息并负责进行对教师所出的题目进行审核,只有审核通过的题目学生才可以进行选题,同时系主任还拥有对教师和学生帐号进行冻结的权限。
(4)管理员
系统管理员主要负责进行对系主任的资料录入并可以冻结。

(二)业务流程图:
在这里插入图片描述

图2:业务流程图

5.2系统用户权限管理
本系统分为4个模块,系主任管理,教师出题,学生在线选题和管理员模块。
系统用户管理的基本处理流程是:
1 管理员权限在建立数据库时初始化数据库脚本创建,管理员登陆后可以对自身的信息进行维护,同时还可以为不同系的系主任分配帐号,以及对系主任信息进行维护。
2 各系主任登陆系统后可以对自身的信息进行维护,以及为本系的教师和学生创建系统用户,各系只能查看本系的相关信息。
系统用户管理结构如图3:
在这里插入图片描述

图3:用户管理表
由上图分析,本系统共有四种角色,所以系统在实现过程中根据用户角色判断其所拥有的权限,(根据SQL判断)。
1)系统管理(bsm_sys_user.user_type = 0)
2)系主任(bsm_sys_user.user_type = 1)
3)指导教师(bsm_sys_user.user_type = 2)
4)学生(bsm_sys_user.user_type = 3)

5.2.1 系统登陆
为了保证用户信息的一致性、用户操作的方便性以及方便系统的安全模块升级和维护,该系统采用单点登陆的模式。
系统主页:http://10.0.0.11:8080(服务器在10.0.0.11上)如图4:
在这里插入图片描述

图4:系统主页
页面功能:
1通知信息
点击页面下方的“关于网上报毕业设计题目的通知”可以查看网上毕业论文选题信息的相关信息。
2系统用户登陆
a).正确的选择用户类型、输入用户名和密码就可以进入系统用户管理信息界面。
b).当输入系统不存在的帐号进行登陆时,系统将提示拒绝登陆并提示用户登陆帐号不存在。
c).如果用户为学生类别,当他选择用户类型为非学生类型的其他类型时系统拒绝其登陆并显示登陆帐号和用户类型不匹配。
d).当用户选择的类型正确,帐号也正确但密码错误系统将提示用户使用帐号密码错误,请核对信息后重新登陆。

1注册会话信息

HttpSession currentSession = request.getSession(false);
currentSession = request.getSession(true);
currentSession.setAttribute("userNo",userNo);//保存用户编号
currentSession.setAttribute("userName",userName);//保存用户姓名
currentSession.setAttribute("userCode",userCode);//保存用户帐号
currentSession.setAttribute("userType",userType);//保存用户类型
currentSession.setMaxInactiveInterval(-1);//设定页面会话永不失效,直到关闭
String sessionId = currentSession.getId();
currentSession.setAttribute("session_id",sessionId);
String remoteIp = request.getRemoteAddr();
currentSession.setAttribute("login_ip",remoteIp);
//增加用户会话
LoginHome.addUserSession(userNo,sessionId,remoteIp);
同时将信息增加到用户会话信息表bsm_session_info中

5.2.2系统用户管理
a).系统用户信息管理
1.权限控制(如图5)
只有系统管理员和系主任具有对用户信息的操作权限,其他人员没有操作权限,代码在jsp中实现:

if(!(userType.equals("0")||userType.equals("1")))
{
throw new DataException("对不起没有查看权限!");
}
系统管理员和系主任同时公用同一组界面,但在界面上对操作权限也进行了控制。实现代码:
<%
if(userType.equals("1"))
{
%>
<input type="button" name="add2" value="导入" onClick="window.location.href='op_user_import.jsp'">
<%
}
%>

在这里插入图片描述

图5:系统用户管理界面

2.页面功能
查询——选择不同条件进行组合查询,就可以查询出相关的用户信息。
增加——点击“增加”按钮进入“增加用户”信息界面,见图6:
在这里插入图片描述

图6:增加用户界面
增加用户操作只有两种权限拥有,一个为系统管理员,一个为系主任。管理员负责添加系主任的信息而系主任负责添加指导教师和学生的信息,当系主任添加用户时会多出一个指导学生人数选项,它是限定老师所带的学生的人数。添加成功后信息通过电子邮件的形式发送给用户,并且由系统随机生成密码。实现代码:

if(myForm.user_type.value =="2")
	{
		stu_num_id.innerHTML="<inputname=\"stu_num\" type=\"text\" desType=\"NUMBER\" value=\"\" maxlength=\"2\" isNeed=\"1\" des=\"指导学生人数\" size=\"10\">人";
	}
    if(myForm.user_type.value =="3")
	{
		stu_num_id.innerHTML="<inputname=\"stu_num\" type=\"text\" value=\"\" maxlength=\"2\" isNeed=\"\" des=\"指导学生人数\" size=\"10\"  readonly>人";
	}

修改——管理员和系主任还拥有修改用户信息的功能,但系主任与管理员相比增加了修改老师能够指导的学生的人数的选项。
邮件——可以单独给某一用户发送邮件。
冻结——当系统用户的帐号到期,管理员和系主任就要对用户信息冻结。当用户进入系统时系统将提示该帐号被冻结。我们设计这系统是考虑的是冻结用户帐号而不是删除它冻结后系统将避免不必要的信息丢失。
导入——当系主任输入教师学生信息时由于输入信息量太多一个一个的输入不太现实在这里我们添加了文件导入的功能。如图7:
在这里插入图片描述

图7:导入用户信息界面
5.2.3 历届信息查看
历届信息查看功能是对历年作过的毕业设计做的统计进行备份记载,它是为了方便教师和学生查询以做出题和选题参考,还为系主任对题目的审核提供参考。
5.2.4 个人信息维护
当用户进入系统后可以通过点击“个人信息维护”对自己的个人信息进行修改,可以修改密码,邮箱联系方式等个人资料,见图8:
在这里插入图片描述

图8:个人信息维护
5.3系统选题权限管理
拟定——教师拟订毕业设计题目,并提交系主任审核。
审核——系主任审核题目并对题目进行评定,供学生选择。
选定——学生选择系主任审核过后的题目,学生可以根据个人爱好与实际情况选择第一,第二,第三和其他四个志愿等待老师审核。
审批——老师根据对学生选择的题目进行审核决定学生最后的毕业论文课题。
详细的设计流程图见下图9:。

在这里插入图片描述

图9:选题权限管理图
审核功能实现:系主任通过点击“审核”对教师出的题目进行审核(见图10):

在这里插入图片描述

图10:论文题目审核管理界面
进入审核页面(见图11):

在这里插入图片描述

图11:审核界面
5.4教师题库管理
教师作为系统的一个用户,进入系统后能进行题目的录入及修改,能对学生的选题进行审核,以及修改自己的个人信息等功能。
5.4.1教师出题
教师作为系统的一个用户,他可以录入论文题目的信息。录入的题目必须经过系主任的审核后学生才能进行选择。录入如图12:

在这里插入图片描述

图12:教师录入题目界面
5.4.2教师审核题目
教师审核题目是学生选择了老师的题目后,老师根据学生所选择的志愿的先后顺序来进行审核的,也就是说学生的第一志愿在未经审核或审核通过后,第二志愿的老师不能进行审核操作。如图13:
在这里插入图片描述

图13:教师审核管理界面
进入审核界面:如图14:

在这里插入图片描述

图14:教师审核界面

5.5学生在线选题
学生在本系统中,可以对毕业设计题目进行增加,修改以及查看历史信息和修改个人信息等操作。如图15:

在这里插入图片描述

图15:毕业论文选题信息管理界面
页面功能:
⑴查询:可以查看学生自己已经选择的论文题目。
⑵增加:可以增加自己的论文题目,但必须是在自己所选的题目未被老师审核的情况下。
⑶删除:可以删除未被老师审核的论文题目。
⑷修改:可以修改自己的论文题目以及志愿信息。
进入增加页面:

在这里插入图片描述

图16:毕业论文选择界面
论文选择后,等待老师的审核。
5.6系统登出
当用户进行完他的系统操作后他就要通过点击“退出系统”退出系统当他将退出系统后系统将自动注销session。
5.7系统基本控件使用
系统的数据库连接池、邮件系统和数据导入功能的实现主要是使用第三方组件进行开发,例如数据库连接池主要使用msbase.jar,mssqlserver.jar,msutil.jar,邮件系统主要使用mail.jar,activation.jar,数据导入时,使用的文件上传的组件commons-fileupload-1.0.jar。
5.7.1数据库连接池实现

//新建连接池
dataSource = new BasicDataSource();
dataSource.setDriverClassName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
dataSource.setUrl("jdbc:microsoft:sqlserver://localhost"+":"+this.dbport+";DatabaseName="+this.dbname);
dataSource.setMaxActive(200);
dataSource.setMaxIdle(150);
dataSource.setMaxWait(-1);
dataSource.setRemoveAbandoned(true);
dataSource.setRemoveAbandonedTimeout(60);
dataSource.setLogAbandoned(true);
dataSource.setUsername(this.username);
dataSource.setPassword(this.password);
/**
* 释放数据库连接
* @param conn  欲释放回连接池的连接
*/
Public void freeConnection(Connection conn, String clsName)
{
try
{
if (conn != null)
{
conn.close();
conn = null;
}
String num = (String)connOutMap.get(clsName);
if (num==null) 
num = String.valueOf(0);
else 
num = String.valueOf(Integer.parseInt(num)+1);
connOutMap.put(clsName,num);
}
catch (Exception ex)
{
ex.printStackTrace();
}
}

5.7.2邮件系统实现
核心代码:

private MimeMessage mimeMsg = null;  //MIME邮件对象
private Session session = null;      //邮件会话对象
private Multipart mp = null;   //Multipart对象,邮件内容,标题,附件等内容均添加到其中后,再生成MimeMessage对象
mimeMsg.setContent(mp);
mimeMsg.saveChanges();
System.out.println("正在发送邮件....");
Session mailSession = Session.getInstance(props,null);
mailSession.setDebug(DEBUG);
mimeMsg.saveChanges();    //存储邮件信息
Transport transport = mailSession.getTransport("smtp");  
transport.connect(smtpServer, username, password);
transport.sendMessage(mimeMsg,mimeMsg.getRecipients(Message.RecipientType.TO));
System.out.println("发送邮件成功!");
mailSession = null;
transport.close();

6技术难点分析
本系统采用MVC的架构,它可以解决完全由JSP或完全由servlet实现的应用程序中的固有的问题。也就是解决了用JSP很难将内容同内容的显示分开和很容易将Java代码同HTML混在一起的问题。这样做出来的系统易于维护。
在数据处理上选用DAO的数据处理模式,就是建立一个接口,接口中定义了此应用程序中将会用到的所有事务方法。在这个应用程序中,当需要和数据源进行交互的时候则使用这个接口,并且编写一个单独的类来实现这个接口在逻辑上对应这个特定的数据存储。把对数据库的操作全部封装在DAO里面,这样便于以后系统数据库的升级。
本系统要求实现管理员、院系领导、指导教师和学生的不同操作,所以控制好用户的权限操作是我们本系统重点中的重点。

结 论
本系统基本上实现了毕业论文选题系统的功能,本系统首先实现了动态性,所谓动态性就是动态的更新内容,如更新学生信息,管理员信息,论文信息等。要保持良好的动态性就要求与数据库有良好的连接。本系统还实现了交互性,交互性就是指教师和学生之间能进行信息交流,另外学生在使用系统时实现了学生操作系统方便操作界面美观,实现系统安全性可靠性避免他人进入系统破坏系统信息。
这次的毕业设计选题系统虽然实现了一些功能但是还是存在一些问题和缺陷,但是我还是通过亲自参加毕业设计使自己的知识得到提高,并且我充分体会到理论与实践之间的重要联系,更一步的了解了JAVA和数据库的知识。毕业设计就是我们大学四年学习的总结,让我更清楚的认识到了自己的。

参考文献
[1] 耿详义.JSP实用教程 [M].北京:清华大学出版社,2003。
[2] 张跃平.JAVA2 实用教程 [M].北京:清华大学出版社,2004。
[3] 朱洪江.Java Servlet & JSP 经典实例 [M].北京:中国电力出版社,2005。
[4] 卢银鹃.JSP网络开发技术 [M].北京:人民邮电出版社,2001。
[5] 李盛恩.数据库基础与应用 [M].北京:人民邮电出版社,2002。
[6] 李洪成.tomcat与java Web开发技术详解[M].上海: 电子工业出版社,2006。
[7] 张怀中. 常用工具软件实用教程[M].北京:中国水利水电出版社,2004。
[8] 周良中. Eclipse插件开发.北京:人民邮电出版社,2005。

致 谢
本文是在老师的热情关心和指导下完成的,他渊博的知识和严谨的治学作风使我受益匪浅,对顺利完成本课题起到了极大的作用。在此向他表示我最衷心的感谢!
在论文完成过程中,本人还得到了老师和许多同学的热心帮助,本人向他们表示深深的谢意!
最后向在百忙之中评审本文的各位专家、老师表示衷心的感谢!

附 录
Tomcat简介
省略


5、资源下载

本项目源码及完整论文如下,有需要的朋友可以点击进行下载。如果链接失效可点击下方卡片扫码自助下载。

序号毕业设计全套资源(点击下载)
本项目源码基于JSP+sqlserver的毕业设计选题系统设计与实现(源码+文档)_jsp_BS架构_毕业设计选题系统.zip
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

毕业设计方案专家

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值