基于javaweb的学生信息交流和自主管理系统的设计与实现.docx
- 文档编号:18262409
- 上传时间:2023-08-14
- 格式:DOCX
- 页数:32
- 大小:981.55KB
基于javaweb的学生信息交流和自主管理系统的设计与实现.docx
《基于javaweb的学生信息交流和自主管理系统的设计与实现.docx》由会员分享,可在线阅读,更多相关《基于javaweb的学生信息交流和自主管理系统的设计与实现.docx(32页珍藏版)》请在冰点文库上搜索。
基于javaweb的学生信息交流和自主管理系统的设计与实现
基于javaweb的学生信息交流和自主管理系统的设计与实现
摘要:
现在网络上有很多的社交网站,也有很多的用户常驻其中,但由于他们受众人群比较广泛,用户的年龄、职业的差别决定了这些网站必须做到通用性才能很好的让大众接受,因此他们也缺失了一些独有的个性;在此背景上,决定做一个面向大学生自己的信息交流平台,让大学生可以在上面做专属于自己的事情,这样就能更好地让兴趣相投的人一块交流。
这次的项目是面向学生这个特殊群体的,所以其中的模块都是具有定制特性的,希望以此可以很好满足用户的期望。
网络已经是大学生必不可少的东西,大学生也迫切的希望能在网络尽情释放自己,展现自己,这次的项目正是出于这个想法,借此打造出具有独特魅力的信息交流平台。
该项目主要是基于javaweb体系结构实现的,开发工具为Eclipse,以Oracle作为数据存储层,结合流行的开源框架Struts2完成了项目的整体架构。
关键词:
信息交流;社交;JavaWeb;Struts2
TheDesignandImplementationof Student'sInformationExchangeandIndependentManagementSystem
Abstract:
Nowadays,therearealotofsocialcommunitywebsitesontheInternet,andmanyusersareusedtocommunicatingwitheachotherthroughthem.However,duetothewiderangeofcustomers,theirdifferentages,andoccupations,thesesitesmustbenomoreordinaryinorderthattheycanbeacceptedbythepublic.Asaresult,itisnosurprisethattheywillmisssomeuniquepersonality.Asforthisphenomenon,Idecidetodevelopaninformationexchangingplatformforcollegestudents,sothatstudentscandotheirownbusiness.Atthesametime,moreuserssharingthesameinterestscancommunicateonittogether.
Thisprojectkeepsfocusonaspecialgroup—students,andallofthemoduleshavecertainproperties,hopingthatitcanmeettheusers’expectations.Internethasbecomeindispensableforthecollegestudents,andthestudentsareeagertoreleasethemselvesandshowthemselves.Motivatedbythisidea,theprojecttriestocreateaninformationcommunicatedplatformwithuniquecharacters.ThisprojectisbasedonJavaWebarchitecture,usingeclipseasdevelopmenttoolsandOracleasdatabase.Moreover,itiscombinedwithpopularopensourceframework,whichiscalledStruts2,tocompletetheoverallstructure.
Keywords:
InformationExchange;Social;JavaWeb;Struts2
1前言
1.1开发背景
网络已经成为当代大学生生活和学习中不可或缺的一样东西,生活中需要交流,学习上也需要交流。
网络正好满足了这个需求,很多的社交网站也应运而生。
网络交流成为了大学生的日常活动,离开了网络,很多大学生都会有一种孤独感,或者被社会抛弃的感觉这正好反映了大学生对网络的依赖性和网络交流的重要性。
大多数的社交网站用户人群比较广泛,用户的年龄、职业的差别决定了这些网站必须做到通用性才能很好的让大众接受,因此他们也缺失了一些独有的个性。
当然,网上也有很多别具一格的社交论坛,里边聚集着一群有共同爱好的人。
在此背景上,我决定做一个面向大学生自己的信息交流平台,用属于大学生的元素来吸引大学生在上面绽放自己年轻的光彩。
1.2系统设计的目标
这次的项目是针对大学生所做的,目的是为了设计出具有学校生活色彩的应用系统,让使用者可以快速的融入其中。
现在的大学生迫切的需要有共享自己的想法的平台,本系统正是要满足的这样的需求。
2相关技术介绍
2.1jsp技术简介
jsp是sun公司在web编程领域所开发的一项技术,上面可以写html标签,也可以写一下java代码进行逻辑处理,结合了显示处理和后台处理。
受益于java语言的无平台限制性,解释jsp的中间件服务器可以运行在任何装有jvm环境的机器,代码不需要做任何的修改。
2.2开源框架Struts2技术简介
Struts2是Struts1的升级版本,它融合了webwork框架的优点,吸收了很多现在比较流行的软件思想,受到很多的开发者的喜爱。
现在由apache开源组织进行维护和升级,每个开发者都可以贡献自己的一份力量。
Struts2主要是对web编程中的请求控制进行了进一步的整合和封装,简化了很多繁琐复杂的工作,通过几个简单的配置就可以让开发者完成前台到后台的一系列流程。
这样可以让开发者把精力放在业务逻辑的处理,而不用重复的进行请求的处理,一定程度上提高了开发效率。
图2.1为Struts2的工作流程:
图2.1Struts2工作原理
2.3Oracle数据库技术简介
Oracle数据库系统是一种企业级的关系型数据库,由美国Oracle公司(甲骨文)开发。
它比较适合一些大中型的企业应用。
Oracle数据库系统是现今数据库系统中对数据库设计原理实现的最为完整的数据库,安全性很高,适合一些对信息安全有很高要求的系统开发。
Oracle现在的版本为OracleDatabase12c,其对数据库云进行了很好的支持,对处理大数据提供了不错的支撑。
2.4JQuery脚本库技术简介
JQuery是一个开源的js脚本库,全球使用人数很高,也有很多的开发者在对其进行优化和扩展。
它主要优点是能够兼容多种浏览器,对不同的浏览器内核进行了很好的兼容。
使用JQuery可以对DOM进行很多操作,也可以让开发者做出很多动态显示特效。
另外,它封装的Ajax功能也是非常简便易用,功能强大。
JQuery提供了丰富的API供开发者使用,利用它可以很轻松的开发出强大的web系统。
2.5Eclipse开发工具简介
Eclipse是一种功能强大的集成开发工具,主要用于java语言的开发。
它提供了丰富的快捷键,让开发者可以利用纯键盘进行快速的编程。
Eclipse允许开发者在其提供的API基础上开发特殊需求的插件,此插件可以完美的融合到Eclipse上,很大程度上增强的它自身的功能,方便了开发者的开发。
另外,它提供的debug调试功能对于排查开发过程中难以发现的bug起到了很明显的作用。
3系统的可行性研究与需求分析
3.1可行性研究
3.1.1技术可行性
技术方面主要使用了比较流行的Struts2框架,网上相关资料比较丰富,实现起来相对容易。
数据库Oracle也是比较成熟的数据库,应对本系统也不会出现性能问题。
其他的技术像Ajax也有很多丰富的实例,不存在无法实现的问题。
由此可知,技术上是可行的。
3.1.2经济可行性
本系统的开发过程中所使用的资源均属于开源免费的,不需要额外支付费用,开发人员上也不需要很大的需求,所以产生的费用也不是很大,系统后期的部署和维护也是相对比较容易,对服务器的要求也不是很苛刻,所有开支不是很大,所以,经济上是可行的。
3.1.3营运可行性
本系统主要是针对大学生所开发的应用系统,在潜在用户量这方面是很客观的,营运过程中,宣传也是比较简单,同学之间相互了解是很有效的宣传方式。
所以在运行上是可行的。
3.2需求分析
在系统开发之前,需求分析是很关键的。
一个好的需求直接决定了系统开发的成败。
需求分析主要是了解用户的主观想法,借此来总结需要实现的功能以及实现过程中的细节。
3.2.1系统需求
对于该系统的实现方式,java是很好的选择。
因为java在web方向上有很多成熟的体系结构,它是经过了很多人验证后确实可行的方案,所以使用起来会比较容易。
3.2.2性能需求
系统运行过程中会产生很多的数据,在数据到大一定量以后,就会导致系统性能问题。
所以在实现方式上,数据源方面需要使用连接池加快访问数据库的速度,后期在服务器上需要提高服务器的配置,以达到要求的运行速度。
3.3功能分析
学生信息交流平台主要包括首页展示,博文模块,问答模块,个人中心和关于。
其中首页主要是对博文和问答的一系列展示,包括最新博文,最新图文,热门博文,各类型博文,以及最新的待解决问题,另外还包括活跃学生的排行展示;博文模块主要是对博文展示,发表博文,回复博文,查找博文等一系列的用户操作;问答模块就是对学生用户所提问题的展现和其他学生对其进行回答的展示,另外,提问者还可以对自己满意的回答进行采纳,此时问题状态改为已解决;个人中心主要有基本资料,密码,头像的更新,另外可以管理自己的博文和问答,实现用户的自主管理;此外,学生还会有自己相应的角色,比如管理员,博文管理员,问答管理员,普通用户,对应的角色可以管理整个系统的相应模块,这样就使用户具备了后台管理员的部分权限,默认情况下,管理员具有所有权限,只有管理员可以管理系统的所有学生用户;关于模块就是对整个系统的介绍。
4系统总体设计
4.1系统主要功能设计
图4.1功能模块图
该系统主要有:
首页展示,博文模块,问答模块,个人中心模块和关于模块。
其中博文模块下有包括查看博文,发表博文,回复博文和按类别、用户、标题查询博文;问答模块下有提出问题,回答问题,采纳问题,查找答案等;个人中心包括用户个人资料,密码,头像的修改,以及对自己博文和问答的查阅与更新,个人中心还包括后台管理部分,用户可以根据自己的权限做相应的操作。
图4.1为学生信息交流平台的功能模块图。
4.2各模块功能设计
主要功能有:
1.用户登录注册:
注册时对用户输入的信息进行有效验证,并对已经注册
用户名进行提示,防止出现同样的用户名。
2.博文模块:
对所有博文进行分页展示,可以根据类别,用户名,标题进行查询,点击博文进入博文详细,可以浏览博文内容和回复详细,回复具有一级回复和二级回复,可对二级回复进行隐藏和显示,另外可以点击发表博文来表达自己的观点。
3.问答模块:
对最新的问题进行展示,可以根据关键字模糊查询问题,点击问题进入问题详细,可以查看问题详情和回答列表,如果是提问人,还可以对满意的答案进行采纳,同样也可以提出问题等待别人回答。
4.个人中心:
首先包括对个人资料的更新,其中有个人基本资料,个人密码,个人头像;还有就是对自己的博文和问答的管理。
个人中心还包括后台的管理,用户可以根据自己的权限来管理相应的模块。
5.关于:
对本系统的一个介绍,让用户对系统有个全面的认识。
4.3数据库设计
4.3.1数据库的逻辑结构
数据库设计需要满足一些严格的约束和规则。
要搞清楚实体和表之间的对应关系,还有他们之间的各种联系。
设计过程要充分考虑数据冗余与性能上的平衡,尽量在表的设计上做到最优。
学生信息交流平台的数据库包含下列数据表:
(1)学生信息表
主要用于保存注册用户的各类信息,包括用户名,密码,昵称,邮箱等。
表4.1学生信息表(student)
名称
类型
可为空
注释
STUNO
NUMBER(8)
学生编号
STUACCOUNT
VARCHAR2(45)
Y
账号
STUPASSWORD
VARCHAR2(45)
Y
密码
STUSEX
VARCHAR2(4)
Y
性别
STUNICKNAME
VARCHAR2(50)
Y
昵称
STUBIRTH
DATE
Y
生日
STUPHOTO
VARCHAR2(100)
Y
头像
STUHOBBY
VARCHAR2(100)
Y
爱好
STUYX
VARCHAR2(100)
Y
院系
STUZY
VARCHAR2(100)
Y
专业
STUEMAIL
VARCHAR2(100)
Y
邮箱
STUTEL
VARCHAR2(40)
Y
手机
STATUS
INTEGER
Y
状态
ROLEID
NUMBER
(2)
Y
角色id
REGDATE
DATE
Y
注册日期
(2)用户角色表
主要用于保存注册用户的角色信息。
表4.2用户角色表(role)
名称
类型
可为空
注释
ROLEID
NUMBER
(2)
角色id
ROLENAME
VARCHAR2(20)
Y
角色名
ROLEVALUE
NUMBER(4)
Y
角色权限值
(3)用户权限表
主要用于保存注册用户操作的各类权限。
表4.3用户权限表(permission)
名称
类型
可为空
注释
PID
NUMBER(4)
权限id
PNAME
VARCHAR2(45)
Y
权限名称
PURL
VARCHAR2(100)
Y
路径
(4)博文表
主要用于保存博文的各类信息,包括标题,内容,时间,发布人等。
表4.4博文信息表(blog)
名称
类型
可为空
注释
BLOGID
VARCHAR2(20)
博文id
BLOGTITLE
VARCHAR2(100)
Y
博文标题
BLOGCONTENT
VARCHAR2(4000)
Y
博文内容
BLOGTAG
VARCHAR2(20)
Y
博文标签
BLOGREAD
NUMBER(8)
Y
浏览数
BLOGREPLY
NUMBER(8)
Y
回复数
BLOGTIME
DATE
Y
发布时间
STUNO
NUMBER(8)
Y
发布人编号
(5)博文一级回复表
主要用于保存注册博文的一级回复,包括id,内容,时间,博文id等。
表4.5博文一级回复表(replyone)
名称
类型
可为空
注释
RONEID
VARCHAR2(20)
回复id
RONECONTENT
VARCHAR2(500)
Y
回复内容
RONEDATE
DATE
Y
回复时间
STUNO
NUMBER(8)
Y
回复人编号
BLOGID
VARCHAR2(20)
Y
所回复博文
(6)博文二级回复表
主要用于保存注册博文的二级回复,包括id,内容,时间,一级回复id等。
表4.6博文二级回复表(replytwo)
名称
类型
可为空
注释
RTWOID
VARCHAR2(20)
回复id
RTWOCONTENT
VARCHAR2(500)
Y
回复内容
RTWODATE
DATE
Y
回复时间
STUNO
NUMBER(8)
Y
回复人编号
RONEID
VARCHAR2(20)
Y
一级回复id
(7)问题表
主要用于保存注册问题的各类信息,包括问题标题,内容,时间,问题状态等。
表4.7问题表(ask)
名称
类型
可为空
注释
ASKID
VARCHAR2(20)
问题编号
ASKTITLE
VARCHAR2(100)
Y
问题标题
ASKCONTENT
VARCHAR2(2000)
Y
问题内容
ASKREAD
NUMBER(8)
Y
阅读数
ASKANSWER
NUMBER(8)
Y
回答数
ASKTIME
DATE
Y
提问时间
STUNO
NUMBER(8)
Y
提问人编号
STATUS
INTEGER
Y
问题状态
(8)回答表
主要用于保存回答的各类信息,包括回答内容,回答时间,是否采纳等。
表4.8回答表(answer)
名称
类型
可为空
注释
ANSWERID
VARCHAR2(20)
回答id
ANSWERCONTENT
VARCHAR2(1000)
Y
回答内容
ANSWERTIME
DATE
Y
回答时间
AGREECOUNT
NUMBER(8)
Y
赞同数
ACCEPT
INTEGER
Y
是否被采纳(0未采纳 1已采纳)
STUNO
NUMBER(8)
Y
回答人编号
ASKID
VARCHAR2(20)
Y
问题id
(9)图片表
主要用于保存图片的各类信息,包括图片名称,图片路径,对应表名称,对应记录,上传时间等。
表4.9图片表(pics)
名称
类型
可为空
注释
PICID
VARCHAR2(20)
Y
图片id
PICNAME
VARCHAR2(100)
Y
图片名称
PICURL
VARCHAR2(100)
Y
图片路径
TABLENAME
VARCHAR2(20)
Y
对应表名称
RECODEID
VARCHAR2(20)
Y
对应记录id
UPTIME
DATE
Y
上传时间
4.3.2数据库的连接
本系统运用了dbcp数据库连接池来提高数据库的连接效率。
dbcp是apache组织上的一个java连接池项目,同时也是tomcat使用的连接池组件。
系统中使用dbcp需要3个jar包:
commons-pool.jar,commons-collections.jar;commons-dbcp.jar。
系统中频繁的建立数据库连接是非常耗费资源的操作,所以dbcp连接池会预先创建一些连接存在内存中维护,这样系统中需要用到连接的时候直接去池中取,省掉了临时创建的时间,提高了运行效率。
首先需要在meta-inf中加入数据库连接池配置文件context.xml,然后配置监听器初始化数据源,之后代码中就可以使用getDataSource()得到的数据源来获取数据库连接。
5系统详细设计与实现
5.1系统登陆模块设计
登陆模块主要功能就是验证用户输入的用户名密码是否正确,如果输入有误就进行相应的提示,如果登陆成功就跳转到首页。
图5.1为登陆页面:
图5.1系统登陆界面
登陆过程使用JQuery实现的ajax方式进行后台的验证,验证结果通过js动态的显示在页面上,填写完登陆信息发送请求到后台,此时会经过Struts2的拦截器interceptor来查询该用户的具体权限,并保存到session中。
这样就可以方便的在具体的操作中判断用户是否具有该权限,也可以根据用户的权限动态的显示页面上的模块。
5.2系统注册模块设计
图5.2系统注册界面
注册模块是用户从游客到会员的必经之道,只有注册的用户才能进行发表博文,提问题等一系列操作。
图5.2为注册页面。
首先,当用户输入用户名以后会去异步请求后台,验证该用户名是否已经注册,如果已经注册就禁止该用户名的重复注册,接着会对密码和重复密码进行有效性验证,判断两次密码输入是否一致,并作相应提示。
另外,还有对邮箱和手机的合法性验证,主要是使用了正则表达式。
其中,验证邮箱合法性的正则为:
/^\w+@\w+\.\w+$/,验证手机合法性的正则为:
/^(13[1-9]|15[5-9]|18[2-9])\d{8}$/。
这样就可以有效的避免用户的恶意输入。
最后注册成功后就会跳转到登陆界面,并且用户名输入框已经默认带有用户刚注册成功的用户名,方便了用户登陆。
5.3首页模块设计
登陆成功后进入首页,首页主要是对平台中内容的全面展示。
图5.3为系统首页:
图5.3系统首页
首先会有一个图片轮播,展示的是最新的博文中所夹带的图片,点击图片可以查看该博文详细,然后就是对热门博文以及各种类型博文的展示。
5.4博文模块设计
5.4.1浏览全部博文
点击导航栏的博文选项,首先会进入到全部博文的页面,上边显示的是根据发表时间的降序排列的所有博文的分页显示。
左侧有博文的各个分类,点击某个分类可以选择浏览具体分类的博文。
下方还有博文搜索的输入框,可以根据输入的关键字按照标题或博主搜索相关内容。
具体显示如图5.4:
图5.4博文纵览页
在blog.jsp中全部博文处只是一个空的div,页面上所显示的内容都是在页面刚开始加载时动态的去后台请求,然后数据返回到另外一个blogList.jsp的页面中进行组织,最后把整个页面加载进了刚才的空白div,代码如下:
$(document).ready(
function(){
$("#showDiv").load("/STUINFO/blog_findbytag.action?
timestamp="+(newDate()).getTime());});
5.4.2发表博文
点击博文页面中的发表博文按钮就会进入到发表博文的页面,在进入页面前,会判断当前有没有用户登陆,如果没有登陆就提示请登录然后跳转到登陆页面,这样可以有效避免游客的非法操作。
页面如图5.5:
图5.5发表博文页
其中用到了第三方插件ckeditor,这是一个富文本编辑器插件,可以取代原始的textarea文本域进行丰富的文本输入,在此基础上又额外添加了上传图片的功能,使发表的博文可以图文并茂,更加生动。
在标题框输入标题时,右上角的字数会实时的变化,提示用户当前的字数,如果超过最大值就会将输入框边框变为红色来提醒用户输入非法。
填写完毕,点击发表按钮,表单中的数据会提交到后台进行处理。
其中,为了避免用户的恶意js注入,对输入的内容进行了特殊字符转义处理,替换提交内容中的<,>,",&。
还要对博文内容进行解析,判断是否含有图片,如果包含则需要提取出来进行单独的图片上传和保存。
其中用到了正则表达式对内容中图片路径的格式进行匹配,正则表达式为:
\\bsrc=\"([^\"]+)\"。
代码如下:
//如果博文中包含
if(blogcontent.indexOf("
=-1){
IPicsBizpicsBiz=newPicsBizImpl();
Patternpattern=Ppile("\\bsrc
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 javaweb 学生 信息 交流 自主 管理 系统 设计 实现