01-Struts2框架知识点总结_第1页
01-Struts2框架知识点总结_第2页
01-Struts2框架知识点总结_第3页
01-Struts2框架知识点总结_第4页
01-Struts2框架知识点总结_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Struts2 框架培训日志Struts框架的起源Struts是在2001年5月发布第一个版本。Struts主要目的实现MVC模式开发。结合Servlet和JSP技术将业务逻辑代码与数据显示代码分离开,实现低耦合JSP / Freemarker + Servlet + JavaBean(JDBC)/EJBStruts不断改进中两个最受瞩目的方案是Shale和Struts Ti。Shale是一个基于构件的框架,并在最近成为Apache的顶级项目。Struts Ti则是在Struts的成功经验基础上继续坚持对前端控制器(Front Controller)和MVC (model-view-contr

2、oller) 模式进行改进。WebWork是在2002年3月发布的。在 2005 年 12 月,WebWork与 Struts Ti宣布合并。与此同时,Struts Ti改名为 Struts Action Framework 2.0Strutsl.x 与 Struts2 区别Struts2核心控制器由Servlet修改为Filter(核心控制器控制对目标程序(Action程序)的访问.)Action 对象多实例,不需要考虑线程安全问题。支持多种视图展现技术( JSP, Freemarker, Volicity)扩展性强,提供了拦截器 InterceptorStruts2不是Struts1的升级

3、,而是继承webwork的血统,它吸收了 strutsl和webwork的优势。因为strutsl框架存在固有的一些问题,所以这里我们只介绍Struts2框架。Strutsl框架不再做介绍。Struts2框架是一个轻量级的MVC流程框架轻量级:用普通JavaBean程序代替EJB完成代码开发,从开发角度,从运行角度,比较快速和简单.无侵入性.MVC:Model - View - ControllerModel :做业务逻辑代码(Service),数据处理代码(DAO),数据封装(User/Page) - JavaBean/EJBView : 数据展示 JSP(JSTL/EL)/Freemark

4、erController :流程控制(接收数据,调用Model,跳转页面)Servlet/Filter流程:数据流程.数据从哪来的,到哪里去框架:框架是对通用代码进行封装,做项目开发利用框架来做,可以提高开发效率,程序员将开发任务重点放在业务逻 辑代码的实现上.框架从设计的角度,利用6大开发原则(开闭原则(OCP);迪米特法则,依赖倒转原则,里氏代换原则, 接口隔离原则,合成聚合/复用原则),以及相关设计模式(工厂,模板,适配器,代理,单例,多例),所以,框架都遵循迪米特 法则.Struts2 框架的文件结构: HYPERLINK apps:包含了框架的多个应用压缩包(war)docs :框架

5、的说明文档(学习手册,API文档)。lib :框架依赖的jar包src :框架的源码文件夹Struts2框架的环境搭建Web项目JAR 包配置文件(struts.xml)业务类及页面(HelloWorldAction, HelloWorld.jsp)web.xml (增加过滤器:核心控制器struts2 框架的第一个例子 参考struts2框架自带的例子:struts2-blank-2.x.war (需要将文件拷贝到tomcat服务器的webapps中)struts2 框架的源码解读 struts2框架是MVC流程框架,所以重点就在流程上,如果能将源码的实现看懂,那么对于框架的应用和技术实现就

6、更加容易理解通过源码的解读,可以发现,框架采用工厂模式和代理模式等设计模式,并且底层采用反射方式实现,所以理解好 反射,对于框架的学习会更好。通过分析Struts2的源代码,讲解设计到的JavaEE设计模式和GoF设计模式。JavaEE前端控制器模式、GoF的代 理模式ActionProxy、工厂模式(抽象工厂模式)ObjectFactory、责任链模式Interceptor、策略模式ResultType、模 版方法模式ResultType内部实现、缺省适配器模式Interceptor内部实现;总体来说设计模式分为三大类:创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原

7、型模式结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。开发原则:开闭原则( OCP- Open Closed Principle)里氏代换原则(LSP- Liskov Substitution Principle LSP)依赖倒转原则(DIP- Dependence Inversion Principle)接口隔离原则(ISP- Interface Segregation Principle)合成聚合

8、复用原则(Composite/Aggregate Reuse Principle ,CARP)迪米特法则(Law of Demeter)又叫作最少知道原则(Least Knowledge Principle简写LKP)Struts2流程图ActionProxy.In竺r賛貝。匚比/Configuratian ManagerTemplate Struts2流程图ActionProxy.In竺r賛貝。匚比/Configuratian ManagerTemplate Struts2的应用ActionInvocation干ResultActicnContextClenUpActionMapperstr

9、uts.xmlIntercepior 3 j 2/5struts.xmlTv1)Action 默认执行的方法名称为 execute继承 ActinSupport 类(推荐)实现 Action 接口2)扩展名默认情况下的扩展名有2个(action,空字符串)修改默认的扩展名struts.xml文件中增加常量标签(推荐)perties资源配置文件 过滤器初始化参数3)字符编码默认的字符编码 UTF-8框架核心是过滤器,所以可以直接设定字符编码。只能解决post的乱码问题。4)重新加载配置文件默认情况下,修改配置文件,必须重新启动服务器才可以起作用。影响开发效率设定常量,让程序运行时就可以重新加载配

10、置文件,可以提高开发效率开发模式重新加载配置文件的设置以及开发模式的设置只能应用在开发阶段,在生产环境中一定不能设置为true5)命名空间类似于java中的包应用于访问action的路径命名空间的访问规则。6)Action 创建框架通过配置文件中的class属性反射创建对象。多例创建,不会出现线程安全问题。7)动态方法调用在请求路径中,将方法名和action的访问路径使用感叹号连接起来。在配置文件中增加method属性(推荐)默认的方法名就是 execute方法名也可以通过通配符进行设定。8)数据的流转OGNL 和 ValueStack数据的展示使用 El 表达式可以直接访问 action 的

11、属性。数据的存储属性驱动模式模型驱动模式域驱动模式数据的传播访问存储对象(Map)访问真正的 HTTP 对象9)文件上传将文件的内容放置在请求体中传递给服务器框架支持3种上传组件(cos, pell),默认为commons-fileupload框架屏蔽了组件的使用。对于开发人员来讲,只需要操作文件流就可以了。国际化资源(多语种)文件-起名规则国际化的应用的场景。页面跳转默认使用转发方式(dispatcher)跳转Action 转发 : chain重定向 :redirectAction 重定向 : redirectAction文件下载是以流的方式完成页面的跳转。需要注意配置文件和类之间的关联。模

12、板视图技术FreemarkerJSP14) 拦截器默认栈引用 20 个拦截器自定义拦截器增加后,框架不再提供默认拦截器拦截器的声明顺序。拦截器模拟过滤器的实现机制15) 异常处理统一异常处理 全局异常映射 全局结果映射团队的支持配置文件可以划分多个子配置文件划分的规则是根据功能模块进行划分从主配置文件包含子配置文件注解零配置。执行框架流程,不需要增加配置文件使用 JDK1.5 版本之后的新特性,注解功能不推荐使用,违背 OCP 开发原则。在Struts2中,模型-视图-控制器模式通过五个核心组件来实现:Action拦截器值栈/OGNL结果类型结果/视图技术Struts2框架MVC架构图Cont

13、rollerModelWtXnOI-52daoI-52daosu-Actions V MVC i Struts2 架构Struts2的总结Struts2 框架的优点轻量级的MVC的流程框架统一管理页面流转简化了表单向控制器的赋值简化上传操作规范了团队开发体现了独立服务概念(IOC)增加拦截器的处理机制,可以很容易进行功能的扩展。遵循AOP编程模式提供了多种视图展现技术。线程安全。测试起来更加的容易。拥有由积极活跃的开发人员与用户组成的成熟社区Struts2 框架的缺点多例创建对象,性能下降(内存消耗大),执行效率低于servlet,所以在使用时会有局限性Action 比较臃肿,难于维护底层实现方式非常复杂,导致学习成本增加(时间,难度)由于设计的原因会导致安全隐患。http:/user/log;in!getUscrcodeaction?usercodc=successhttp:/user/login!getUsercodeaction?usercode=sueccss&userty

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论