已阅读5页,还剩27页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
本科生毕业设计(论文)(2013届)设计(论文)题目基于Struts技术的教育培训网站管理系统实现作者姚博钦分院经济管理分院班级电子商务092指导教师(职称)苏丹娣(讲师)_论文字数8419论文完成时间2013年4月3日_杭州师范大学钱江学院教学部制基于Struts技术的教育培训网站管理系统实现电子商务专业092班姚博钦指导教师苏丹娣摘要:本文先系统分析了MVC模式在网站开发方面的优势,然后针对教育培训网站管理系统进行了需求分析,并进行了系统设计,包括数据库设计、持久层、业务逻辑层和表现层的设计,最后简述了系统所涉及到的关键技术,最终设计并实现了一个基于Struts技术的教育培训网站管理系统。关键词:MVC;Struts;管理系统TheDesignandImplementationofEducationtrainingWebsitemanagementsystemBasedonStrutsE-Commerceclass092YAOBo-qinInstructor:SUDan-diAbstract:ThispaperfirstlyanalysestheadvantagesofMVCpatterninwebsitedevelopment,thendoestheRequirementsAnalysisandtheDesigningofanEducationtrainingWebsitemanagementsystem.ThedesigningcontainsDatabasedesigning,Biz,PersistenceandPresentationdesigning.Finally,thispaperoutlinesthekeytechnologiesandinvokestheimplementationofthiswebsite.Keywords:MVC;Struts;managementsystem目录一、引言(一)选题的背景.1(二)选题的意义.1二、相关概念(一)J2EE平台.1(二)MVC.1(三)Struts框架.1三、系统分析(一)系统需求分析.2(二)系统数据流程.3(三)系统开发环境.4四、系统总体构架(一)系统框架结构设计.4(二)系统总体设计.5(三)数据库设计.7(四)业务逻辑层设计.9(五)表现层设计.12五、系统关键技术的实现(一)加密解密技术.13(二)过滤器技术.14(三)分页技术.15六、结语参考文献基于Struts技术的教育培训网站管理系统实现电子商务专业092班姚博钦指导教师苏丹娣一、引言(一)选题的背景网站信息管理系统主要是为了实现网上信息实时动态显示及管理的系统。一般在商务系统的开发中,都会设置相应的新闻中心模块,该新闻中心模块能及时提供最新的资讯,并且应该在显示某条新闻的同时,列出所有的相关新闻,以便于客户在最短的时间内获取最新最全的信息。鉴于web系统的跨平台性、可扩展性以及程序代码的重用性,本文采用J2EE平台和Struts框架技术来开发整个系统,分为四层结构:(1)数据资源层;(2)业务逻辑层;(3)控制层;(4)表示层。从Java编程语言拥有“一次编写,各处运行”的特点,同时Java作为目前最为广泛的网络编程语言,它还具有简单、面向对象、稳定、与线程无关、动态等特点。MVC模式以其独特的优势给我的网站的开发、维护甚至是网站功能的扩展带来了很大的方便。MVC是一种先进的设计模式,在对电子商务网站进行设计的过程中,该模式把该应用的输入、处理、输出流程按照Model、View、Controller的方式进行分离。MVC是web应用系统中一种常用的设计模式,在使用MVC模式构建网上购物平台时,可以使得各层次清晰分离,同时也有利于系统的扩展和维护,提高了系统灵活性、复用性和可维护性。(二)选题的意义Struts是一种基于MVC设计模式的框架,是MVC模式在JAVA开发中的应用典范,Struts框架为Web应用提供了一个通用的框架,这样开发人员可以把精力集中在如何解决实际问题上。在Web快速发展的今天,网站的建设起着非常重要的作用,好的设计模式更是能够提高系统的可用性。为了能够更好地掌握教育类网站的特点以及设计该类网站的方法,同时更深入地理解MVC设计模式的优势。在本题中我将采用Struts框架构建一个小型的教育培训网站。二、相关概念(一)J2EE平台J2EE表示企业版Java2平台,是使用Java技术开发企业级WEB应用的一种事实上的工业标准。通过这个平台可以将多种面向服务的应用都包含在一个框架中,也称之为容器,每个框架中又包含用于实现各种功能的若干组件。在J2EE中最常用的容器就是WEB容器或称为WEB服务器,里面最核心的两个组件就是JSP和SERVLET。而Struts就是基于这两种技术,依赖于WEB容器。(二)MVCMVC模式即Model-View-Controller(模型-视图-控制)的简写,它是一种软件设计模式。是XeroxPARC为编程语言SmallTalk-80所设计的一种设计模式,该模式把输入、输出和处理分成独立的处理模块,并在系统运行时将其结合,这样使得程序开发的耦合度非常低。1.模型层(Model)模型层是一个应用系统的核心,它封装了应用系统的数据结构和业务处理逻辑,能够体现业务的状态和状态的变迁。在模型层中体现的数据与表现格式无关,这样一个模型层就能为多个视图层提供数据。从而增加了程序的复用性。2.视图层(View)视图层主要负责用户界面的生成,显示从模型层中得到的数据,发送用户请求给控制器等等。一般情况下,当模型层中的数据发生变化时,视图层会得到相应并将变化表现出来,而模型层中需要的一些参数也往往从视图层当中得到并由控制器转发给模型层。3.控制层(Controller)控制器负责提取视图层传输进来的外部信息,并将其转化成相应事件,对模型层进行更新,同时,模型层数据的更新与修改也将通过控制器来通知视图,从而保持视图层与模型层的动态一致性。通过这种方式,控制器在模型层和视图层之间起到沟通作用,从而实现它们两者的松散耦合。虽然MVC模式早在20年前就被提出,但在应用到WEB开发中却不是十分的顺利,这是因为当时的技术很难做到程序代码和网络页面代码之间的分离,直到JavaServerPage(下文中简称JSP)的诞生以及SUN公司推出了相应的规范后才使得MVC这一设计模式发生了质的改变,从此成为WEB应用开发当中不可或缺的一个组成部分,最近几年,MVC模式已经被SUN公司推荐为J2EE开发的首选模式,并且在网络编程方面,如JSP,PHP都热衷于采用此模式进行开发。(三)Struts框架Java开发WEB应用服务系统有多种符合MVC开发方式的组件及框架组合,在本项目中是使用JSP作为开发模型(Model),以Struts框架作为开发控制器(Controller,以JDBC作为应用服务程序与用户交互的界面(View)。Struts的核心是一个弹性的控制层,基于如JavaServlets,JavaBeans与XML等标准技术,以及JakartaCommons的一些类库。结合Struts框架的MVC模式处理过程是:其中控制器部分由Struts的ActionServlet类和Action类来实现,在客户提交请求后,首先由前端控制器ActionServlet类接收,它将不同的请求传递给不同的后端控制器Action类来进行处理,请求的URL和后端控制器的映射关系在配置文件struts-config.xml中的里面设置,并返回JSP类型的视图格式。三、系统分析(一)系统需求分析本文所设计的教育培训网站管理系统包括管理员模块,课程管理模块、版块管理模块、报名留言模块等子系统。管理员模块主要包括管理员登录,修改密码。课程管理模块主要包括课程资料的管理(增加、删除、修改、查找)。版块管理模块主要包括各个新闻版块之间的分类管理。报名留言模块主要包括用户的在线报名留言功能。图3-1系统功能结构图(二)系统数据流程(1)管理员模块管理员登陆:管理员在后台需要登陆再进行各项操作。管理员修改密码:可在登陆后修改密码。(2)课程管理模块企业需要对课程的信息进行及时的更新和修改才能让顾客了解到最新的信息,该子系统的使用者是网站的管理员,实现以下功能:课程增加:按照事先制定的规范输入课程信息,将新的课程加入到网站的显示列表当中。课程查询:罗列出课程列表,以便管理员浏览全部课程的信息。课程删除:将不再开办的课程从网站的课程列表中删除,减轻网站压力。课程修改:管理员可以对课程各种属性进行修改,以适应企业不断更新的各种课程开办策略。课程模块还将包括目录管理系统。(3)版块管理模块网站有许多的子版块需要添加和管理,用以发布不同类别的新闻。版块增加:按照事先制定的规范输入版块信息,将新的版块加入到网站的显示列表当中。版块查询:罗列出版块列表,以便管理员浏览全部版块的信息。版块删除:将不再需要的版块从网站的版块列表中删除,减轻网站压力。版块修改:管理员可以对版块各种属性进行修改,以适应企业不断更新的版块。(4)报名留言模块用户可进行在线报名和留言,以便网站可以搜集到用户的信息,以便接下来开展工作。在线报名及留言:用户可在前台页面按提示完成报名及留言,提交后管理员可在后台查看报名信息。(三)系统开发环境(1)Windows2000以上的操作系统这是主要的软件,此系统开发过程在除了文档的编写,其它的工作都在操作系统中进行,它是现在所有初级学者的操作系统工具,在开发过程中担任重要的任务。(2)MacromediaDreamweaverCS4页面编辑器MacromediaDreamweaverCS4是建立Web站点和应用程序的专业工具。它将可视布局工具、应用程序开发功能和代码编辑支持组合在一起,其功能强大,使得各个层次的开发人员和设计人员都能够快速创建界面吸引人的基于标准的网站和应用程序。(3)MySQL数据库开发软件MySQL是一个关系型数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。(4)MyEclipse8.5开源软件Eclipse是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。Eclipse附带了一个标准的插件集,包括Java开发工具(JavaDevelopmentTools,JDT)。四、系统设计(一)系统框架结构设计下图3-1是Struts框架结构图:图4-1Struts框架结构图在本设计中,是这样应用Struts框架的:1.在strut-config.xml文件中配置,用来控制页面的跳转路径,把网站的跳转路径以及整体结构写在一个配置文档中,既方便开发,也方便维护,大大提高工作效率,以及清晰的理清了网站的业务逻辑结构,对网站有一个宏观的描述。结构层次分明,高可重用性,增加了程序的健壮性和可伸缩性,便于开发与设计分工,提供集中统一的权限控制、校验、国际化、日志等。2.与其他技术和框架具有很好的融合性。为日后与Spring、hibernate等框架的接入提供了很好的借口,方便网站进行更进一步的拓展以及功能开发。3.视图层中,使用Struts框架中的标签库代替原有的HTML标签,这样能够让页面更加简洁,保证了该网站良好的可维护性。(二)系统总体设计表示层Struts-MVCActionServletStrutsAction业务逻辑层BizClass持久层JDBCServiceDAOMVC是一种设计思想,而不是技术,Struts是MVC模式的一种实现,是典型的J2EE三层结构,分为表现层、中间层(业务逻辑层)和持久层。三层体系将业务规则、数据访问及合法性校验等工作放在中间层处理。客户端不直接与数据库交互,而是通过组件与中间层建立连接,再由中间层与数据库交互。图4-2系统功能类图图4-3后台管理系统图图4-4前台首页效果图(三)数据库设计1、数据库设计application表结构表列名数据类型约束applicationIDInt(10)主键,自增长childNameVarchar(50)非空contentVarchar(200)非空telInt(10)非空gradeVarchar(50)courseVarchar(50)非空course表结构表列名数据类型约束courseIDInt(10)主键,自增长courseNameVarchar(50)非空crowVarchar(50)imgVarchar(50)contentVarchar(5000)非空scienceIDInt(10)gradeIDInt(10)admin表结构表列名数据类型约束adminIDInt(10)主键,自增长adminNameVarchar(50非空usernameVarchar(50非空passwordVarchar(50非空info表结构表列名数据类型约束infoIDInt(10)主键,自增长classIDInt(10)外码titleVarchar(100)非空imgVarchar(50)contentVarchar(5000)publicDateVarchar(50)非空topInt(10)statuInt(10)class表结构表列名数据类型约束classIDInt(10)主键,自增长classNameInt(10)外码orderInt(10)非空showBit(10)图4-5数据库关系图整个网站的核心功能在于版块管理模块。该模块中的info表设定了置顶、状态等字段,方便了系统的拓展以及不同需求下的数据调用,而class表则将info表中的内容进行了分类管理,并设定了顺序、是否显示等字段,来满足系统维护过程中的各种需求。而网站的另一个功能模块为课程管理模块,其中课程ID以及年级ID两个字段,将各门课程进行了很好的归类,方便用户按照具体的需求进行查询。2、持久层设计连接池是被j2ee服务器打开和维护的对应的JDBC驱动程序连接池一般比直接连接更有优越性因为它提高了性能的同时还保存了宝贵的资源。打开数据库连接时CPU和网络的重要任务,因此,在整个应用程序的使用过程当中重复的打开直接连接将导致性能的下降。而池连接只在服务器启动时打开一次,从而消除了这种性能问题。另外,因为连接只用于很短的时间,所以,连接可以被有效共享,而且有关连接参数的特有信息,只对池驱动程序有效,如数据库用户名称和密码,从而增强了系统的安全性和可管理性。使用JDBC来完成持久层的开发1.连接Mysql数据库2.创建与数据源的连接:3.查询数据库:创建Statement对象并执行SQL语句以返回一个ResultSet对象4.获取当前记录集中的某一记录的各个字段的值:5.关闭结果集,关闭查询语句,断开与数据库的连接。(四)业务逻辑层设计用于做一些有效性验证的工作,以更好的保证程序运行的健壮性。如完成数据添加、修改和查询业务等。业务逻辑层在体系架构中的位置很关键,它处于数据访问层与表示层中间,起到了数据交换中承上启下的作用。根据Acion层反馈得到的数据,Biz层对业务逻辑进行数据的计算之后,调用连接池对数据库进行访问与修改,完成表现层与持久层之间的连接。图4-6业务逻辑层类图现列举InfoBiz,说明代码设计:其中包含了增删改查等相关业务,其中查包括了“查询所有信息”、“按照ID号进行查找”;而更改包括了“更改除所有图片外所有字段信息”以及“更改图片信息”。/增加信息publicbooleanadd(InfoForminfo,intclassID)Stringtitle=info.getTitle();Stringimg=info.getImg();Stringcontent=info.getContent();StringpublicDate=info.getPublicDate();inttop=info.getTop();Stringsql=insertintoinfo(title,classID,img,content,publicDate,top)values(+title+,+classID+,+img+,+content+,+publicDate+,+top+);booleanflag=false;trycontrolDB.executeUpdate(sql);flag=true;catch(Exceptione)e.printStackTrace();returnflag;/查找所有信息publicListselectAll(intclassID)Listlist=newArrayList();Stringsql=select*frominfowhereclassID=+classID+orderbypublicDatedesc;trylist=controlDB.executeQueryInfo(sql);catch(Exceptione)e.printStackTrace();returnlist;/按infoID查找publicInfoFormselectByID(InfoForminfo)Stringsql=;Listlist=newArrayList();sql=select*frominfowhereinfoID=+info.getInfoID();trylist=controlDB.executeQueryInfo(sql);catch(Exceptione)e.printStackTrace();If(list.get(0)!=null)returnlist.get(0);/删除信息publicbooleandelete(InfoForminfo)booleanflag=false;Stringsql=deletefrominfowhereinfoID=+info.getInfoID();trycontrolDB.executeUpdate(sql);flag=true;catch(Exceptione)e.printStackTrace();returnflag;/info表数据库更新publicbooleanupdate(InfoForminfo)Stringsql=updateinfosettitle=+info.getTitle()+,classID=+info.getClassID()+,content=+info.getContent()+,top=+info.getTop()+whereinfoID=+info.getInfoID()+;booleanflag=false;trycontrolDB.executeUpdate(sql);flag=true;catch(Exceptione)e.printStackTrace();returnflag;/infoimg更新publicbooleanupdateimage(InfoForminfo)Stringsql=updateinfosetimg=+info.getImg()+whereinfoID=+info.getInfoID()+;booleanflag=false;trycontrolDB.executeUpdate(sql);flag=true;catch(Exceptione)e.printStackTrace();returnflag;(五)表现层设计表现层在整个网络程序中负责与用户进行交互,处理的工作主要分为两类,首先是用户输入数据的录入,其次是将经过程序处理完的数据通过视图的方式呈现在用户面前,在本网站程序中,该层主要使用JSP+JavaScript+Struts开源框架中的Form类以及其中的标签库进行实现,其中JSP负责页面的显示。Form类主要用来封装用户的输入同时对其进行相应的服务器端验证,标签库主要用于简化JSP页面中的HTML代码,以便日后的维护。在本网站设计当中,所有的JSP页面都将被放置到网站程序的页面有WEB-INF文件夹下,配合过滤器的使用来避免用户跳过网站流程直接从地址栏输入网址跳转到一些需要经过用户验证才能到达的页面,这样做很好的加强了网站的安全性。表现层的主要页面模块有:版块管理模块、课程管理模块、报名留言管理、系统管理模块。页面中,通过C标签对后台数据进行输出,例如信息列表页面:使用c:foEach标签对信息进行遍历输出,页面列出所有符合条件的信息。是否编辑删除图4-7最终页面的呈现效果五、系统实现关键技术(一)加密解密技术MD5的全称是Message-DigestAlgorithm5(信息-摘要算法),在90年代初由MITLaboratoryforComputerScience和RSADataSecurityInc的RonaldL.Rivest开发出来,经MD2、MD3和MD4发展而来。MD5是让大容量信息在用数字签名软件签署私人密匙前被压缩成一种保密的格式(就是把一个任意长度的字节串变换成一定长的大整数)。不管是MD2、MD4还是MD5,它们都需要获得一个随机长度的信息并产生一个128位的信息摘要。虽然这些算法的结构或多或少有些相似,但MD2的设计与MD4和MD5完全不同,那是因为MD2是为8位机器做过设计优化的,而MD4和MD5却是面向32位的电脑。这三个算法的描述和C语言源代码在InternetRFCs1321中有详细的描述,这是一份最权威的文档,由RonaldL.Rivest在1992年8月向IETF提交。m管理员在登录时、修改密码时,会调用MD5加密文件,对密码进行加密处理,防止密码在传输过程中被截包,被他人获取。/MD5加密publicStringmd5(Stringstu)Stringresult=;if(null!=stu)tryMessageDigestm=MessageDigest.getInstance(MD5);m.update(stu.getBytes(UTF8);bytes=m.digest();for(inti=0;iDoFiltercom.supertoday.filter.DoFilterDoFilter/manager/admin/*EncodingFiltercom.supertoday.filter.EncodingFilterEncodingFilter*.do(三)分页技术由于应用中的数据量较大,不可能把所有的数据都显示在一页,所以需要把从数据库中获取的数据进行限定,即分页查询。以下是分页查询在页面上的显示效果,如图5-1所示。图5-1后台分页查询效果图而在代码的实现上,首先是在Biz层添加两个方法,分别用于获取最初页,分页查询所有信息和获取总记录数。InfoBiz中的相关代码如下。/获取最初页publicstaticintgetStartOfPage(intpageNo,intpageSize)return(pageNo-1)*pageSize=0?0:(pageNo-1)*pageSize;/分页查询所有LED信息publicMapselectAll(intpage,intpagesize,intclassID)Mapmap=newHashMap();intindex=InfoBiz.getStartOfPage(page,pagesize);Listlist=newArrayList();Stringsql=select*frominfowhereclassID=+classID+orderbypublicDatedesclimit+index+,+pagesize;StringcountSQL=selectcount(*)frominfowhereclassID=+classID;/System.out.println(sql);trylist=controlDB.executeQueryInfo(sql);map.put(data,list);/获取总记录数inttotalCount=controlDB.executeQueryCount(countSQL);map.put(totalCount,totalCount);/根据总记录数和每页大小确定总页数inttotalPage=0;if(totalCount%pagesize=0)totalPage=totalCount/pagesize;elsetotalPage=totalCount/pagesize+1;map.put(totalPage,totalPage);catch(Exceptione)e.printStackTrace();returnmap;在ControlDB中编写计算相对应表中的数据的方法,在Biz层中,每次进行分页信息展示前,先调用该方法进行记录总个数的查询,并设置好每页显示个数,并计算出相对应的总页数,当前页数等,并将信息记录在HashMap中。/适应于selectcount(*)fromxxxtable;publicintexecuteQueryCount(Stringsql)throwsExceptiontrycon=ConnectionFactory.getConnection();stmt=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);rs=stmt.executeQuery(sql);while(rs.next()returnrs.getInt(1);catch(Exceptione)throwe;finallyDatabaseUtils.closeObject(rs,stmt,con);return0;完成业务层的代码之后,在Action中调用业务层有关分页的代码。Action中的关键代码如下。Objectpage=request.getParameter(page);/Objectsize=request.getParameter(size);/自定义每页大小Listlist=null;InfoForminfo=(InfoForm)form;intpagesize=5;/每页个数intclassID=info.getClassID();HttpSessionsession=request.getSession();session.setAttribute(classID,classID);if(null!=page)Mapmap=infoBiz.selectAll(Integer.parseInt(page.toString(),pagesize,classID);list=(List)map.get(data);request.setAttribute(totalPage,map.get(totalPage);elselist=infoBiz.selectAll(classID);六、结语本网站系统具有以下几个特点:1、本网站系统使用JAVA语言进行开发,加强电子商务系统的安全性。在JAVA语言当中,数据类型的定义非常清晰,本网站系统使用到了多种多样的数据类型,使用JAVA语言进行开发使得本网站系统中数据在传输的过程中良好的安全性得到了保证,同时在开发是避免
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年上海杨浦区复旦附小分校二年级数学质量冲刺单元测试题库及答案
- 2025年导游招聘面试题库及参考答案
- 2025年绩效教练招聘面试题库及参考答案
- 2025年刑事律师招聘面试参考题库及答案
- 2025年初级财务管理招聘面试题库及参考答案
- 疾控护士考试题库及答案
- 2025年工程项目专员招聘面试参考题库及答案
- 2025年招投标经理招聘面试题库及参考答案
- 贵阳教师考编题库及答案
- 2025年航空公司乘务员招聘面试参考题库及答案
- 诊所信息安全管理制度
- 新生儿戒断综合征评分标准
- 鼻出血的课件
- 汽车行业发展概况及趋势
- 五年级家长会方案
- 二零二五年度健康管理中心特许经营授权书
- 钢结构安装专项施工方案
- 2019年内蒙古对口升学语文原试卷
- 土地整治项目验收手册
- 粤教版八年级上册地理总复习资料
- 2025年黑龙江省普通高中学业水平合格性考试英语试题(含答案无听力原文及音频)
评论
0/150
提交评论