




已阅读5页,还剩43页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Struts2框架的工作原理与架构分析 郭剑峰2012年11月 Struts2的工作原理 一个请求在Struts2框架中的处理分为以下几个步骤1客户端初始化一个指向Servlet容器 如Tomcat 请求2这个请求经过一系列的过滤器 Filter 3接着FilterDispatcher被调用 FilterDispatcher询问ActionMapper来决定这个请是否需要调用某个Action4如果ActionMapper决定需要调用某个Action FilterDispatcher把请求的处理交给ActionProxy5ActionProxy通过ConfigurationManager询问框架的配置文件 找到需要调用的Action类6ActionProxy创建一个ActionInvocation的实例 7ActionInvocation实例使用命名模式来调用 在调用Action的过程前后 涉及到相关拦截器 Intercepter 的调用 8一旦Action执行完毕 ActionInvocation负责根据struts xml中的配置找到对应的返回结果 返回结果通常是一个需要被表示的JSP或者FreeMarker的模版 在表示的过程中可以使用Struts2框架中继承的标签 在这个过程中需要涉及到ActionMapper Struts2的架构分析 Struts2框架也是由两部分组成 XWork2和Struts2 XWork是一个命令模式框架 它是Struts2的基础 XWork提供了很多核心功能 IoC Inversionofcontrol 控制反转 容器 强大的表达式语言 OGNL ObjectGraphNavigationLanguage 对象图像导航语言 数据类型转换 验证和可插入的配置 XWork框架的核心概念包括action 拦截器 inerceptor 和result struts default xml文件 struts default xml文件是struts2框架默认加载的配置文件 它定义struts2一些核心的bean和拦截器 这些拦截器是以key value对的形式配置在struts default xml中 其中name是拦截器名字 就是后面使用该拦截器的引用点 value则指定拦截器的实现类 struts default xml struts2全局配置文件 struts2框架启动时会自动加载该文件位置 struts2 core jar struts default xml作用 定义bean和一个抽象的包 包中定义了返回类型 拦截器 拦截器栈 默认的拦截器和默认的Action struts properties文件 作用 覆盖系统配置信息struts custom i18n resources globalMessages国际化文件的前缀名配置struts ui theme simple使用struts2的simple模板生成html代码struts ui templateDir templateStruts2的模板目录是通过struts ui templateDir常量来指定的 该常量的默认值是template 即意味着Struts2会从Web应用的template目录struts ui templateSuffix ftl去除struts2标签中的自动生成的布局样式struts multipart saveDir tmp设置struts2的临时文件上传路径struts multipart maxSize 1000000000struts2修改文件上传大小限制 Struts2中为应用指定多个配置文件 为了避免struts xml文件过于庞大 臃肿 提高代码的可读性 我们可以将一个struts xml配置文件分解成过个配置文件 然后在struts xml文件中包含其他配置文件 1 配置一个名为department xml文件 department index jsp Struts2中为应用指定多个配置文件 2 配置一个名为employee xml文件 employee index jsp Struts2中为应用指定多个配置文件 3 在struts xml中通过include进行配置 Struts2中的国际化 Struts2中的国际化 Struts2中的国际化 Struts2中的国际化 Struts2中的国际化 Struts2中的国际化 案例 struts2app i18n LoginAction Struts2中的表单校验 Annotations验证 Struts2提供了注解的方式校验1 Validation指明这个类或者接口将使用基于注解的校验 2 Validations 在同一个方法上要使用多个注解校验时 3 SkipValidation指定某个方法不需要校验 否则所有方法都会使用校验 也可以在检验拦截器中使用validateAnnotatedMethodOnly4 13个内置校验器的注解版本 RequiredFieldValidator RequiredStringValidator StringLengthFieldValidator IntRangeFieldValidator DoubleRangeFieldValidator DateRangeFieldValidator ExpressionValidator FieldExpressionValidator RegexFieldValidator EmailValidator UrlValidator VisitorFieldValidator ConversionErrorFieldValidator案例 annotation SimpleAnnotationAction annotation AnnotationValidationAction Struts2单文件上传 上传jsp Struts2单文件上传 action Struts2单文件上传 xml 案例 SingleUpload jsp Struts2多文件上传 jsp Struts2多文件上传 action Struts2多文件上传 xml 案例 MultiUpload jsp Struts2动态方法调用 Struts xml Struts2动态方法调用 action Struts2动态方法调用 action 案例 DynamicAction action Struts2使用通配符定义action xml Struts2使用通配符定义action action 案例 WildcardAction java Struts2局部自定义类型转换器 Struts2局部自定义类型转换器 Struts2局部自定义类型转换器 Struts2局部自定义类型转换器 Struts2局部自定义类型转换器 案例 localconverter CircleAction java Struts2全局自定义类型转换器 必须在src的目录下建立xwork conversion properties文件 案例 globalconverter CircleAction java Struts2的OGNL表达式 1 OGNL表达式语言OGNL是ObjectGraphicNavigationLanguage 对象图导航语言 的缩写 它是一个开源项目 Struts2框架使用OGNL作为默认的表达式语言 2 访问上下文 Context 中的对象需要使用 符号标注命名空间 如 application session3 由于ValueStack 值栈 是Struts2中OGNL的根对象 如果用户需要访问值栈中的对象 在JSP页面可以直接通过下面的EL表达式访问ValueStack 值栈 中对象的属性 foo 获得值栈中某个对象的foo属性 Struts2的OGNL表达式 application userName或者 application userName 相当于调用ServletContext的getAttribute username session对象 用来访问HttpSession 例如 session userName或者 session userName 相当于调用session getAttribute userName request对象 用来访问HttpServletRequest属性 attribute 的Map 例如 request userName或者 request userName 相当于调用request getAttribute userName parameters对象 用于访问HTTP的请求参数 例如 parameters userName或者 parameters userName 相当于调用request getParameter username Struts2的OGNL表达式 application userName或者 application userName 相当于调用ServletContext的getAttribute username session对象 用来访问HttpSession 例如 session userName或者 session userName 相当于调用session getAttribute userName request对象 用来访问HttpServletRequest属性 attribute 的Map 例如 request userName或者 request userName 相当于调用request getAttribute userName parameters对象 用于访问HTTP的请求参数 例如 parameters userName或者 parameters userName 相当于调用request getParameter username Struts2中为action属性注入值 Struts2中为Action中的属性提供了依赖注入功能 在Struts2的配置文件中 我们可以方便的为action中的属性注入值 注意 属性必须提供setter方法Action Struts2中为action属性注入值 jsp Struts2中为action属性注入值 xml 案例 ioc IocAction java Struts2自定义拦截器 Struts2拦截器在访问某个Action方法之前或之后实施拦截 Struts2拦截器是可插拔的 拦截器是AOP AspectOrientedProgramming面向切面 的一种实现 Struts2自定义拦截器 Action Struts2自定义拦截器 Interceptor Struts2自定义拦截器 xml Struts2自定义拦截器 登录jsp Struts2自定义拦截器 执行动作jsp 从拦截器得到message Struts2自定义拦截器 退出jsp Struts2自定义拦截器 演示拦截过程 1 http localhost 8080 struts2web interce
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年湖南湘西龙山县医疗卫生事业单位招聘19人笔试模拟试题及答案解析
- 2026华能丹东电厂应届毕业生招聘笔试备考题库及答案解析
- 中国中元国际工程有限公司2026届校园招聘笔试备考题库及答案解析
- 2026中国电气装备许继集团、许继电气校园招聘笔试参考题库附答案解析
- 2025青海海东互助县中医院、互助县人民医院面向社会招聘编外卫生专业技术人员19人(第一批)笔试备考试题及答案解析
- 2025广西崇左市人民医院招聘就业见习生15人笔试备考试题及答案解析
- 2025中国石油天然气股份有限公司大港石化分公司秋季高校毕业生招聘28人笔试备考题库及答案解析
- 2025浙江中意宁波生态园控股集团有限公司第二次招聘1人笔试备考题库及答案解析
- 2026秋季国家管网集团华中公司高校毕业生招聘笔试参考题库附答案解析
- 2025安徽芜湖市鸠江区四褐山街道招聘2人笔试备考题库及答案解析
- 心血管-肾脏-代谢综合征(CKM)综合管理中国专家共识2025解读课件
- NB/T 11529-2024回采工作面随采地震探测技术
- 艾青诗选《黎明》赏析
- 民营医院行政管理与法律法规遵循
- 银行代销业务管理制度
- 招聘话术培训
- 环卫处规章制度
- 大学古诗词课件
- 木方回收合同6篇
- 2025年第三届药膳大赛(选拔赛)理论知识考试题(附答案)
- 包装行业安全防范总结
评论
0/150
提交评论