【计算机毕业设计】基于JSP的毕业设计选题系统的设计与实现

news2024/11/17 1:51:23

分类号: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系统支撑环境

  1. 操作系统:WINDOWS 2000
  2. 应用服务器:TOMCAT 5.0.28
  3. 数据库:SQL2000
  4. JAVA VM:JDK 1.4.2_07
  5. 硬件:建议内存在512M以上

4系统设计

4.1 功能设计

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

图1:系统总结构设计图

4.2 数据库设计

4.2.1 系统登陆,用户会话表(bsm_session_info)

表1:用户会话表

4.2.2 系统用户信息管理表(bsm_sys_user)

编号项目名字段名主键/外键类型内容作用可否为空
1用户编号user_nonumeric(18, 0)not null
2用户会话idsession_idvarchar(32)not null
3用户ip地址visit_addressvarchar(15)not null
4当前登陆时间login_datevarchar(25)not null
5上次登陆时间last_updatevarchar(25)not null

表2:系统用户信息管理表

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

编号项目名字段名主键/外键类型内容作用可否为空
1用户编号user_nonumeric(18, 0)系统自增字段not null
2用户帐号user_codePKvarchar (20)not null
3姓名user_namevarchar (50)not null
4密码passwdvarchar (32)not null
5邮箱user_mailvarchar (100)
6联系方式user_phonevarchar (20)
7用户状态user_statchar (1)1 正常用户 2 冻结用户not null
8用户类型user_typechar (1)0 管理员1 系主任2 指导教师 3 学生not null
9指导学生人数上限stu_numVarchar(10)该字段主要控制指导教师
10备注remarkvarchar (500)not null
11操作人员编号op_nonumeric(18, 0)控制数据操作权限not null
12操作时间op_timevarchar(25)not null

表3:毕业论文题库信息表

4.2.4 毕业论文选题信息管理表(select_sub)

编号项目名字段名主键/外键类型内容作用可否为空
1题目编号sub_nonumeric(18, 0)系统自增字段not null
2题目名称sub_namevarchar (100)not null
3教师编号teacher_nonumeric(18, 0)bsm_sys_user表中user_nonot null
4参与学生的上限part_in_nonumeric(2, 0)not null
5题目内容sub_visceravarchar(1000)not null
6主任审核标志postil_flagchar(1)0 未审核1 审核通过2 审核未通过null
7主任审核意见postilvarchar(200)null
8年 级yearchar(4)not null
9操作人员op_nonumeric(18, 0)not null
10操作时间op_timevarchar(25)not null

表4:毕业论文选题信息表

编号项目名字段名主键/外键类型内容作用可否为空
1选题编号select_nonumeric(18, 0)系统自增字段not null
2教师编号teacher_nonumeric(18, 0)bsm_sys_user表中user_nonot null
3题目编号sub_nonumeric(18, 0)Subject表中sub_nonot null
4学生编号stu_nonumeric(18, 0)bsm_sys_user表中user_nonot null
5教师审核标志postil_flagchar(1)null
6指导教师审核意见postilvarchar(200)0 未审核1 审核通过2 审核未通过null
7年 级yearlchar(4)not null
8志愿标志wish_flagchar(1)null
9选择理由wishvarchar (500)1 第一志愿2 第二志愿3 第三志愿4 其他志愿null
10操作人员op_nonumeric(18, 0)not null
11操作时间op_timevarchar(25)not null

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系统用户登陆

  1. .正确的选择用户类型、输入用户名和密码就可以进入系统用户管理信息界面。
  2. .当输入系统不存在的帐号进行登陆时,系统将提示拒绝登陆并提示用户登陆帐号不存在。
  3. .如果用户为学生类别,当他选择用户类型为非学生类型的其他类型时系统拒绝其登陆并显示登陆帐号和用户类型不匹配。
  4. .当用户选择的类型正确,帐号也正确但密码错误系统将提示用户使用帐号密码错误,请核对信息后重新登陆。

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. .系统用户信息管理

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)学校可以公布学位论文的全部或部分内容(保密学位论文在解密后遵守此规定)。

除非另有科研合同和其他法律文书的制约,本论文的科研成果属于成都信息工程学院。

特此声明!

作者签名:

年 月 日

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/61001.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

python -- PyQt5(designer)中文详细教程(四)事件和信号

事件 signals and slots也 被其他⼈翻译成信号和槽机制。 所有的应用都是事件驱动的。事件大部分都是由用户的行为产⽣的&#xff0c;当然也有其他的事件产生方式&#xff0c;比如网络的连接&#xff0c;窗口管理器或者定时器等。调⽤应⽤的exec_()⽅法时&#xff0c;应⽤会进⼊…

Python金融领域人工智能教程

Python金融领域人工智能教程 财务分析、时间序列分析、投资组合优化、CAPM、算法交易、Q-Learning 等等&#xff01; 课程英文名&#xff1a;Financial Engineering and Artificial Intelligence in Python 此视频教程共6.0小时&#xff0c;中英双语字幕&#xff0c;画质清晰…

[附源码]Python计算机毕业设计Django网咖管理系统

项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等等。 环境需要 1.运行环境&#xff1a;最好是python3.7.7&#xff0c;…

ElementUI中Tree组件使用

首先官网上的树形控件教程地址为Element - The worlds most popular Vue UI framework 案例一&#xff1a; 要实现这种类型的树控件&#xff0c;并且后边相关操作&#xff1a; 1.1后端准备工作 首先&#xff0c;数据库表为&#xff1a; 查询接口返回的实体类为&#xff1a; …

给出32位有符号整数,将这个整数翻转

例1 收入123 输出321 例2 输入-123 输出-321 例3 输入120 输出21 答案 思路&#xff0c; 1、先考虑末尾是0的情况时&#xff0c;翻转后需要把0去掉&#xff0c; 2、当有-号时&#xff0c;把翻转后末尾的-号去掉&#xff0c;再在前面加一个-号 3、正数时不变 a -564…

轻松掌握线性代数-万字长文基础知识概览

轻松掌握线性代数-万字长文基础知识概览1 集合相关知识1.1 映射与像1.2 映射与像1.3 线性映射2 矩阵2.1 特殊矩阵2.1.1 零矩阵2.1.2 转置矩阵2.1.3 对称矩阵2.1.4 上三角矩阵2.1.5 下三角矩阵2.1.6 对角矩阵2.1.7 单位矩阵2.1.8 逆矩阵2.2 行列式2.2.1 根据行列式判断是否可逆2…

Java内存模型基础(JMM)

前言 在并发编程中&#xff0c;一般需要处理两个关键问题&#xff1a;线程通信、线程同步&#xff0c;然而线程通信一般的方式有&#xff1a;共享内存、消息传递。 对于共享内存的通信方式&#xff0c;线程同步是显示进行的&#xff0c;程序员必须指定某个方法或者某个代码段需…

并发基本原理(四):AQS源码解析1-ReentrantLock的lock实现原理

简介 AQS&#xff08;AbstractQueuedSynchronizer&#xff09;是JUC包中的核心抽象类&#xff0c;许多并发工具的实现&#xff0c;包括ReentrantLock、ReentrantReadWriteLock、CountDownLatch、Semaphore 等都是基于此实现。 AQS&#xff0c;主要提供了表示同步状态的 state…

Kafka - 主题Topic与消费者消息Offset日志记录机制

Kafka Topic 可以根据业务类型&#xff0c;分发到不同的Topic中&#xff0c;对于每一个Topic&#xff0c;下面可以有多个分区(Partition)日志文件: kafka 下的Topic的多个分区&#xff0c;每一个分区实质上就是一个队列&#xff0c;将接收到的消息暂时存储到队列中&#xff0…

CTFHub | 过滤空格

0x00 前言 CTFHub 专注网络安全、信息安全、白帽子技术的在线学习&#xff0c;实训平台。提供优质的赛事及学习服务&#xff0c;拥有完善的题目环境及配套 writeup &#xff0c;降低 CTF 学习入门门槛&#xff0c;快速帮助选手成长&#xff0c;跟随主流比赛潮流。 0x01 题目描述…

[附源码]Python计算机毕业设计SSM京东仓库管理系统(程序+LW)

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

[附源码]计算机毕业设计项目管理系统的专家评审模块Springboot程序

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

项目管理逻辑:项目如何算是做完?什么是项目管理中的PPP模式?

目录 1.企业中的两件事 2.ppp模式---项目和运营的交织案例 1.企业中的两件事 一个是项目;一个是运营.项目是阶段性一次性的工作; 运营是持续性重复性的工作:职能部门,财务部, 采购部,人力部门,每个月都要报税, 每个月都要招聘, 每个月都要报销, 每天都要记账,. 注意,不确定性…

JMeter入门教程(14)——场景设计

1.JMeter中场景设计是通过线程组来实现的 如图&#xff1a; 控制面板中各元素介绍&#xff1a; 名称&#xff1a;可以随意设置&#xff0c;最好有业务意义。 注释&#xff1a;可以随意设置&#xff0c;可以为空。 在取样器错误后要执行的动作&#xff1a;其中的某一个请求出错后…

MySQL更新一条已经存在的sql语句是怎么执行的

MySQL更新一条已经存在的sql语句是怎么执行的1. 问题描述2. 分析验证1. 问题描述 今天看到一个有意思的问题&#xff0c;就是Mysql更新一条已经存在的语句是怎么执行的&#xff0c;结果显示&#xff0c;匹配(rows matched)了一行&#xff0c;修改(Changed)了0行。&#xff0c;…

sql集锦

sql集锦查询本月数据新的改变功能快捷键合理的创建标题&#xff0c;有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的Ka…

《MongoDB》Mongo Shell中的基本操作-更新操作一览

前端博主&#xff0c;热衷各种前端向的骚操作&#xff0c;经常想到哪就写到哪&#xff0c;如果有感兴趣的技术和前端效果可以留言&#xff5e;博主看到后会去代替大家踩坑的&#xff5e; 主页: oliver尹的主页 格言: 跌倒了爬起来就好&#xff5e; 来个关注吧&#xff0c;点个赞…

“剧情+综艺” 助推国潮文化破圈

一舞千年&#xff0c;重现大唐辉煌&#xff1b;一曲流光&#xff0c;雕琢岁月模样&#xff1b;一纸云烟&#xff0c;漫卷诗书山河&#xff1b;跨历史长河&#xff0c;览盛世华章。自从河南卫视开启“剧情综艺”的晚会形式&#xff0c;晚会便多了一种呈现方式。 从2021年《唐宫夜…

本周XR新闻:吴德周成立AR硬件公司,SideQuest支持PICO、Magic Leap

本周AR/VR大新闻&#xff0c;AR方面&#xff1a;吴德周成立AR硬件公司“致敬未知科技”&#xff1b;彭博称苹果AR操作系统或命名“xrOS”&#xff1b;AR眼镜开源方案OpenAR亮相&#xff1b;Epic 3D扫描工具RealityScan上线&#xff1b;Qoncept推出基于AI的实时姿态追踪系统。 …

Docker_实用篇_Docker-Compose_微服务部署

Docker_实用篇_Docker-Compose_微服务部署 文章目录Docker_实用篇_Docker-Compose_微服务部署4.1Docker-Compose4.2.初识DockerCompose4.3.部署微服务集群4.3.1.打包前文件汇总4.3.2.修改微服务配置4.3.3.打包4.3.4.拷贝jar包到部署目录4.3.5.部署4.1Docker-Compose Docker Co…