




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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技术来实现本系统,这次通过学习ssh这个流行的开发框架,更深入的对本系统进行重构和设计,是本系统的重用性、可维护性和灵活性都得到很大的提高。通过这次毕业设计,更加熟练的应用完整的软件工程流程对塑料进销系统进行了设计,即需求分析、系统设计、详细设计、系统实现、测试这些阶段、并应用面向对象方法学来完成本毕业设计;懂得如何配合使用uml工具对本系统进行面向对象和分析和设计,学会采用java web的流行架构struts-spring-hibernate来实现本系统;熟悉使用黑盒测试法来测试系统,检查出系统的错误;深刻体会到如何更好的进行数据库的设计,设计系统的实体联系图,即er模
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 公文写作与处理考试考点总结
- 2025年农业机械租赁合同模板
- 山东专用2025版高考政治一轮复习经济生活第三单元收入与分配第八课财政与税收课时训练含解析新人教版必修1
- 2025年装饰设计合同示范文本
- 行政管理学与社会发展趋势试题及答案
- 2025电子产品销售合同模板
- 2025内江师范学院劳动合同工合同签订审批表
- 2025年建筑考试综合技能试题及答案
- 现代管理下的决策分析技术与试题及答案
- 2025化工原料采购合同(公路运输)
- 蜜蜂的传粉过程
- 公招资格复审个人委托书
- Python程序设计项目化教程
- 双护筒旋挖钻孔施工工法
- 人教版八年级物理下册 实验题05 简单机械实验(含答案详解)
- 山西灵石红杏广进宝煤业有限公司新建煤矸石综合治理及土地复垦项目环评报告
- 睡莲花卉欣赏与养护
- 出生证明英语翻译模板
- 历史中考热点专题
- 游泳运动比赛宣传PPT模板
- IATF16949内外部审核资料清单按条款
评论
0/150
提交评论