分类号:TP315 U D C:D10621-408-(2007) 498-0
密 级:公 开 编 号:2002211105
成都信息工程学院
学位论文
基于JSP的毕业设计选题系统的设计与实现
摘 要
随着全球信息化技术的兴起,特别是Internet的日益普及,我国各大中专院校都建立了自己的校园网。毕业生以班级为单位的原始手工报送的选题方式已经不能适应时代发展的需求, 所以基与互联网的毕业设计选题系统也就孕育而生了。
毕业设计选题系统就是能够使学生通过互联网完成毕业设计课题的选定,它采用Web方式,同时适用于局域网和Internet,它要实现审核,权限管理,邮件通知等功能,并能提供题目保存、题目查询等功能,该系统同时拥有最开放的题库管理系统和最灵活的选题系统,能够自动进行权限的判断,对用户进行冻结。
我们采用了JSP技术为主要手段,本系统采用了多级角色管理:包括系统管理员、系主任,学生和老师几种权限.本文主要介绍了用户权限的划分,并详细地论述了系统设计的思想和实现的方法步骤从而为以后的研究打下了基础。
关键词: 审核;权限;多级角色管理
The Design and Implementation of Subject Selection System for Graduation Based on JSP
Abstract
With the rising of global information technology, especially the growing prevalence of Internet, the technical institute colleges and universities in our country have set up their own Campus Net. For the traditional way of manual submission of selected subject cannot adapt to current demands, the Internet-based graduation subject selection system born.
Such system enables students to choose subject for graduation design through Internet. It adopts B/S pattern, and is suitable to both the local area network and Internet. It must implement functions such as the verification of the subject, the jurisdiction management, mail notification, as well as subject storage and searching. With the open subject management system and the flexible system, it can automatically verify the jurisdiction of a user and freeze the user. The system adopted the JSP as its main technology, and implemented the multistage role management. The system also implemented the management of the privilege of system managers, deans, students and teachers.
Key words: Verification; Jurisdiction; Multistage role management.
目 录
论文总页数:23页
1引言11
1.1选题系统出现的趋势11
1.2选题系统常用的实现技术11
2基本技术简介11
2.1本系统拟采用的解决方法(技术)22
2.2主要技术简介22
3 需求分析与方案设计33
3.1功能需求分析33
3.2数据库需求33
3.3系统支撑环境44
4系统设计44
4.1 功能设计44
4.2 数据库设计44
4.2.1 系统登陆,用户会话表(bsm_session_info)4(bsm_session_info)4(bsm_session_info)4
4.2.2 系统用户信息管理表(bsm_sys_user)55
4.2.3 毕业论文题库信息表(subject)5(subject)5(subject)5
4.2.4 毕业论文选题信息管理表(select_sub)6(select_sub)6(select_sub)6
5 系统功能实现77
5.1系统组成和业务流程图77
5.2系统用户权限管理88
5.2.1 系统登陆99
5.2.2系统用户管理1111
5.2.3 历届信息查看1313
5.2.4 个人信息维护1313
5.3系统选题权限管理1414
5.4教师题库管理1515
5.4.1教师出题1515
5.4.2教师审核题目1616
5.5学生在线选题1616
5.6系统登出1818
5.7系统基本控件使用1818
5.7.1数据库连接池实现1818
5.7.2邮件系统实现1919
6技术难点分析2020
结 论2020
参考文献2020
致 谢2121
附 录2222
Tomcat简介2222
声 明2323
1引言
1.1选题系统出现的趋势
在网络飞速发展的今天,互联网成为人们快速获取,发布和传递信息的重要渠道,在人们政治,经济,生活等各方面发挥着重要的作用。因此网站建设在Internet应用上地位显而易见,它已成为政府,企事业单位信息化建设中的重要组成部分,从而倍受人们的重视。
从20世纪90年代初期随着www的发展,Internet逐渐普及化由于www通过良好的界面大大简化了Internet操作难度使得用户数量急剧增加,许多人开始重视Internet,发现到Internet具有巨大得潜力。于是纷纷大量加入Internet。这样Internet上得站点大大增加,网络信息五花八门,十分丰富。如今Internet已经深入到人们生活得各个部分。Internet大大方便了信息的传播,给人们带来了全新得生活方式。
这次我们所设计的课题正是互联网与大学生学习生活紧密相关的,现今的社会人们已经离不开网络,传统的选题方式也面临着变革,而网络选题则是一个很重要的方向。基于Web技术的网络选题系统可以借助于遍布全球的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系统支撑环境
- 操作系统:WINDOWS 2000
- 应用服务器:TOMCAT 5.0.28
- 数据库:SQL2000
- JAVA VM:JDK 1.4.2_07
- 硬件:建议内存在512M以上
4系统设计
4.1 功能设计
在线选题系统的功能主要包括三部分:用户管理、教师题库信息管理、学生在线选题信息管理。其软件设计结构图结构如图1:
图1:系统总结构设计图
4.2 数据库设计
4.2.1 系统登陆,用户会话表(bsm_session_info)
表1:用户会话表
4.2.2 系统用户信息管理表(bsm_sys_user)
编号 | 项目名 | 字段名 | 主键/外键 | 类型 | 内容作用 | 可否为空 |
---|---|---|---|---|---|---|
1 | 用户编号 | user_no | numeric(18, 0) | not null | ||
2 | 用户会话id | session_id | varchar(32) | not null | ||
3 | 用户ip地址 | visit_address | varchar(15) | not null | ||
4 | 当前登陆时间 | login_date | varchar(25) | not null | ||
5 | 上次登陆时间 | last_update | varchar(25) | not null |
表2:系统用户信息管理表
4.2.3 毕业论文题库信息表(subject)
编号 | 项目名 | 字段名 | 主键/外键 | 类型 | 内容作用 | 可否为空 |
---|---|---|---|---|---|---|
1 | 用户编号 | user_no | numeric(18, 0) | 系统自增字段 | not null | |
2 | 用户帐号 | user_code | PK | varchar (20) | not null | |
3 | 姓名 | user_name | varchar (50) | not null | ||
4 | 密码 | passwd | varchar (32) | not null | ||
5 | 邮箱 | user_mail | varchar (100) | |||
6 | 联系方式 | user_phone | varchar (20) | |||
7 | 用户状态 | user_stat | char (1) | 1 正常用户 2 冻结用户 | not null | |
8 | 用户类型 | user_type | char (1) | 0 管理员1 系主任2 指导教师 3 学生 | not null | |
9 | 指导学生人数上限 | stu_num | Varchar(10) | 该字段主要控制指导教师 | ||
10 | 备注 | remark | varchar (500) | not null | ||
11 | 操作人员编号 | op_no | numeric(18, 0) | 控制数据操作权限 | not null | |
12 | 操作时间 | op_time | varchar(25) | not null |
表3:毕业论文题库信息表
4.2.4 毕业论文选题信息管理表(select_sub)
编号 | 项目名 | 字段名 | 主键/外键 | 类型 | 内容作用 | 可否为空 |
---|---|---|---|---|---|---|
1 | 题目编号 | sub_no | numeric(18, 0) | 系统自增字段 | not null | |
2 | 题目名称 | sub_name | varchar (100) | not null | ||
3 | 教师编号 | teacher_no | numeric(18, 0) | bsm_sys_user表中user_no | not null | |
4 | 参与学生的上限 | part_in_no | numeric(2, 0) | not null | ||
5 | 题目内容 | sub_viscera | varchar(1000) | not null | ||
6 | 主任审核标志 | postil_flag | char(1) | 0 未审核1 审核通过2 审核未通过 | null | |
7 | 主任审核意见 | postil | varchar(200) | null | ||
8 | 年 级 | year | char(4) | not null | ||
9 | 操作人员 | op_no | numeric(18, 0) | not null | ||
10 | 操作时间 | op_time | varchar(25) | not null |
表4:毕业论文选题信息表
编号 | 项目名 | 字段名 | 主键/外键 | 类型 | 内容作用 | 可否为空 |
---|---|---|---|---|---|---|
1 | 选题编号 | select_no | numeric(18, 0) | 系统自增字段 | not null | |
2 | 教师编号 | teacher_no | numeric(18, 0) | bsm_sys_user表中user_no | not null | |
3 | 题目编号 | sub_no | numeric(18, 0) | Subject表中sub_no | not null | |
4 | 学生编号 | stu_no | numeric(18, 0) | bsm_sys_user表中user_no | not null | |
5 | 教师审核标志 | postil_flag | char(1) | null | ||
6 | 指导教师审核意见 | postil | varchar(200) | 0 未审核1 审核通过2 审核未通过 | null | |
7 | 年 级 | yearl | char(4) | not null | ||
8 | 志愿标志 | wish_flag | char(1) | null | ||
9 | 选择理由 | wish | varchar (500) | 1 第一志愿2 第二志愿3 第三志愿4 其他志愿 | null | |
10 | 操作人员 | op_no | numeric(18, 0) | not null | ||
11 | 操作时间 | op_time | varchar(25) | not null |
5 系统功能实现
5.1系统组成和业务流程图
系统组成和业务流程图
(一)系统组成
本系统由四个子模块组成:系主任管理,教师出题,学生在线选题和系统的维护。它们各自功能如下叙述:
- 学生在线选题
学生通过系主任录入的学生信息,姓名,学号和密码登陆系统进行查询题目并且进行选题并且可以修改自己的登陆密码。系统分配给学生4个选题项,学生可以根据自己的实际情况做出几个选择,当第一志愿未被审核,其他的就不能审核,第一志愿审核未通过自动指向第二志愿,依次类推,如果全部都没有通过学生将重新选择过程同上。学生还可以查看历届的毕业设计题目以做参考。 - 教师出题
此部分主要由教师使用,教师信息由系主任录入,教师必须通过系住任给其分配的帐号,密码登陆次系统。当教师进入次系统后便由教师负责出题,并且对学生选题进行审核,并且可以查看历届题目作为参考。 - 系主任管理
系主任由此批量录入学生以及教师信息并负责进行对教师所出的题目进行审核,只有审核通过的题目学生才可以进行选题,同时系主任还拥有对教师和学生帐号进行冻结的权限。 - 管理员
系统管理员主要负责进行对系主任的资料录入并可以冻结。
(二)业务流程图:
图2:业务流程图
5.2系统用户权限管理
本系统分为4个模块,系主任管理,教师出题,学生在线选题和管理员模块。
系统用户管理的基本处理流程是:
1 管理员权限在建立数据库时初始化数据库脚本创建,管理员登陆后可以对自身的信息进行维护,同时还可以为不同系的系主任分配帐号,以及对系主任信息进行维护。
2 各系主任登陆系统后可以对自身的信息进行维护,以及为本系的教师和学生创建系统用户,各系只能查看本系的相关信息。
系统用户管理结构如图3:
图3:用户管理表
由上图分析,本系统共有四种角色,所以系统在实现过程中根据用户角色判断其所拥有的权限,(根据SQL判断)。
- 系统管理(bsm_sys_user.user_type = 0)
- 系主任(bsm_sys_user.user_type = 1)
- 指导教师(bsm_sys_user.user_type = 2)
- 学生(bsm_sys_user.user_type = 3)
5.2.1 系统登陆
为了保证用户信息的一致性、用户操作的方便性以及方便系统的安全模块升级和维护,该系统采用单点登陆的模式。
系统主页:http://10.0.0.11:8080(服务器在10.0.0.11上)如图4:
图4:系统主页
页面功能:
1通知信息
点击页面下方的“关于网上报毕业设计题目的通知”可以查看网上毕业论文选题信息的相关信息。
2系统用户登陆
- .正确的选择用户类型、输入用户名和密码就可以进入系统用户管理信息界面。
- .当输入系统不存在的帐号进行登陆时,系统将提示拒绝登陆并提示用户登陆帐号不存在。
- .如果用户为学生类别,当他选择用户类型为非学生类型的其他类型时系统拒绝其登陆并显示登陆帐号和用户类型不匹配。
- .当用户选择的类型正确,帐号也正确但密码错误系统将提示用户使用帐号密码错误,请核对信息后重新登陆。
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系统用户管理
- .系统用户信息管理
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简介
Tomcat是一个免费的开源的Servlet容器。与传统的桌面应用程序不同,Tomcat中的应用程序是一个WAR(Web Archive)文件。WAR是Sun提出的一种Web应用程序格式,与JAR类似,也是许多文件的一个压缩包。这个包中的文件按一定目录结构来组织:通常其根目录下包含有Html和Jsp文件或者包含这两种文件的目录,另外还会有一个WEB-INF目录,这个目录很重要。通常在WEB-INF目录下有一个web.xml文件和一个classes目录,web.xml是这个应用的配置文件,而classes目录下则包含编译好的Servlet类和Jsp或Servlet所依赖的其它类(如JavaBean)。通常这些所依赖的类也可以打包成JAR放到WEB-INF下的lib目录下,当然也可以放到系统的CLASSPATH中,但那样移植和管理起来不方便。
Tomcat不仅仅是一个Servlet容器,它也具有传统的Web服务器的功能:处理Html页面。但是与Apache相比,它的处理静态Html的能力就不如Apache。我们可以将Tomcat和Apache集成到一块,让Apache处理静态Html,而Tomcat处理Jsp和Servlet。这种集成只需要修改一下Apache和Tomcat的配置文件即可。
基于Tomcat的开发其实主要是Jsp和Servlet的开发,开发Jsp和Servlet非常简单,可以用普通的文本编辑器或者IDE,然后将其打包成WAR即可。
声 明
本论文的工作是 2007年2月至2007年6月在成都信息工程学院网络工程系完成的。文中除了特别加以标注地方外,不包含他人已经发表或撰写过的研究成果,也不包含为获得成都信息工程学院或其他教学机构的学位或证书而使用过的材料。除非另有说明,本文的工作是原始性工作。
关于学位论文使用权和研究成果知识产权的说明:
本人完全了解成都信息工程学院有关保管使用学位论文的规定,其中包括:
(1)学校有权保管并向有关部门递交学位论文的原件与复印件。
(2)学校可以采用影印、缩印或其他复制方式保存学位论文。
(3)学校可以学术交流为目的复制、赠送和交换学位论文。
(4)学校可允许学位论文被查阅或借阅。
(5)学校可以公布学位论文的全部或部分内容(保密学位论文在解密后遵守此规定)。
除非另有科研合同和其他法律文书的制约,本论文的科研成果属于成都信息工程学院。
特此声明!
作者签名:
年 月 日