毕业论文-基于SSH框架的定岗实习平台的设计与实现.doc

上传人:韩长文 文档编号:3940855 上传时间:2019-10-10 格式:DOC 页数:17 大小:134.02KB
返回 下载 相关 举报
毕业论文-基于SSH框架的定岗实习平台的设计与实现.doc_第1页
第1页 / 共17页
毕业论文-基于SSH框架的定岗实习平台的设计与实现.doc_第2页
第2页 / 共17页
毕业论文-基于SSH框架的定岗实习平台的设计与实现.doc_第3页
第3页 / 共17页
毕业论文-基于SSH框架的定岗实习平台的设计与实现.doc_第4页
第4页 / 共17页
毕业论文-基于SSH框架的定岗实习平台的设计与实现.doc_第5页
第5页 / 共17页
点击查看更多>>
资源描述

《毕业论文-基于SSH框架的定岗实习平台的设计与实现.doc》由会员分享,可在线阅读,更多相关《毕业论文-基于SSH框架的定岗实习平台的设计与实现.doc(17页珍藏版)》请在三一文库上搜索。

1、摘 要2关键词: Struts2、Spring、Hibernate、顶岗实习2引言3第一章41 关键技术41.1软件环境41.2硬件环境51.3 Spring简介51.4 Hibernate简介71.5 Struts2简介8第二章92 基于SSH框架的顶岗信息处理平台管理系统的实现92.1 Spring的应用112.2 Struts 的应用11总结16参考文献17摘 要近些年来,随着计算机的普及与发展,“Internet”一词已经让我们不再感到陌生,随着E时代的到来,新的理念和结构也在不断的形成和完善,计算机网络技术的发展对人类技术史的发展产生了不可磨灭的深远影响。计算机网络技术的发展推动了人

2、类的科学技术的发展,同时给人们的学习,工作和生活带来了诸多的好处,特点主要体现在以下几个方面: 快捷性、自由性、开放性、互动性、创新性。伴随着计算机网络技术的迅猛发展和广泛应用,人类进入了全新的网络经济时代。信息化、数字化、全球化、网络化应是21新世纪人类社会的重要特征,其中,以计算机网络迅猛发展而形成的网络化则是推动信息化、数字化和全球化的基础和核心。计算机网络技术的发展将以其融合一切现代先进信息技术的特殊优势而在21世纪形成一场崭新的信息技术革命,并进一步推动社会信息化和知识经济的发展。而计算机网络系统和相关技术也必将在21世纪社会信息化和知识经济浪潮中更快更大的发展。本文采用了当今比较流

3、行的框架Struts2+Spring+ Hibernate的系统结构,结合高职高专人才培养模式,依托第三方软件平台,成功开发融学习、资源共享、交流为一体的顶岗实习信息处理平台学生管理系统。系统完成从功能测试和管理实践的经验积累,运行稳定,达到预期效果,为下一阶段学生管理工作提供有益的思路,有很好的现实意义。关键词: Struts2、Spring、Hibernate、顶岗实习引言随着大学学生毕业人数的增加及学校对顶岗实习生要求的提高,社会越来越重视将构建学生各类信息化管理软件,集成到一个适应的软件集成平台中,这也是该处理平台开发的目的。软件行业的工业化趋势导致了构件的产生,让部分软件能够像硬件系

4、统那样组合起来构建软件系统,就实现了软件的复用。若能结合系统的实际情况,充分利用已有的软件构件,将会大大提高生产效率,减少大量的重复劳动。因此,为了方便构件的管理和复用,解决传统的软件开发模式中通用性差、柔性低、开发效率低等一系列问题,采用“高内聚,低耦合”的成熟框架Stmts+S研ng+Hibemate(简称SSH框架)来进行构件库管理系统的开发,以达到软件复用的目的。第一章1 关键技术Struts、Spring、Hibernate是三个既相互独立又彼此关联的框架,它们可以无缝地整合起来构建灵活、易于扩展的多层Web应用程序,Struts用来实现表示层,Spring实现业务层,Hibemat

5、e实现持久层。图1. Struts、Spring、Hibernate关系图1.1软件环境操作系统要求:Windows98、2000、XP浏览器版本要求:IE6以上。开发平台:MyEclipse 6.6 数据库:MysqlWEB服务:Tomcat6.0主要技术:Spring、Hibernate、Struts2.0、JfreeChart1.2硬件环境处理器:1.5GHz主频以上硬盘:40G以上内存:512MB以上。1.3 Spring简介Spring是一个开源框架,它由Rod Johnson创建。它是为了解决企业应用开发的复杂性而创建的。Spring使用基本的JavaBean来完成以前只可能由EJ

6、B完成的事情。然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。目的:解决企业应用开发的复杂性功能:使用基本的JavaBean代替EJB,并提供了更多的企业应用功能范围:任何Java应用简单来说,Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。轻量从大小与开销两方面而言Spring都是轻量的。完整的Spring框架可以在一个大小只有1MB多的JAR文件里发布。并且Spring所需的处理开销也是微不足道的。此外,Spring是非侵入式的:典型地,Spring应用中的对象不依赖于Spring

7、的特定类。 控制反转Spring通过一种称作控制反转(IoC)的技术促进了松耦合。当应用了IoC,一个对象依赖的其它对象会通过被动的方式传递进来,而不是这个对象自己创建或者查找依赖对象。你可以认为IoC与JNDI相反不是对象从容器中查找依赖,而是容器在对象初始化时不等对象请求就主动将依赖传递给它。面向切面Spring提供了面向切面编程的丰富支持,允许通过分离应用的业务逻辑与系统级服务(例如审计(auditing)和事务(transaction)管理)进行内聚性的开发。应用对象只实现它们应该做的完成业务逻辑仅此而已。它们并不负责(甚至是意识)其它的系统级关注点,例如日志或事务支持。 容器Spri

8、ng包含并管理应用对象的配置和生命周期,在这个意义上它是一种容器,你可以配置你的每个bean如何被创建基于一个可配置原型(prototype),你的bean可以创建一个单独的实例或者每次需要时都生成一个新的实例以及它们是如何相互关联的。然而,Spring不应该被混同于传统的重量级的EJB容器,它们经常是庞大与笨重的,难以使用。 框架Spring可以将简单的组件配置、组合成为复杂的应用。在Spring中,应用对象被声明式地组合,典型地是在一个XML文件里。Spring也提供了很多基础功能(事务管理、持久化框架集成等等),将应用逻辑的开发留给了你。 所有Spring的这些特征使你能够编写更干净、更

9、可管理、并且更易于测试的代码。它们也为Spring中的各种模块提供了基础支持。Spring可以给一个工程带来的一些好处:Spring能有效地组织你的中间层对象,无论你是否选择使用了EJB。如果你仅仅使用了Struts或其他的包含了J2EE特有APIs的framework,你会发现Spring关注了遗留下的问题。 Spring能消除在许多工程上对Singleton的过多使用。根据我的经验,这是一个主要的问题,它减少了系统的可测试性和面向对象特性。 Spring能消除使用各种各样格式的属性定制文件的需要,在整个应用和工程中,可通过一种一致的方法来进行配置。曾经感到迷惑,一个特定类要查找迷幻般的属性

10、关键字或系统属性,为此不得不读Javadoc乃至源编码吗?有了Spring,你可很简单地看到类的JavaBean属性。倒置控制的使用(在下面讨论)帮助完成这种简化。 Spring能通过接口而不是类促进好的编程习惯,减少编程代价到几乎为零。 Spring被设计为让使用它创建的应用尽可能少的依赖于他的APIs。在Spring应用中的大多数业务对象没有依赖于Spring。 使用Spring构建的应用程序易于单元测试。 Spring能使EJB的使用成为一个实现选择,而不是应用架构的必然选择。你能选择用POJOs或local EJBs来实现业务接口,却不会影响调用代码。 Spring帮助你解决许多问题而

11、无需使用EJB。Spring能提供一种EJB的替换物,它们适于许多web应用。例如,Spring能使用AOP提供声明性事务而不通过使用EJB容器,如果你仅仅需要与单个的数据库打交道,甚至不需要JTA实现。 Spring为数据存取提供了一致的框架,不论是使用JDBC或O/R mapping产品(如Hibernate)。 Spring确实使你能通过最简单可行的解决办法解决你的问题。这些特性是有很大价值的。 总结起来,Spring有如下优点:低侵入式设计,代码污染极低独立于各种应用服务器,可以真正实现Write Once,Run Anywhere的承诺Spring的DI机制降低了业务对象替换的复杂性

12、Spring并不完全依赖于Spring,开发者可自由选用Spring框架的部分或全部1.4 Hibernate简介Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。Hibernate的核心接口一共有5个,分别为:Session、SessionFactor

13、y、Transaction、Query和Configuration。这5个核心接口在任何开发中都会用到。通过这些接口,不仅可以对持久化对象进行存取,还能够进行事务控制。Hibernate 中提供了两级Cache,第一级别的缓存是Session级别的缓存,它是属于事务范围的缓存。这一级别的缓存由hibernate管理的,一般情况下无需进行干预;第二级别的缓存是SessionFactory级别的缓存,它是属于进程范围或群集范围的缓存。这一级别的缓存可以进行配置和更改,并且可以动态加载和卸载。 Hibernate还为查询结果提供了一个查询缓存,它依赖于第二级缓存。Hibernate对象关系映射提供延

14、迟的与非延迟的对象初始化。非延迟加载在读取一个对象的时候会将与这个对象所有相关的其他对象一起读取出来。这有时会导致成百的(如果不是成千的话)select语句在读取对象的时候执行。这个问题有时出现在使用双向关系的时候,经常会导致整个数据库都在初始化的阶段被读出来了。当然,你可以不厌其烦地检查每一个对象与其他对象的关系,并把那些最昂贵的删除,但是到最后,我们可能会因此失去了本想在ORM工具中获得的便利。一个明显的解决方法是使用Hibernate提供的延迟加载机制。这种初始化策略只在一个对象调用它的一对多或多对多关系时才将关系对象读取出来。这个过程对开发者来说是透明的,而且只进行了很少的数据库操作请

15、求,因此会得到比较明显的性能提升。这项技术的一个缺陷是延迟加载技术要求一个Hibernate会话要在对象使用的时候一直开着。这会成为通过使用DAO模式将持久层抽象出来时的一个主要问题。为了将持久化机制完全地抽象出来,所有的数据库逻辑,包括打开或关闭会话,都不能在应用层出现。最常见的是,一些实现了简单接口的DAO实现类将数据库逻辑完全封装起来了。一种快速但是笨拙的解决方法是放弃DAO模式,将数据库连接逻辑加到应用层中来。这可能对一些小的应用程序有效,但是在大的系统中,这是一个严重的设计缺陷,妨碍了系统的可扩展性。1.5 Struts2简介虽然Struts2号称是一个全新的框架,但这仅仅是相对St

16、ruts1而言。Struts2 与Struts1相比,确实有很多革命性的改进,但它并不是新发布的新框架,而是在另一个赫赫有名的框架:WebWork基础上发展起来的。从某种程度上来讲,Struts2没有继承Struts1的血统,而是继承WebWork的血统。或者说,WebWork衍生出了Struts2,而不是Struts1衍生了Struts2。因为Struts2是WebWork的升级,而不是一个全新的框架,因此稳定性、性能等各方面都有很好的保证:而且吸收了Struts1和WebWork两者的优势,因此,是一个非常值得期待的框架。第二章2 基于SSH框架的顶岗信息处理平台管理系统的实现领域模型其实

17、就是实体类,符合JavaBean编程的标准,只包含属性及其setter和getter方法。实体类Suppier对应的映射文件Supplier.hbm.xml的配置如下: 配置好实体类的映射文件后,还必须在applicationContext.xml文件中添加此映射文件的配置,并且还要在applicationContext.xml中配置连接数据库的信息,内容如下:org.hibernate.dialect.MySQLDialecttruecom/pojo/Supplier.hbm.xml 2.1 Spring的应用添加学生信息的的方法封装在Supplier管理接口SupplierDao中,方法的

18、具体是现在SupplierDaoIml中,其中SupplierDaoIml类继承HibernateDaoSupport类。利用Spring的控制反转机制来管理SupplierDaoIml类,依赖注入sessionFactory来初始化HibernateDaoSupport类中的sessionFactory,Spring对SupplierDaoIml类管理的配置文件applicationContext.xml中,添加如下配置:还要在web.xml文件中添加对Spring的Listener配置,通过上述配置以后,在web服务启动后,在Spring容器中就自动创建SupplierDaoImpl类的对

19、象,就可以通过该对象进行调用添加学生信息的方法。web.xml配置如下: org.springframework.web.context.ContextLoaderListener2.2 Struts 的应用(1)控制器的配置在呈现和控制器中使用Struts,在web.xml文件中配置Struts,以*.do的请求都经过ActionServlet,通过ActionServlet来实现Struts的工作流程,配置如下:strutsorg.apache.struts2.dispatcher.FilterDispatcherstruts/*(2) 其他组件的应用和配置1)JSP页面 在JSP页面su

20、pplier.jsp中,结合EL表达式取之方式和通过Supplier来收集表单的数据,如$supp.age。采用Javascript脚本语言对表单的数据进行客户端验证,并以“supplier.do?command=add”提交请求给ActionServlet处理。2)Struts应用和配置通过Struts的配置文件可以找到Supplier类和SupplierAction类,从而调用addSuppliser方法。在struts.xml文件,添加配置文件如下: /people/supplier.jsp/people/supplier.jsp/people/supplier.jsp/people/s

21、upplier.jsp/people/supplier.jsp /people/supplier.jsp(3)开源组件的应用本系统还是用了一些开源组件,如图表组件jfreechart。在Action中应用,首先将他们相关的jar包加入到本系统的WEB-INFlib下,然后编写相应的类:public static String generatePieChart(String aa,String infoStr, String titles,HttpSession session, PrintWriter pw) String filename = null;Font font;try / 建立P

22、ieDataSetDefaultPieDataset data = new DefaultPieDataset();String ss = infoStr.split(,);for (int n = 0; n ss.length; n+) String ssPart = ssn.split(#);int tt = Integer.parseInt(ssPart1);String mm = ssPart0;data.setValue(mm, tt);/ 生成chart物件PiePlot plot = new PiePlot(data);plot.setBackgroundPaint(Color.

23、PINK);/plot.setBackgroundPaint(Color.white);plot.setToolTipGenerator(new StandardPieToolTipGenerator();font = new Font(黑体, Font.CENTER_BASELINE, 20);/ 这个地方是设置统计图标题的字体和大小JFreeChart chart = new JFreeChart(,JFreeChart.DEFAULT_TITLE_FONT, plot, true);TextTitle tt = new TextTitle(titles);tt.setFont(font)

24、;chart.setBackgroundPaint(java.awt.Color.white);/ 统计图片的底色chart.setTitle(tt);/ 把生成的文件写入到临时的目录中ChartRenderingInfo info = new ChartRenderingInfo(new StandardEntityCollection();filename = ServletUtilities.saveChartAsPNG(chart, 500, 300, info,session);/ 选择存储成png格式的文件,当然你也可以使用saveChartAsJPEG的方法生成jpg图片/ 把i

25、mage map 写入到 PrintWriterChartUtilities.writeImageMap(pw, filename, info, null, null);pw.flush(); catch (Exception ex) System.out.println(error: + ex.getMessage();return filename;总结在这次毕业设计中,综合软件工程、数据库原理、计算机网络、面向对象程序设计、WEB程序设计这些大学期间的课程知识,将这些课程的理论知识都融于本系统的设计当中,使理论与实践相结合。在之前的计算机综合设计中我使用JSP+JavaBean技术来实现

26、本系统,这次通过学习SSH这个流行的开发框架,更深入的对本系统进行重构和设计,是本系统的重用性、可维护性和灵活性都得到很大的提高。通过这次毕业设计,更加熟练的应用完整的软件工程流程对塑料进销系统进行了设计,即需求分析、系统设计、详细设计、系统实现、测试这些阶段、并应用面向对象方法学来完成本毕业设计;懂得如何配合使用UML工具对本系统进行面向对象和分析和设计,学会采用Java Web的流行架构Struts-Spring-Hibernate来实现本系统;熟悉使用黑盒测试法来测试系统,检查出系统的错误;深刻体会到如何更好的进行数据库的设计,设计系统的实体联系图,即ER模型和关系模式,熟练使用SQL语

27、句进行建立数据库、建立表、插入数据、删除数据、修改数据的操作;学会采用面向对象的思想,使用封装、继承、重载、多态这些特性,对实际问题进行面向对象设计,并编写有效代码;同时对各课程上学的知识有更深的了解和理解;最重要的是能积累到宝贵的软件开发经验。在开发这个系统过程中,对java的编程思想有更深的理解,能熟练地采用框架来开发和使用java来进行面向对象设计,循序渐进的体会到框架当中优秀的设计思想,并且对Filter和Servlet的理解逐步加深,还学会通过使用配置文件进行灵活的设计,以及学会在框架中嵌入使用开源组件。总结这次毕业设计给我感受最深的至少有四点:1进行软件开发这样的工作,要有恒心,要

28、能静下新来做,而不能浮躁。2要遵循软件开发本身的规律和善于吸收已有的经验。3要善于同别人交流与合作,善于获取游泳的各种资源。4要真真实实饿多查资料,多问,多看。参考文献1 徐明华JavaWeb整合开发与项目实战:JSP,Ajax,Struts,Hibernate,SpringM北京:人民邮电出版社,2009.2:234-333.2韩万江软件工程案例教程M.北京:机械工业出版社,2007.5:18-30,191-227.3李刚轻量级Java EE企业应用实战-Struts 2+Spring+Hibernate整合开发M 北京:电子工业出版社,2009.9:68-72.4王珊,萨师煊数据库系统概论(第四版)M北京:高等教育出版社,2006.5:78-118.5孙鑫Java Web开发详解:XML+XSLT+Servlet+JSP深入剖析与实例应用M.北京:电子工业出版社,2006.4:5-10.6唐友国,湛洪波JSP网站开发详解M.北京:电子工业出版社,2008.10:102-118.7 Bruce Eckel.Java编程思想M.陈昊鹏.第四版.北京:机械工业出版社,2007.8808 程伟.汪孝宜.开发者突击:JSP网络开发经典模块实现全集M.北京:电子工业出版社,2008.96317

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1