1、http:/ 为您提供最优秀的计算机毕业设计论文解决方案 客服 QQ:810354974844511071465729264免费计算机毕业设计论文下载地址:Http:/ 99.9%的题目,我们都可以为您找到现成作品提供参考.您如仍不能找到所需题目,可联系我们的 QQ 客服咨询 .特别服务:本工作室免费提供毕业设计论2文日期修改服务,如果您的毕业设计论文日期不是最新的,可联系我们的客服免费修改.3摘要:随着计算机应用的普及,电子政务、电子商务的逐步推行,作为西部民族地区的高校,利用相应的管理信息系统来促进各项管理工作的科学化、规范化、信息化及高效率也势在必行。学生资助系统作为学生信息管理系统中的
2、一个主要功能模块,可以实现对贫困生信息的收集、存储、检索等,便于评定贫困生并依据相关政策给予资助,可极大的提高资助工作的效率,达到资助工作公平、公正、公开的目的。该系统作为学生信息管理系统的一个功能模块,在市场上有其相对成熟的产品,但其适应性较差,在功能分析设计欠缺对实际应用需求的思考,也可以这样认为,没有一套较为实用的学生资助信息管理系统。此系统就是为解决和弥补上述问题和不足而产生的,而且呈现出一些自身的特点,满足了资助管理工作的需要。关键词:学生,学生信息,信息管理 ,资助信息,资助管理,家庭经济情况JSP,Java,MySQL,WEB 服务器Abstract :along with th
3、e computer applications popularization, the E-government, electronic commerces gradual carrying out, takes the western multi-national area the university, uses the corresponding management information system to promote each supervisory work scientific style, the standardization, the informationizati
4、on and the high efficiency is also imperative. The student subsidizes the system to take in a student information management systems major function module, may realize evenly to lives the information sleepily the collection, the standard, the memory, the retrieval and so on, is advantageous evaluate
5、s even lives and rests on the related policy sleepily to give the subsidization, but the enormous enhancement subsidization works efficiency, achieves the subsidization work fairly, fair, the public goal. This system takes a student information management systems functional module, has it relatively
6、 mature product in the market, but its compatibility is bad, had not considered fully in the functional analysis design takes the multi-national area universitys actual situation, may also believe like this, a set has not been suitable in the multi-national area university practical application stud
7、ent subsidizes the information management system. This system is and more makes up for the solution states the question and insufficient produces, moreover presents some own characteristics, has met the subsidization supervisory work needs.Key word: the student, the student information, the informat
8、ion management, funds the information, the subsidization management, home economics situation ,JSP, Java, MySQL, WEB server4目 录第一章 前言 1.1、 系统开发的意义 (4)1.2、 背景 (4)1.3、 课题 (4)第二章 jsp 环境的配置 2.1、硬件环境的配置 (5)2.2、软件环境及开发平台的搭建和配置 (5)2.2.1、安装 jdk1.6.0_17 (5)2.2.2、安装 TOMCAT6.0(6)2.2.3、安装 MySQL 及相关配置(6)2.3、TOMC
9、AT 工作目录的设置和系统配置文件的设置(7)2.3.1、TOMCAT 工作目录设置 72.3.2、系统配置文件设置 7第三章 系统的结构分析与设计 3.1、整体结构设计 .(8)3.1.1、用户角色设置及权限分配 (8)3.1.2、系统模块设计(8)3.1.3、系统运行模式设计 (9)3.1.4、系统开发模式设计(10)3.1.5、可行性分析(10)3.2、模块分析设计(10)3.2.1、模块分类 (10)3.2.2、系统逻辑结构设计(11)3.2.3、业务流程(12)3.3、数据库设计(13)3.4、JAVA 类设计(15)第四章 系统实现4.1、配置 servlet(16)4.2、数据库
10、连接 (17)4.3、系统页面开发 (19)第五章 系统测试5.1、测试说明(22)5.2、响应时间测试 (23)5.3、超链有效性检测(24)5.4、系统功能测试(24)第六章 系统开发中遇到的问题和难点及解决方法6.1、查询及分页刷新问题(26)6.2、报表的打印(27)6.3、同一账号多主机同时使用(28)6.4、数据备份与恢复(28)6.5、get 方法和传参数分页问题(29)6.6、系统环境移植问题(30)6.7、系统日志处理(30)第七章 小结7.1、小组分工与协作(30)7.2、设计过程中的主要收获(30)参考文献 (30)5致谢. (31)第一章 前言1.1、系统开发的意义学生
11、资助信息系统是学生信息系统中一个子模块,为了实现对每一位学生的资助信息进行统一、集中和规范的记录和编辑,以实现资助信息的公正、公开和高效管理。学生资助信息系统基本上能够满足学生资助信息管理工作的需求,可以为教师和学生提供快速的信息咨询、信息检索、信息存取等服务。本系统模块主要研究学生资助信息管理,由计算机来代替人工执行一系列的资助管理工作。1.2、背景随 着 计 算 机 技 术 的 飞 速 发 展 , 计 算 机 在 高 校 学 各 项 工 作 中 的 应 用 和 普 及 , 利 用 计 算机 来 管 理 学 生 资 助 工 作 将 成 为 不 争 的 事 实 。 而 就 目 前 的 实 际
12、情 况 来 说 , 基 本 都 还 在 使 用office 等 办 公 软 件 , 大 量 的 人 工 操 作 、 效 率 低 、 容 易 出 错 和 没 有 针 对 性 等 一 些 列 问 题的 存 在 , 根 本 达 不 到 现 在 高 校 信 息 化 管 理 的 要 求 。 而 目 前 网 络 上 也 有 不 少 成 型 的 学 生 信息 管 理 系 统 , 但 是 关 于 资 助 信 息 管 理 的 相 对 较 少 , 适 用 性 也 较 差 , 在 功 能 分 析 设 计 上 没有 体 现 民 族 地 区 高 校 的 实 际 情 况 和 自 身 的 特 点 。 也 就 是 说 , 还
13、 没 有 一 套 真 正 符 合 我 系 资助 信 息 管 理 需 要 的 信 息 系 统 。 而 这 样 的 系 统 在 开 发 技 术 上 却 并 不 困 难 , 是 我 们 完 全 可 以掌 握 并 能 实 现 的 。1.3、 课题黔南师院计科系学生信息管理系统-学生资助信息管理子系统本课题主要考虑的是提供简单方便的操作,为管理人员提供简单、高效的对学生资助信息的管理,同时也使学生方便的查询、修改自己的相关信息等。6第二章 JSP 环境的配置2.1 硬件环境的配置内存:512M 或以上CPU:1.4GHz 或者更高硬盘:2GB 的预留空间。显卡:XGA 1280 x 10242.2 软件
14、环境及开发平台的搭建和配置2.2.1、安装 jdk1.6.0_17安装时有两个选择安装路径的页面,路径可以随便选我们就放在 C:Java 下好了。安装完毕后,设置环境变量。设置方法:我的电脑-属性-高级-环境变量; 在系统变量里新建两个系统变量。 一个 JAVA_HOME 在变量名中输入:JAVA_HOME(注意大写) 在变量值中输入:C:Javajdk1.6.0_17一个 CLASS_PATH 在变量名中输入:CLASS_PATH(注意大写) 在变量值中输入:.;C:Javajdk1.6.0_17jrelibrt.jar;C:Javajdk1.6.0_17libtools.jar;(注意里面
15、的“.”不能少,表示当前路径) 新建两个系统变量后,还要在原来就有的一个系统变量 PATH 的变量值中追加C:javajdk1.6.0_17bin;C:javajdk1.6.0_17jrebin;这样 JDK 就安装好了 测试 JDK 安装是否成功:在开始运行中输入(cmd)进入 ms dos 窗口7运行 java -version 看到如下界面则 JDK 已经安装成功。2.2.2、安装 TOMCAT6.0安装在 C:/Tomcat6.0 下 安装完成后配置系统环境变量。设置方法:我的电脑-属性-高级-环境变量;新建一个系统环境变量在变量名中输入:TOMCAT_HOME(注意大写)在变量值中输
16、入:C:Tomcat 6.0新建变量 CATALINA_HOME:变量值为 C:/Tomcat6.0配置完毕后,打开 C:/Tomcat6.0/bin/startup.bat 启动服务器,打开 IE 在地址栏里输入 http:/localhost:8080 页面,若能看到 tomcat 的默认 JSP 页面,则说明 TOMCAT 安装成功。2.2.3、安装 MySQL 及相关配置 安装 MySQL:安装时请注意字符集设置为 gb2312,路径为 C:Program FilesMySQL8配置 MySQL:一般的对 MySQL 的操作和使用,直接安装完成就可以了,但是,系统中使用了命令备份和还原
17、数据库,所以要配置环境变量。变量名 MYSQL_HOME,变量值为 C:Program FilesMySQLMySQL Server 5.1bin。2.3、TOMCAT 工作目录设置和系统配置文件的设置2.3.1、TOMCAT 工作目录设置:(1)访问 TOMCAT 默认的根目录是 C:Tomcat 6.0webappsROOT,可直接将系统拷贝到此目录下,启动 tomcat,在浏览器地址栏输入 http:/localhost:8080/stuinfo 即可访问系统。但是,这样做会使服务器变得臃肿且难管理。(2)设置虚拟目录的方法:编辑 server.xml,找到,在这前面加上:解释:path
18、=“/stuinfo“指虚拟目录的名字,docBase=“d:/stuinfo“代表虚拟目录实际指向的路径,即系统存放的路径,在浏览器地址栏输入 http:/localhost:8080/stuinfo 即可访问系统。2.3.2、系统配置文件设置:(1)stuinfoWEB-INFclassesconn.properties 文件为连接数据库配置文件,内容为:user = rootpassword = admindriver = com.mysql.jdbc.Driverurl = jdbc:mysql:/127.0.0.1:3306/info?useUnicode=trueimport ja
19、va.sql.*;19import java.util.*;import java.io.*;public class Connpublic Properties pros = getPprVue(“conn.properties“);public String driver = pros.getProperty(“driver“);public String url = pros.getProperty(“url“);public String user= pros.getProperty(“user“);public String password = pros.getProperty(“
20、password“);/public static String password = “admin“;public Connection conn = null;public Conn()public Properties getPprVue(String properName) InputStream inputStream = Conn.class.getClassLoader().getResourceAsStream(properName);Properties p = new Properties();try p.load(inputStream); catch (IOExcept
21、ion e) / TODO Auto-generated catch blocke.printStackTrace();return p;/返回数据库连接的方法public Connection getConnection()try Class.forName(driver);conn = DriverManager.getConnection(url, user, password); catch (java.lang.ClassNotFoundException e) System.err.println(e); catch (SQLException er) System.err.pri
22、ntln(er.getMessage();20return conn;4.3 系统页面开发系统各功能模块的开发只需在模块中加入相应的 JSP 代码即可现所需要的功能,以下仅以个别模块来介绍开发的详细过程:431登陆主页面:主页是连接登录模块的纽带,我们的理念是给用户简洁、便利的操作界面,如图 3 所示主页只提供了几个简单的链接,让用户能够快速的进入系统。图 3432查询模块功能实现:查询可实现组合模糊查询功能,其运行结果如图 4 所示。 图 4查询功能实现代的码:21(1) Ajax 发送查询参数:function getPagezy(dipage)var tiper=document.get
23、ElementById(“content“);tiper.style.display=“inline“;var search=document.form3.zy.value;createXmlHttp()xmlhttp.onreadystatechange=function()if(4=xmlhttp.readyState) if(200=xmlhttp.status) document.getElementById(“content“).innerHTML=xmlhttp.responseText; elsealert(xmlhttp.status);var url=“query/ajax_
24、zy.jsp?search=“+search+“xmlhttp.open(“get“,url);xmlhttp.send(null);(2)ajax 实现查询结果显示分页首页 上一页“);if(dipage=countPage)out.print(“下一页 末页“);elseout.print(“下一页 末页“);out.print(“);%(3)在新窗口中显示要打印的报表代码function printme()var print = this.document.getElementById(“print“).innerHTML;22var newWindow = window.open();
25、newWindow.document.open(“text/html“); newWindow.document.write(print); newWindow.document.close(); (4)限制同一账号多主机多人同时使用代码public synchronized static boolean isLogined(HttpSession session,String UserName) boolean flag = false; if(hUserName.containsKey(UserName) flag = true; HttpSession vsession = (HttpS
26、ession)hUserName.get(UserName); try vsession.invalidate(); hUserName.remove(UserName); hUserName.put(UserName,session); catch (Exception ex) else hUserName.remove(UserName); hUserName.put(UserName,session); flag = false; return flag; (5)数据备份及还原代码public String load(String filename) String str = null;
27、Properties pros = getPprVue(“prop.properties“);/ 这里是读取的属性文件,也可以直接使用String root = pros.getProperty(“username“);String pass = pros.getProperty(“password“);/ 得到 MYSQL 的用户名密码后调用 mysql 的 cmd:String dbName = pros.getProperty(“databaseName“);String sqlpath = pros.getProperty(“sql“);String filepath = sqlpat
28、h+filename; / 备份的路径地址 /新建数据库 String stmt1 = “mysqladmin -u “+root+“ -p“+pass+“ create “+dbName; 23String stmt2 = “mysql -u “+root+“ -p“+pass+“ “+dbName+“ “);break;elseout.print(“alert(验证码错误!)“);out.print(“document.location=admin.jsp;“);第五章 系统测试51 测试说明限于现实环境的限制,本系统只在局域网中测试通过,未能在 INTERNET 中进行测试。(1) 测试
29、环境:windows XP 服务平台,MYSQL5.0+tomcat6.0+jdk1.0.02 支撑环境(2) 测试方法:分别在 WIN xp,redhat linux 11.0 中用 IE 浏览器,通过编写测试代码进行登陆跳转时间、JSP 探针测试。(3) 测试目的:测试主要目的是检查系统响应时间。2452. 响应时间测试(1)过滤器代码测试登陆跳转时间截图如下:数据录入数据库时间截图如下:数据统计时间截图如下:根据以上截图每个相应页面执行时间均小于 1 秒,说明系统查询统计、录入,超链、登陆跳转时间相当快,满足要求。测试关键代码:public void start()time = Syst
30、em.currentTimeMillis();public void stop()time = System.currentTimeMillis() - time;public long getTime()return time;25public Timer()time = 0L;(2)JSP 探针测试结果截图服务器计算页面执行时间均在 15-16 毫秒之内,下载速度在 6000k/s 到 7000k/s,说明系统运行符合要求,运行速度较快。53. 超链有效性检测检测超链有效性目的在于检测系统中是否存在空超链,或者系统中是否存在错误超链。通过超链检查软件检测结果截图如下:54. 系统功能测试(
31、1)数据校验测试:通过测试表单文本框数据校验正确,直到用户输入正确才可以提26交表单,如果不输入正确数据提示用户应输入什么类型数据。测试例子截图如下:验证不能为空的提示截图验证用户输入数据类型(2)查询测试: 各功能模块都通过测试,查询得到正确结果,分页功能正常,数 据读取状况正常,页面显示正常,响应时间非常快,数据查询过程基本上没有感到浏览器和服务器通信,已经返回了查询结果。(3)管理测试: 数据管理测试通过添加、删除、修改、数据备份、数据还原、管 理员登陆、非管理员登陆跳转回主页等各项功能正常。 重复添加测试截图: 用户超时测试截图:由于测试只是本小组成员完成,可能有未能检查出的漏洞,敬请
32、各位评阅老师及同学们指出,我们会在第一时间改进系统,万分感谢。27第六章 系统开发中遇到的问题和难点及解决方法在系统的开发中,我们遇到了不少的问题和困难,但在我们的共同努力下,都得到了解决。现将部分问题及其解决方法列出如下:6.1 查询及分页刷新问题。存在的问题:需查询结果及已查结果分页需翻页查看时的局部刷新问题分析原因:利用 JSP 分页点击翻页查看新页内容或 HTML 表单提交查询条件时均需要向服务器发送新的请求,服务器又以的全局新响应返回给客户端,当存在多用户同时不断使用时,服务器压力会急剧增加,其相应的响应时间会延长,可能会造成服务器不返回数据给客户端,造成不能正常及时查看查询结果。解
33、决问题方法:通过网上搜集相关资料,找到了 ajax (Asynchronous JavaScript and XML”(异步 JavaScript 和 XML))技术,它是指一种创建交互式网页应用的网页开发技术,ajax 提供了与服务器异步通信的能力,借助于 ajax,可以在用户单击提交按钮时,使用 JavaScript 和 DHTML 立即更新 UI,并向服务器发出异步请求,以执行更新或查询数据库。当请求返回时,就可以使用 JavaScript 和 CSS 来相应地更新 UI,而不是刷新整个页面,即页面局部刷新。最重要的是,用户并不知道浏览器正在与服务器通信:表明是即时响应。通过使用了 aj
34、ax 来解决我们系统开发过程中发现的多条件查询刷新问题,结果真正实现了页面局部刷新,减轻了服务器压力,在点击提交按钮时,感觉上是页面没有任何变化,而页面数据已经更新了,响应时间明显缩短了。我们使用了ajax 分页代替了 jsp 分页,利用 ajax 传参数解决了此问题,采用 AJAX 技术,使其局部刷新,服务器响应比 jsp 发送请求明显要快得多,真正达到了快、准的作用。解决查询刷新关键代码:Var url=“ajax_class.jsp?search=“+search+“xmlhttp.open(“get“,url);xmlhttp.send(null);ajax 分页关键代码:下一页286
35、.2 报表的页面打印输出多数用户的浏览器;基于安全原因,浏览器可能会阻止 activex 控件,在页面中设置的打印功能将不起作用。这样就造成事先利用 word 设计调整好表格样式转换成jsp 文件在 IE 上的所见不能直接打印输出。在设计时,通过将无需打印的部分加入 CSS 样式,即 .Noprintdisplay:none;实现利用浏览器的打印功能屏蔽不需打印的部分,即可解决这一问题,系统设计针对报表打印输出做了两手准备,首先提供页面直接打印的功能,若用户的浏览器设置支持 activex 控件,则可方便的点击“打印”按钮进行打印,若用户浏览器设置阻止了 activex 控件,则用浏览器上的打
36、印功能进行打印。这样,不管用何种方式打印,都会得到同样的效果。可以实现先在 word 中进表格样式的设计,并打印出样品,调整达到理想的效果后,将 word 文档转换成 jsp 文件,加入到系统中,这样不论通过何种方式打印输出,其效果均会达到用户的设计需求。6.3.同一账号多主机同时使用。存在问题:不同的主机使用同一个账号同时登陆系统进行操作,这样使系统安全性大大降低。尝试解决方法:为了限制多用户同时使用同一账号,我们也试过把用户登陆信息存入数据库,在数据库设置标记,用户登陆时修改为在线标记,用户退出修改为离线,但是当用户不正常退出时就无法监视用户离线时间,虽然可通过 session 判断,当用
37、户 session 超时,把用户修改为离线,但会造成时间的确定性不准问题,从而无法正确判定用户是否在线,同时也会带来对数据库的多操作,增加响应延迟的问题。基于准确性及减轻服务器压力,缩短响应时间考虑,把用户登陆信息存进数据库是不可取的。解决问题方法:经过不断的查找大量资料,找到一种符合要求并且能够解决此问题的方法Java 的监听器。我们使用 HttpSessionListener 监听用户用户是否在线,在用户登陆时候把用户登陆信息保存到服务端的 Hashtable 中,当监听到用户长时间29不作出任何响应就把用户信息删除或者在用户退出时就把用户信息删除,如果用户信息在 Hashtable 中不
38、存在将被强制退出,进而实现了同一账号后者登陆前者下线。解决问题关键代码:vsession.invalidate(); hUserName.remove(UserName); hUserName.put(UserName,session); 6.4.数据备份与恢复。问题表象:备份时显示成功,但数据文件是空文件,可以备份却无法还原等;解决问题方法:经过我们的不断探索,最终找到环境变量未配置的问题所在,因此采用命令提示符备份还原数据库,同时配置 MySQL 环境变量即 MYSQL_HOME 就可以稳定实现。在数据备份和还原的设计中,采用系统工程配置文件 prop.properties 来设置数据库用
39、户名、密码和备份文件存放路径等数据,这样在系统被移植到其他地方或环境改变时,只需直接修改配置信息而无不用重新编译 Java 类。同时设定 MYSQL 的环境变量配置:变量名:MYSQL_HOME;变量值:C:Program FilesMySQLMySQL Server 5.1bin(即 MySQL 默认安装路径) 。实现关键代码如下所示:String stmt1 = “mysqladmin -u “+root+“ -p“+pass+“ create “+dbName; String stmt2 = “mysql -u “+root+“ -p“+pass+“ “+dbName+“ “ + fil
40、epath; String cmd = “cmd“, “/c“, stmt2 ; try Runtime.getRuntime().exec(stmt1); Runtime.getRuntime().exec(cmd); str=“ok“;System.out.println(“数据已从 “ + filepath + “ 导入到数据库中“); catch (IOException e) e.printStackTrace(); 6.5.get 方法和传参数分页问题。问题表象:部分页面有两个表单,表单(下拉列表)的值由查询数据库获得,若采用 post 方式将值提交到本页面,则在有分页的情况点击下
41、页刷新时无法正常获取刷新的页面内容;30尝试解决方法:在分页时采用传参数的方式分页,可是若参数为整形,可以实现,而中文时则会出现错误,或是接收到的值是乱码,使整个页面错误。解决问题方法:采用 get 方式提交,若采用 get 方式提交的值为中文则在接受时将编码转为 ISO-8859-1 的标准编码。客户端脚本使用的默认编码是 utf-8,传中文时我们一样在 jsp 页面使用和 jsp 接收 HTML 表单一样的方法设置编码,可是返回给客户端的全是乱码。我们花费了不少时间找到解决方法,不断的在网上搜索很多关于 jsp 与ajax 传中文进行转换码编码问题,网上资料虽然多,但是也没有找到一个解决方
42、法。我们只有自己修改代码,对程序进行分段测试,结果发现在 ajax 接收的中文值是乱码了,再次用 jsp 转换编码,还是不能转换成中文,问题还是没有得到解决。于是我们开始试想在 ajax 不使用 escape 函数进行编码转换,即直接使用 ajax 默认编码 UTF-8进行传输只给 jsp 页面,在 jsp 页面我们用 getBytes()方法再进行编码转换,结果发现 jsp 接收到从 ajax 发过来的中文字符串值可以转换成中文,问题就也解决了。表明在 ajax 与 jsp 进行交互时,对于中文字符的传输,不用转换编码,直接传值,再用jsp 进行转换编码,这样就可以避免 ajax 传中文乱码
43、。6.6 系统环境移植问题。问题表象:系统开发完成后,我们进行了环境移植测试。由于我们系统开发都是在 windows 下进行,而服务器安装是 linux 系统。当我们把 windows 下开发的系统放到 linux 下时,把所有需要配置的文件都配置好,通过客户端进行访问时,却发现数据库连接失败。尝试解决方法:在此我们试图想了各种问题出现的可能性,也使用了相应的解决方法。首先,我们在 linux 只中从新编译了我们数据库连接类 Conn.java,结果还是不能访问,第二次,我们更新系统中 lib 下 mysql 驱动包,结果还是不能访问。最后我们更换 linux 下系统的根目录,结果也是不能在 linux 连接 Mysql 数据库。解决方法:我们不是很了解 linux 操作系统,不知道问题出现原因何在,只有拿我们自己的数据库连接代码与教材上的数据库连接代码相比较,结果发现代码是有差别,就是给 driver 变量值不一样,我们写的是 com.mysql.jdbc.Driver,而教材上写的是 org.gjt.mm.mysql.Driver。我们对这个问题产生了疑问会不会是这个变量值在影响,于是我们更改 driver 变量值,重启服务,通过浏览登录访问,数据库连接成功了,系统运行正常,移植成功。