1、学生综合管理系统论文学生综合管理系统论文 定稿定稿 四川师范大学本科毕业论文 四川师范大学学生资助管理系统 学生姓名 陈燕鹏 院系名称 数学与软件科学学院 专业名称 信息与计算科学 班 级 2010 级 5 班 学 号 2010060501 指导教师 陈涛 完成时间 2014 年 5 月 1 日 四川师范大学学生资助管理系统 信息与计算科学专业 本科生 陈燕鹏 指导教师 陈涛 摘要 在互联网技术日新月异的今天,越来越多的企业和政府部门将自身的业务与互联网技术相结合;这不仅为企业和政府部门提高了效率减轻了成本,也在很多方面为人们的生活提供了极大的便利。在这里,我将展示一个基于 java语言开发的
2、一个四川师范大学学生资助管理系统。本系统旨在为学校提供一个灵活的信息发布平台和为同学们提供一个简明的资助信息获取渠道。在技术上,采用了许多开源免费的新技术和框架,例如 EXTJSXX的 UEditor等;数据库采用的是小巧而强大的mysql;主体框架是熟悉的 SSH2。关键词:JAVASCRIPT JAVA B/S 模式 EXTJS UEditor Sichuan Normal University Student Financial Assistance Management System Information and Computing Science Undergraduate Che
3、n Yanpeng Supervisor Chen Tao Abstract In Internet technology change rapidly today,more and more enterprises and government departments will service and Internet technology the combination;this is not only for the enterprises and government departments to improve the efficiency,reduced the cost,but
4、also in many aspects have provided great convenience for peoples life.Here,I will show a based on the Java language to develop a Sichuan Normal University student financial assistance management system.The system is designed to provide a flexible information for school publishing platform and provid
5、es a concise information about financial aid for students to access.In the technology,using many open source and free new technologies and frameworks,such as EXTJS,UEditor etc.Database uses is compact and powerful MySQL;the main frame is the familiar SSH2.Key words:JAVASCRIPT JAVA B/S Pattern EXTJS
6、UEditor 目录 摘要 I ABSTRACT II 目录 1 绪论 1 1.1选题的背景与意义 1 1.2所做的主要工作 1 2 系统开发涉及到的相关工具和技术简要介绍 2 2.1 JAVA 2 2.2 Javascript 2 2.4 Css 2 2.5 Sql 2 2.6 Xml 2 2.7 SSH2 3 2.8 JSP 3 2.9 JQuery 3 2.10 ExtJs 3 2.11 UEditor 3 3 系统分析和设计 4 3.1 系统角色 4 3.2 网站总体结构设计 4 3.3 系统用例图 5 3.4 数据库分析与设计 7 4 系统详细设计 11 4.1 系统设计模式 11
7、4.2 功能模块设计 12 4.3 系统代码实现 17 5 结束语 33 参考文献 34 致谢 35 四川师范大学学生资助管理系统 1 绪论 1.1 选题的背景与意义选题的背景与意义 20世纪 90 年代以来,随着计算机技术、通信技术的日益发展与融合,特别是Internet 在一系列技术突破支持下的广泛应用和日益完善,信息技术革命的影响已由纯科技领域向市场竞争和企业管理各领域全面转变。无处不在、形形色色、大大小小的信息系统和主导现代社会发展的支柱信息产业,成为信息化社会的重要标志。为了加快信息化社会的建设,社会上的企业和政府部门都在加紧对各自信息化平台的建设。大学学生资助管理系统的建设正是为了
8、迎合信息化社会的建设,为广大师生提供一个便利的服务平台。1.2 所做的主要工作所做的主要工作 首先,需要明确学生资助管理系统的目的,即对该系统进行需求分析。在明确目的之后,再对系统进行数据库设计和系统设计。在完成系统部分的设计之后,由于这是一个 b/s 的系统,还需要对网页的布局进行平面设计。最后,在按照设计要求进行编码,实现系统。本系统的设计目的在于为学校的教职员工提供安全灵活的信息发布平台,通过权限管理审核管理以及便捷的文档编辑管理系统,进而让系统的使用者非常方便非常容易的操作系统;同时,使用系统的同学们,通过系统的检索功能,也可以非常容易的检索到自己需要的信息。本系统采用的语言包括 ja
9、vajavascripthtmlcssjsonsqlxml 等。主体框架是 SSH2(spring+struts2+hibernate)的传统组合,数据库是的是小巧而强大的 mysql 数据库,前端页面大部分是使用 JSP(Java Server Pages)页面,后台管理界面使用了javascript 的一种框架 ExtJs,编辑界面采用的是国人开发的 XX的 UEditor 编辑器。2 系统开发涉及到的相关工具和技术简要介绍 2.1 JAVA 本次开发主要语言,是由 Sun 公司于 1995 年 5月推出的一种可以跨平台应用软件的面向对象的程序设计语言。2.2 Javascript Jav
10、ascript 是一种基于对象的动态类型的区分大小写的客户端脚本语言,主要目的是为了解决服务器端语言。2.3 Html html 即超文本标记语言,网页的主要构成。2.4 Css CSS(层叠样式表)即级联样式表。通过 CSS我们可以更好的展示我们的页面,可以为用户提供更好的视觉体验。2.5 Sql 结构化查询语言(Structured Query Language)简称 SQL,结构化查询语言是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。在项目中,我们将主要采用它的变种 HQL(Hibernate Query Language)语言。2.6 Xml 可扩展标
11、记语言,标准通用标记语言的子集,一种用于标记电子文件使其具有结构性的标记语言。在项目中,它的主要作用是配置文件。2.7 SSH2 SSH2 在 J2EE项目中表示了 3种框架,即 Spring+Struts2+Hibernate。此次项目的主体框架。2.8 JSP JSP(Java Server Pages)是由 Sun 公司倡导、许多公司参与一起建立的一种动态网页技术标准。部分页面将采用 JSP 技术演示。2.9 JQuery Jquery是一个优秀的 Javascript 框架(目前最流行的)。由于其优异的性能,很多其它的 Javascript 框架都会基于 Jquery进行开发,例如本次
12、项目中采用的 Ueditor(Web版),就会包含一个 Jquery文件。2.10 ExtJs ExtJS 是一种主要用于创建前端用户界面,是一个基本与后台技术无关的前端 ajax框架。我的后台几乎全部是通过 ExtJs 进行开发的,并且这种框架非常适合各种管理系统的开发。目前 ExtJS 仍是免费开源的(当然,商用是收费的)。2.11 UEditor UEditor是由 XXWEB 前端研发部开发的所见即所得的开源富文本编辑器,具有轻量、可定制、用户体验优秀等特点。开源基于 BSD 协议,所有源代码在协议允许范围内可自由修改和使用。XXUEditor的推出,可以帮助不少网站开者在开发富文本编
13、辑器所遇到的难题,节约开发者因开发富文本编辑器所需要的大量时间,有效降低了企业的开发成本。在这里,我特别推荐使用 Ueditor,在对比多款在线编辑器之后,XX 的 Ueditor绝对是很棒的一款产品。尤其是它非常的符合国人的使用习惯,而且 XX 的一系列产品都是中文的 API(学习和使用非常方便),功能齐全(兼容各种多媒体文件的展示),以及方便的各种 XX的服务。3 系统分析和设计 3.1 系统角色 在这个系统中,我们可以粗略的得到两个系统角色,一个是对系统进行维护和发布信息的系统管理员,另一个这是浏览信息的用户,其系统角色图如图 1:图 1 系统角色图 3.2 网站总体结构设计 学生资助信
14、息管理系统的主要目的是提供一个信息的共享平台,人们可以通过该平台发布和获取需要的信息。为管理人员定制的后台信息管理系统,该系统是整个资助信息管理系统的核心所在,系统的设计如下:(1)登录系统:验证管理员的身份,并注册管理员的管理级别(2)权限管理系统:通过管理员的管理级别,提供相应的服务,并且过滤超出管理权限的操作(3)文章管理系统:文章的编辑,文章的增删改查,文章的审核发布功能(4)下载文件管理系统:文件的上传,增删改查,审核及发布功能(5)首页特效图片的管理系统:对首页的特效图片进行维护,同样有上传,增删改查,审核发布功能;以及关联首页图片和指定的文章(6)以及管理员信息管理系统:对管理员
15、的信息进行维护,新增管理员,删除管理员,修改管理员的权限 为浏览信息的用户制作前台浏览界面系统,包括:(1)文章的浏览界面(2)文件的下载界面(3)文章的搜索功能(4)分类查看文章的功能 本系统功能模块图如图所示:图 2系统功能模块图 3.3 系统用例图 系统的两个角色,系统管理员和用户。其中系统管理员承担着文章,下载文件,首页图片和管理员信息的管理工作;而用户,则享有文章的浏览搜索分类查看,及文件下载的功能。用户和系统管理员的用例图分别如下方图 3 和图 4所示:图 3 系统管理员用例图 图 4 信息浏览用户用例图 3.4 数据库分析与设计 3.4.1 数据库概念设计数据库概念设计 本系统的
16、实体包括:管理员、文章、下载文件、图片。其实体间的 E-R 图如下方图 5 所示:图 5 系统总体 E-R 图 3.4.2 数据库设计数据库设计 根据上述的 E-R 图我将数据库概念设计中的四个实体转化为四个相应的数据库表,分别命名为 admin,article,data和 pic,数据库则命名为 zzgl。下面我将详细的介绍数据库中的四个表和具体意义:管理员信息表(admin):管理员信息表 字段名称 数据类型 可否为空 说明 admin_id Varchar(200)N 登录帐号(主键)admin_name Varchar(200)N 管理员的名称 admin_psw Varchar(20
17、0)N 密码 admin_level Int(10)N 权限等级 管理员信息表中的 admin_id 是登录用的,而 admin_name则是显示用的;这里需要特别说明的是我的管理员级别的设定 admin_level。管理员级别有四个分别是0,1,2,3;其中 0级别的管理员只拥有数据登入的权限,而 1级别的管理员要多出一个审核数据的权限,2级别的管理员可以向前台发布数据并且拥有前两个级别的所有权限,至于 3级别的管理员则是超级管理员,新增对管理员的信息进行操作功能。文章信息表(article):文章信息表 字段名称 数据类型 可否为空 说明 article_name Varchar(200)
18、N 文章名(主键)article_adr Varchar(400)N 文章存储地址 article_date date N 最后修改日期 article_type Varchar(200)N 文章类型 article_author Varchar(200)N 作者 article_childrenType Varchar(200)Y 来源 page_views Int(10)N 浏览次数 isPublished Int(10)N 是否发布 isChecked Int(10)N 是否审核 mainPage Varchar(200)Y 在主页的显示栏目 关于 IsPublished 和 isChe
19、cked 这两个属性,应该是布尔类型的,但是 mysql 数据库并没有提供 boolean类型而是用 tinyInt 中的 0,1 代表 boolean类型的 false 和 true。mainPage是表示在主页中显示的栏目,如果为空则不显示,如果超过六个(主页的每个栏目空间有限,最多只能显示六个)则会覆盖掉最旧的一个。以文章名为主键,在这里是欠考虑了,在后期造成了很多麻烦;虽然麻烦都解决了,但是依旧存在隐患。article_adr这个属性就是当初写工程时知识的欠缺造成的一个结果。这个属性的意思是把文章(一串很长的字符串,并且带有特殊字符)通过 java的 io 功能,输出到指定位置的 tx
20、t 文档中,并且在数据库中用 article_adr属性存储文件的地址。这的确是一个解决方案,但是最近我在研究大文本的存储时找到了一个更好的方案:在各种数据库中,他们几乎都会提供 blob 和 text/clob 属性,而 text/clob 就是特地用来存储大文本的属性(在 mysql 中是 text)。下载文件信息表(data):下载文件信息表 字段名称 数据类型 可否为空 说明 data_name Varchar(200)N 文件名(主键)data_date date N 上传日期 data_author Varchar(200)N 作者 data_adr Varchar(200)N 文
21、件存储地址 data_source Varchar(200)N 来源 downloads Int(10)N 下载次数 isPublished Int(10)N 是否发布 isChecked Int(10)N 是否审核 上述的下载文件信息表和文章信息表比较类似。图片信息表(pic):图片信息表 字段名称 数据类型 可否为空 说明 pic_name Varchar(200)N 图片名(主键)pic_info Varchar(200)Y 图片信息 introduction Varchar(200)Y 图片简介 pic_adr Varchar(200)N 存储地址 isChecked Int(10)N
22、 是否审核 isPublished Int(10)N 是否发布 article_name Varchar(200)Y 被关联文章名 article_adr Varchar(200)Y 被关联文章地址 在首页,会有几张不断滚动的特效图片,点击图片就能跳转到与图片关联的文章,记录文章的属性就是 article_name和 article_adr;pic_info 和 introduction 比较类似,都是图片的简介,但一个是题目一个是内容。4 系统详细设计 4.1 系统设计模式 本系统采用的是传统的 SSH2 框架进行开发工作,在这个框架中,我们可以非常清晰的了解系统的工作模式。SSH2是 sp
23、ring+struts2+hibernate 这 3个开源框架的简称,框架之间各自完成各自的工作,或者也可以用其他的框架代替,它们是松耦合的。Spring框架,可以说 spring在它们中最不容易代替的框架,它最重要的功能就是依赖注入功能,通过 ioc(控制反转)容器来管理各个 bean的创建,取代了原来传统的构造器创建实例的方法,降低了系统的耦合度。Struts2 框架,可以简单的把它归类到 MVC 模式中的 C(controller)层。Hibernate框架,是个重量级的 orm(对象关系映射)框架。Hibernate 大大简化了对数据库的操作,同时也为程序员提供了更方便的对象服务。我们
24、可以把它归类于MVC3 层之外的持久层。JSP,MVC 中的表现层。Javabean,POJO(plain old java object)即简单的 java对象,MVC 中的模型层。所以,系统运行流程可以表现如图 6所示:图 6 4.2 功能模块设计 系统可以分为前台和后台两个部分。前台主要是为浏览信息的用户提供检索浏览等服务,后台则是为管理员提供对信息的管理服务。我将后台系统又分为四个大的模块,分别是:文章信息管理模块、下载文件信息管理模块、图片信息管理模块和管理员信息管理模块。其中,文章信息管理模块的功能包括为管理员提供文章的编辑功能,文章的增删改查,文章的审核与发布功能;下载文件信息管
25、理模块的功能包括为管理员提供文件的上传功能,文件的增删改查,审核和发布功能;图片信息管理模块的功能包括为管理员提供图片的新增功能,图片的增删改查,审核和发布功能和与文章关联的功能;管理员信息管理模块则是为管理员提供管理员信息的修改功能,删除功能和新增管理员功能。4.2.1 文文章信息管理模块章信息管理模块 文章信息管理模块的工作流程如下所示,首先用户必须先登录系统,同时系统会为成功登录系统的管理员注册管理员级别(某些操作要求高级权限);然后用户会来到文章目录界面;在该界面,管理员可以选择相应的操作;当所有操作执行完毕后,回到目录界面。这里需要指出的是,审核后才能发布,撤销发布之后才能撤销审核;
26、审核和发布及对应操作都需要相应的权限。图 7 4.2.2 下载文件信息管理模块下载文件信息管理模块 图 8 4.2.3 图片信息管理模块图片信息管理模块 图 9 4.2.4 管理员信息管理模块管理员信息管理模块 图 10 4.3 系统代码实现 本系统的代码分为后台服务器端代码和前台 extjs 的 javascript 代码,在展示的时候,我将只会贴出比较关键的代码。4.3.1 数据库连接实现数据库连接实现 系统连接数据库仍然使用的是 jdbc,但是由于使用了 hibernate作为持久层,我将贴出连接几个关键的配置文件:Hibernate的映射 xml 文件:Hibernate的配置 xml
27、 文件:org.hibernate.dialect.MySQLDialect jdbc:mysql:/localhost:3306/zzgl true UTF-8 root 123 com.mysql.jdbc.Driver zzgl true update org.hibernate.connection.C3P0ConnectionProvider 20 5 20 100 120 2 true 4.3.2 主页设计主页设计 说明:主页及其他用户显示界面都同意采用盒式布局模式。在主页可以将内容其大略分为以下几个部分:1.导航及搜索部分:快速的跳转到用户所需要的模块,和快速的通过文章的标题关键
28、字对文章进行搜索。2.特效图片部分:通过点击滚动图片,可以迅速跳转到与图片相关联的文章。3.最新消息部分:按照最后修改(发布)的顺序,在主页的最新消息部分显示这些最新的内容。4.分块内容部分:显示每个分类的指定文章(通过后台修改需要显示的部分)。5.外部链接部分:可以链接其他相关网站。头部:图 11 下部:图 12 由于主页的代码有四百多行就不贴出来了,主页的代码结构大致如下所示:4.3.3 文章浏览界面文章浏览界面 说明:该页面的功能主要是以显示文章的内容为主。通过强大的 Ueditor 功能,我们甚至能够在页面中添加包括图像,声音,影像等多媒体文件,也可以直接在页面中添加附件提供下载的功能
29、。无图的:图 13 有图的:图 14 文章的显示部分代码如下:$data.article_name 【信息来源:$data.article_childrenType|浏览量:$times次|发布时间:$data.jsonDate】$article 4.3.4 目录及翻页界面目录及翻页界面 说明:该页面的功能主要是以显示文章的目录为主,提供了翻页,跳转指定页数和导航到指定文章的功能。图 15 翻页和跳转的代码:当前第$page.currentPage页,共$page.pageCount页,每页显示$page.pageSize条记录 首页 上一页 首页 上一页 下一页 尾页 下一页 尾页 跳转到
30、页 function check()var val=document.getElementById(currentPage).value;var max=$page.pageCount;if(valmax)alert(你输入的值太大了!提交失败);return false;else return true;4.3.5 后台登陆界面后台登陆界面 说明:该界面为登录验证部分。如果验证未通过,将不会加载管理部分的界面。图 16 以下是 extjs 的代码:/登录界面,弱登录失败,则不会进入主界面 function start()var loginform=Ext.create(Ext.form.Pa
31、nel,url:login,height:200,width:300,items:margin:10 0 10 10,fieldLabel:用户名,xtype:textfield,name:id,allowBlank:true ,margin:10 0 10 10,fieldLabel:密码,xtype:textfield,name:password,inputType:password,allowBlank:true ,buttons:text:重置,handler:function()loginform.getForm().reset();,text:提交,handler:function
32、()var form=loginform.getForm();if(form.isValid()form.submit(success:function(form,action)createPanel();Ext.getCmp(startWindow).close();,failure:function(form,action)Ext.Msg.alert(Failed,action.result.msg);););Ext.create(Ext.window.Window,title:登录,height:200,width:300,id:startWindow,layout:fit,items:
33、loginform ).show();4.3.6 文章管理界面文章管理界面 说明:该界面提供文章管理的功能,我们将从以下几个部分进行说明:1.文章检索部分:通过文章检索的功能,我们可以快速的定位需要管理的文章。2.管理部分:(1)删除:删除已有的文章,但是被发布后的文章不能被删除。(2)新增:新建一篇新的文章,新建好的文章的初始状态为未发布,未审核。(3)审核和取消审核:只有通过审核的文章才能被发布,而已经发布的文章不能被取消审核。(4)发布和取消发布:发布后的文章才能被外部用户浏览。只有审核后的文章才能被发布,只有取消发布后的文章才能被取消审核。(5)修改:通过修改可以更新文章的内容。图 17 以下是 extjs 的代码:/将搜索和表格显示 panel 放入这个 panel 里面 var articlePanel=Ext.create(Ext.panel.Panel,layout:bor
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1