收藏 分销(赏)

01-Struts2框架知识点总结.doc

上传人:仙人****88 文档编号:11989346 上传时间:2025-08-26 格式:DOC 页数:5 大小:264.50KB 下载积分:10 金币
下载 相关 举报
01-Struts2框架知识点总结.doc_第1页
第1页 / 共5页
01-Struts2框架知识点总结.doc_第2页
第2页 / 共5页


点击查看更多>>
资源描述
Struts2框架培训日志 8/25/2025 Struts2框架培训日志 l Struts框架的起源 Ø Struts是在2001年5月发布第一个版本。 View Model Ø Struts主要目的实现MVC模式开发。结合Servlet和JSP技术将业务逻辑代码与数据显示代码分离开,实现低耦合的开发方式。 Controller JSP / Freemarker + Servlet + JavaBean(JDBC)/EJB Ø Struts不断改进中两个最受瞩目的方案是Shale和Struts Ti。 Ø Shale是一个基于构件的框架,并在最近成为Apache的顶级项目。 Ø Struts Ti则是在Struts的成功经验基础上继续坚持对前端控制器(Front Controller)和MVC(model-view-controller)模式进行改进。 Ø WebWork是在2002年3月发布的。 Ø 在2005年12月,WebWork与Struts Ti宣布合并。与此同时,Struts Ti改名为Struts Action Framework 2.0。 Ø Struts1.x与Struts2区别 1. Struts2核心控制器由Servlet修改为Filter(核心控制器控制对目标程序(Action程序)的访问.) 2. Action对象多实例,不需要考虑线程安全问题。 3. 支持多种视图展现技术(JSP,Freemarker,Volicity) 4. 扩展性强,提供了拦截器 Interceptor 5. Struts2不是Struts1的升级,而是继承webwork的血统,它吸收了struts1和webwork的优势。 因为struts1框架存在固有的一些问题,所以这里我们只介绍Struts2框架。Struts1框架不再做介绍。 l Struts2框架是一个轻量级的MVC流程框架 Ø 轻量级:用普通JavaBean程序代替EJB完成代码开发,从开发角度,从运行角度,比较快速和简单.无侵入性. Ø MVC:Model – View – Controller 1. Model : 做业务逻辑代码(Service),数据处理代码(DAO),数据封装(User/Page) -> JavaBean/EJB 2. View : 数据展示JSP(JSTL/EL)/Freemarker 3. Controller : 流程控制(接收数据,调用Model,跳转页面) Servlet/Filter Ø 流程: 数据流程. 数据从哪来的,到哪里去 Ø 框架: 框架是对通用代码进行封装,做项目开发利用框架来做,可以提高开发效率,程序员将开发任务重点放在业务逻辑代码的实现上. 框架从设计的角度,利用6大开发原则(开闭原则(OCP);迪米特法则,依赖倒转原则,里氏代换原则,接口隔离原则,合成聚合/复用原则),以及相关设计模式(工厂,模板,适配器,代理,单例,多例…),所以,框架都遵循迪米特法则. l Struts2框架的文件结构: http://www.apache.org Ø apps : 包含了框架的多个应用压缩包(war) Ø docs : 框架的说明文档(学习手册,API文档)。 Ø lib : 框架依赖的jar包 Ø src : 框架的源码文件夹 l Struts2框架的环境搭建 Ø Web项目 Ø JAR包 Ø 配置文件(struts.xml) Ø 业务类及页面(HelloWorldAction, HelloWorld.jsp) Ø web.xml(增加过滤器:核心控制器) l struts2框架的第一个例子 Ø 参考struts2框架自带的例子:struts2-blank-2.x.war(需要将文件拷贝到tomcat服务器的webapps中) l struts2框架的源码解读 Ø struts2框架是MVC流程框架,所以重点就在流程上,如果能将源码的实现看懂,那么对于框架的应用和技术实现就更加容易理解 Ø 通过源码的解读,可以发现,框架采用工厂模式和代理模式等设计模式,并且底层采用反射方式实现,所以理解好反射,对于框架的学习会更好。 Ø 通过分析Struts2的源代码,讲解设计到的JavaEE设计模式和GoF设计模式。JavaEE前端控制器模式、GoF的代理模式ActionProxy、工厂模式(抽象工厂模式)ObjectFactory、责任链模式Interceptor、策略模式ResultType、模版方法模式ResultType内部实现、缺省适配器模式Interceptor内部实现; 总体来说设计模式分为三大类: 创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。 结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。 行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。 开发原则: l 开闭原则(OCP- Open Closed Principle) l 里氏代换原则(LSP- Liskov Substitution Principle LSP) l 依赖倒转原则(DIP- Dependence Inversion Principle) l 接口隔离原则(ISP- Interface Segregation Principle) l 合成/聚合复用原则(Composite/Aggregate Reuse Principle ,CARP) l 迪米特法则(Law of Demeter)又叫作最少知道原则(Least Knowledge Principle 简写LKP) l Struts2流程图 l Struts2的应用 1) Action默认执行的方法名称为execute u 继承ActinSupport类(推荐) u 实现Action接口 2) 扩展名 u 默认情况下的扩展名有2个(action, 空字符串) u 修改默认的扩展名 l struts.xml文件中增加常量标签(推荐) l struts.properties资源配置文件 l 过滤器初始化参数 3) 字符编码 u 默认的字符编码 UTF-8 u 框架核心是过滤器,所以可以直接设定字符编码。 u 只能解决post的乱码问题。 4) 重新加载配置文件 u 默认情况下,修改配置文件,必须重新启动服务器才可以起作用。影响开发效率 u 设定常量,让程序运行时就可以重新加载配置文件,可以提高开发效率 u 开发模式 u 重新加载配置文件的设置以及开发模式的设置只能应用在开发阶段,在生产环境中一定不能设置为true 5) 命名空间 u 类似于java中的包 u 应用于访问action的路径 u 命名空间的访问规则。 6) Action创建 u 框架通过配置文件中的class属性反射创建对象。 u 多例创建,不会出现线程安全问题。 7) 动态方法调用 u 在请求路径中,将方法名和action的访问路径使用感叹号连接起来。 u 在配置文件中增加method属性(推荐) u 默认的方法名就是execute u 方法名也可以通过通配符进行设定。 8) 数据的流转 u OGNL和ValueStack u 数据的展示 l 使用El表达式可以直接访问action的属性。 u 数据的存储 l 属性驱动模式 l 模型驱动模式 l 域驱动模式 u 数据的传播 l 访问存储对象(Map) l 访问真正的HTTP对象 9) 文件上传 u 将文件的内容放置在请求体中传递给服务器 u 框架支持3种上传组件(cos,pell),默认为commons-fileupload u 框架屏蔽了组件的使用。对于开发人员来讲,只需要操作文件流就可以了。 10) 国际化 u 资源(多语种)文件 – 起名规则 u 国际化的应用的场景。 11) 页面跳转 u 默认使用转发方式(dispatcher)跳转 u Action转发 : chain u 重定向 :redirect u Action重定向 : redirectAction 12) 文件下载 u 是以流的方式完成页面的跳转。 u 需要注意配置文件和类之间的关联。 13) 模板视图技术 u Freemarker u JSP 14) 拦截器 u 默认栈引用20个拦截器 u 自定义拦截器增加后,框架不再提供默认拦截器 u 拦截器的声明顺序。 u 拦截器模拟过滤器的实现机制 15) 异常处理 u 统一异常处理 u 全局异常映射 u 全局结果映射 16) 团队的支持 u 配置文件可以划分多个子配置文件 u 划分的规则是根据功能模块进行划分 u 从主配置文件包含子配置文件 17) 注解零配置。 u 执行框架流程,不需要增加配置文件 u 使用JDK1.5版本之后的新特性,注解功能 u 不推荐使用,违背OCP开发原则。 l 在 Struts2 中,模型-视图-控制器模式通过五个核心组件来实现 : 1) Action 2) 拦截器 3) 值栈/OGNL 4) 结果类型 5) 结果/视图技术 l Struts2框架MVC 架构图 l Struts2的总结 1) Struts2框架的优点 u 轻量级的MVC的流程框架 l 统一管理页面流转 l 简化了表单向控制器的赋值 l 简化上传操作 l 规范了团队开发 l 体现了独立服务概念(IOC) u 增加拦截器的处理机制,可以很容易进行功能的扩展。遵循AOP编程模式 u 提供了多种视图展现技术。 u 线程安全。 u 测试起来更加的容易。 u 拥有由积极活跃的开发人员与用户组成的成熟社区 2) Struts2框架的缺点 u 多例创建对象,性能下降(内存消耗大),执行效率低于servlet,所以在使用时会有局限性 u Action比较臃肿,难于维护 u 底层实现方式非常复杂,导致学习成本增加(时间,难度) u 由于设计的原因会导致安全隐患。 l l 2013年7月17日高危漏洞 l Apache Struts2高危漏洞,影响到Struts 2.0.0 -Struts 2.3.15的所有版本。包括国内很多知名网站在内的大量网站受到此漏洞不同程度的影响。攻击者可以利用该漏洞执行恶意java代码,最终导致网站数据被窃取、网页被篡改等严重后果,使网站及网民安全受到了极大的威胁。 l Struts2的竞争对手 1) SpringMVC 2) JSF 3) WebWork l 5/5
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 考试专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服