javaweb毕业设计论文doc.docx
《javaweb毕业设计论文doc.docx》由会员分享,可在线阅读,更多相关《javaweb毕业设计论文doc.docx(33页珍藏版)》请在冰豆网上搜索。
javaweb毕业设计论文doc
摘要
计算机的出现带给人们的生产生活一次全新的革命,提高了人们的工作效率。
而计算机网络则给人们之间信息的交流带来了极大的便利,丰富了人们获取知识的途径。
现如今,远程教育在网络上大肆流行,由于其投资小,限制小及自由便利等特点广受人们的青睐。
本设计采用软件工程中结构化思想,采用标准的软件设计流程,从可行性研究、需求分析、系统设计以及系统实现和测试等步骤来开发网校系统,本文运用软件工程原理和软件开发方法,对本应用进行了概要设计和详细设计。
该应用操作简便、界面友好、灵活、实用、安全,可以满足不同爱好学习者的要求,本文详细介绍了网校系统上开发的设计背景,设计思路以及实现方法,着重说明了该应用的创新点、突破点、用户的体验要求和应用的实际运行情况。
围绕该应用的实际使用情况来对该应用进行分析设计。
关键词:
网校系统;远程教育;计算机;学习
ABSTRACT
Thecomputeristobringpeople'sproductionandlivinganewrevolution,toimprovepeople'sworkingefficiency.Thecomputernetworkistoexchangeinformationbetweenpeoplehasbroughtgreatconvenience,enrichingthewaypeopleacquireknowledge.Today,distanceeducationpandemiconthenetwork,becauseofitssmallinvestment,smallandrestrictedfreedomofconvenienceandsowellreceivedbypeopleofallages.
Thedesignusesastructuredsoftwareengineeringthinking,theuseofstandardsoftwaredesignprocess,fromfeasibilitystudies,needsanalysis,systemdesignandsystemimplementationandtestingstepstodevelope-campussystem,paperusessoftwareengineeringprinciplesandsoftwaredevelopmentmethods,thisapplicationoutlinedesignanddetaileddesign.Theapplicationissimple,user-friendly,flexible,practical,safe,lovinglearnersmeetdifferentrequirements,on-campuspaperdescribesthedesignofthesystemdevelopmentbackground,designideasandimplementation,highlightingtheinnovationsoftheapplication,breakingpoint,theuser'sactualoperationexperiencerequirementsandapplications.Aroundtheactualusageoftheapplicationtotheanalysisanddesignapplications.
Keywords:
Campussystem;distanceeducation;computers;learning
第一章概述
1.1系统的开发背景以及意义
1.1.1开发背景
计算机的出现带给人们的生产生活一次全新的革命,提高了人们的工作效率。
而计算机网络则给人们之间信息的交流带来了极大的便利,丰富了人们获取知识的途径。
现如今,远程教育在网络上大肆流行,由于其投资小,限制小及自由便利等特点广受人们的青睐。
1.1.2开发意义
所谓的网络教育或者网校,是在网络环境下,以现代的教育思想和学习理论为指导,充分发挥网络的各种教育功能和丰富的网络教育资源优势,向受教育者提供一种网络教和学的环境,传递数字化内容。
但由于学习系统设计质量参差不齐及理论研究欠缺等等。
网校作为一种与学习者交互最直接的工具,设计和开发一款运行稳定,界面美观的学习系统无疑变得非常迫切重要。
1.2系统的国内外研究以及应用情况
随着全球化趋势不断加强,在当今知识大爆炸的世界,如何更好的学习便尤为重要。
网校是通过互联网实现校外教学的完整过程;只要具备上网条件即可以在任何时间、任何地点接入互联网,自主地选择学习内容。
相对于面授教育而言,网络教育最大限度地突破了教育的时空限制,是师生分离、非面对面组织的教学活动,是一种跨学校、跨地区的教育体制和教学模式。
1.3系统目标以及主要内容
1.建立起学校的网上名片,塑造基于互联网的学校教育品牌形象;
2.建立起教学信息和资源的网上便捷共享平台,实现教育教学资源的有效整合;
3.良好的资讯展示形式,实现校务信息、资讯的透明公开;
4.建立多种教学基地,实现多种手段辅助教学(如:
视频教学、PPT教学)
5.健全学校网校安全机制,保证信息的安全与可读性;
6.提高用户浏览、使用体验。
1.4系统要解决的问题
对前台的美化、布局。
以及jquery,Ajax,easeui等前台框架的应用,并能很好的掌握前后台的交互;根据该系统自主学习的特征,重点对支持自主互动学习环境进行设计,主要内容包括:
教学计划,教学大纲,课程选择,重点难点,在线自测,上传下载,答疑系统,常见问题FAQ,留言表,调查表等
第二章系统的架构
2.1系统开发平台
系统的开发是在Tomcat环境下进行的。
Tomcat是一个免费的开源的Servlet容器,它是Apache基金会的Jakarta项目中的一个核心项目,由Apache,Sun和其它一些公司及个人共同开发而成。
由于有了Sun的参与和支持,最新的Servlet和Jsp规范总能在Tomcat中得到体现。
Tomcat被JavaWorld杂志的编辑选为2001年度最具创新的Java产品,可见其在业界的地位。
Tomcat的环境主要有以下几方面技术优势:
1.Tomcat中的应用程序是一个WAR(WebArchive)文件。
WAR是Sun提出的一种
Web应用程序格式,与JAR类似,也是许多文件的一个压缩包。
2.在Tomcat中,应用程序的部署很简单,你只需将你的WAR放到Tomcat的webapp
目录下,Tomcat会自动检测到这个文件,并将其解压。
3.Tomcat不仅仅是一个Servlet容器,它也具有传统的Web服务器的功能:
处理html页面。
4.Tomcat也可以与其它一些软件集成起来实现更多的功能。
2.2系统的运行环境
操作系统:
WindowsXP以上版本。
服务器软件:
Tomcat6.0以上版本。
浏览器:
IE、FireFox、GoogleChrome。
2.3技术路线
在与其他同类编程语言想比较之下,Java具有开发速度快、可移植、面向对象、可扩展性强、开源自由等特点,逐渐成为web开发领域的主流技术。
就本设计而言,用户通过浏览器访问本系统,高效的执行效率是提高用户体验的重要因素。
选择用CSS+HTML+easyUI设计界面,一些特别的显示效果使用JavaScript和jQuery等技术实现了一个很好的用户界面。
基于Struts2+Spring+Hibernate架构目前已经成为J2EE轻量级架构开发的主题,struts最为基于MVC设计模式的web应用的一种典型体现,借助标签、动态表单等相关技术,使项目实现的更简单,更高效,更方便。
Spring提供了一种轻量级Ioc容器,该容器负责创建、管理应用组建。
Hibernate是采用ORM映射机制的持久层开发工具,它是Java应用和关系数据库之间的桥梁,负责Java对象和关系数据的映射。
采用SSH架构快速构建web系统,能使系统结构清晰,同时具备很好的可扩展性和可维护性,大大提高了web系统的可重用性。
第三章系统的功能和设计
3.1系统功能模块概述和分析
系统包括前台和后台两部分:
1.后台部分:
系统管理:
管理员管理、会员管理、教师管理、学校管理、角色管理
资源管理:
一级分类管理、二级分类管、三级分类管理、课程管理、课时管理
个人设置:
修改个人信息、修改密码
前台管理:
FAQ分类管理、FAQ问题管理、调查表管理、调查表问题管理
后台部分的组织结构图如图3-1所示:
图3-1后台结构图
2.前台部分:
登录、注册;课程选择;在线自测;调查表;FAQ;答疑系统
前台部分的组织结构图如图3-2所示:
图3-2前台结构图
3.2系统功能模块设计
3.2.1前台设计与实现
1.登录、注册
用户可以浏览信息,但要参与学生必须登录,没有账号可以注册,若注册后忘记密码,系统会通过电子邮件的方式给会员找回密码。
2.课程选择
用户可以根据一级分类、二级分类、三级分类以及课程名称、上课老师等信息检索所需要的课程信息。
3.在线自测
会员学习完课程后可以选择进行在线自测。
4.调查表
会员可以参加系统的调查表,将不满意的信息反馈。
5.FAQ
常见问题专门解答。
3.2.2后台设计与实现
1.系统管理:
实现对管理员管理、会员管理、教师管理、学校管理、角色管理的添加、删除、修改、查询,同时超级管理员可以对普通管理员分配权限;上传图片等。
2.资源管理:
实现一级分类管理、二级分类管、三级分类管理、课程管理、课时管理的添加、删除、修改、查询
3.个人设置:
修改个人信息、修改密码
4.前台管理:
FAQ分类管理、FAQ问题管理、调查表管理、调查表问题管理,同时可以对调查表进行图表分析
3.4程序代码设计
3.4.1数据访问层的代码封装
/**
*baseDao的实现类
*@authorlujiangfei
*
*@param
*/
publicclassBaseDaoImplimplementsBaseDao{
privateClassclazz=null;
@Resource
privateSessionFactorysessionFactory;
@SuppressWarnings("unchecked")
publicBaseDaoImpl(){
//通过反射得到T的真实类型
ParameterizedTypept=(ParameterizedType)this.getClass().getGenericSuperclass();//得到带泛型的超类
this.clazz=(Class)pt.getActualTypeArguments()[0];
}
@Override
publicvoidsave(Tentity){
getSession().save(entity);
}
@Override
publicvoiddelete(Integerid){
getSession().delete(getSession().get(clazz,id));
}
@Override
publicvoidupdate(Tentity){
getSession().update(entity);
}
@SuppressWarnings("unchecked")
publicTgetById(Integerid){
if(id==null){
returnnull;
}
return(T)getSession().get(clazz,id);
}
@SuppressWarnings("unchecked")
publicListgetByIds(Integer[]ids){
returngetSession()
.createQuery("from"+clazz.getSimpleName()+"whereidin(:
id)")//
.setParameterList("id",ids)//
.list();
}
@SuppressWarnings("unchecked")
publicListgetAll(){
returngetSession().createQuery("from"+clazz.getSimpleName()).list();
}
protectedSessiongetSession(){
returnsessionFactory.getCurrentSession();
}
@Override
publicPageBeangetPageBean(intpageNum,HqlHelperhqlHelper){
intpageSize=Configuration.getPageSize();
List
//查询本页的数据列表
QuerylistQuery=getSession().createQuery(hqlHelper.getQueryListHql());
if(parameters!
=null&¶meters.size()>0){//设置参数
for(inti=0;ilistQuery.setParameter(i,parameters.get(i));
}
}
listQuery.setFirstResult((pageNum-1)*pageSize);
listQuery.setMaxResults(pageSize);
Listlist=listQuery.list();//执行查询
//查询总记录数
QuerycountQuery=getSession().createQuery(hqlHelper.getQueryCountHql());
if(parameters!
=null&¶meters.size()>0){//设置参数
for(inti=0;icountQuery.setParameter(i,parameters.get(i));
}
}
Longcount=(Long)countQuery.uniqueResult();//执行查询
returnnewPageBean(pageNum,pageSize,list,count.intValue());
}
@Override
publicvoiddeleteByIds(Integer[]ids){
for(inti=0;ithis.delete(ids[i]);
}
}
}
/**
*basedao封装操作数据库的基本方法
*@authorlujiangfei
*
*@param
*/
publicinterfaceBaseDao{
/**
*添加
*@paramentity
*/
voidsave(Tentity);
/**
*删除
*@paramid
*/
voiddelete(Integerid);
/**
*批量删除
*@paramids
*/
voiddeleteByIds(Integer[]ids);
/**
*更新
*@paramentity
*/
voidupdate(Tentity);
/**
*取得
*@paramid
*@return
*/
TgetById(Integerid);
/**
*根据Ids取得list
*@paramids
*@return
*/
ListgetByIds(Integer[]ids);
/**
*获取
*@return
*/
ListgetAll();
/**
*获取分页的信息
*@parampageNum
*@paramhqlHelper
*@return
*/
PageBeangetPageBean(intpageNum,HqlHelperhqlHelper);
}
3.4.2.通用工具类
publicclassJsonUtil{
/**
*将对象转换成json
*@paramo
*@paramstr
*@return
*/
publicstaticStringconvert2Json(Objecto,String...str){
JsonConfigconfig=newJsonConfig();
config.setExcludes(str);
returnJSONArray.fromObject(o,config).toString();
}
/**
*Map工具类,快速构造map
*@authorlujiangfei
*
*/
publicclassMaps{
/**
*功能描述:
构造一个HashMap,key为String,value为Object
*@paramkeyValues键1:
值1,键2:
值2的数组结构,注意key必须为String类型
*@return
*/
publicstaticMapcreate(Object...keyValues){
returncreate(String.class,keyValues);
}
/**
*功能描述:
构造一个HashMap
*@paramkeyType构造map的key的类型
*@paramkeyValues键1:
值1,键2:
值2的数组结构
*@return
*/
@SuppressWarnings("unchecked")
publicstaticMapcreate(ClasskeyType,Object...keyValues){
Mapmap=newHashMap();
for(inti=0;imap.put((T)keyValues[i],keyValues[i+1]);
i++;
}
returnmap;
}
}
3.4.3相关配置文件
struts.xml配置信息
--开发模式,重新加载文件-->
--配置扩展名-->
--设置编码,可以不写,默认为UTF-8-->
--配置主题-->
--让OGNL中可以使用静态的方法-->
--声明一个拦截器-->
--重新定义defaultStack拦截器栈,需要先判断权限-->
--全局配置-->
/WEB-INF/jsp/adminAction/loginUI.jsp
/success.jsp
/noPrivilegeError.jsp
--主页面配置-->
/WEB-INF/jsp/homeAction/{1}.jsp
--管理员配置-->