




已阅读5页,还剩57页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Struts2 Web技术的发展 Web技术的发展 Model1与Model2 Model1 整个web应用几乎全部由JSP页面组成 JSP页面接受处理客户端请求 对请求处理后直接做出响应 用少量javaBean来处理数据库连接等操作 Model2 基于MVC设计模式 Servlet作为前端控制器 负责接受客户端发送的请求 在servlet中只包含控制逻辑 然后调用后端JavaBean来完成实际的逻辑处理 最后转发到响应的JSP MVC MVC并不是java语言所特有的设计思想 它是所有面向对象程序设计语言都应该遵守的规范Model 模型 View 视图 Controller 控制器 这三个部分以最少的耦合协同工作 以提高应用的可扩展性及可维护性 Struts2简介 Struts2以WebWork为核心 采用拦截器的机制来处理用户的请求 这样的设计也使得业务逻辑控制器能够与ServletAPI完全脱离开 所以Struts2可以理解为WebWork的更新产品 Struts2体系概图 Struts2的优点 1 设计上不依赖于ServletAPI和StrutsAPIpublicclassmyActionextendsAction publicActionForwardexcute ActionMappingmapping ActionFormform HttpServletRequestrequest HttpServletResponseresponse throwsException 2 使用大量的拦截器3 提供了类型转换器 这点在struts1中没有 4 支持多种表现层技术如 JSP freeMarker5 可以对指定方法进行校验6 提供全局范围 包范围和Action范围的国际化资源文件管理 搭建Struts2开发环境 导入相关jar文件编写Struts2的配置文件在web xml中加入Struts2框架的启动配置 Struts2常用jar包 不同应用需要的jar包是不同的 开发struts2程序需要的jar至少应具备以下jar包 Struts2 core 2 x x jar struts2框架核心类库Xwork 2 x x jar xwork类库Struts2在其上构建Ognl 2 6 x jar 对象导航语言 用来读写对象的属性Freemarker 2 3 x jar Struts2UI标签Commons logging 1 1 x jar 日志记录功能jarCommons fileupload 1 2 1 jar 文件上传组件commons io 1 3 2 jar 文件上传组件 Struts2应用的配置文件 默认配置文件为struts xml 该文件需要存放在WEB INF classes下 Struts2在web中的启动配置 Struts1中 struts框架是通过servlet启动的 在struts2中 struts框架是通过Filter启动的struts2org apache struts2 dispatcher ng filter StrutsPrepareAndExecuteFilterstruts2 StrutsPrepareAndExecuteFilter中init方法读取struts xml完成初始化 读取struts xml后 以javaBean的形式保存在内存中 处理用户请求时不是每次都读取web xml Struts2第一个应用 helloworld 在struts xml中加入如下配置 WEB INF hello jsp package 与java包的功能类似 通常一组业务功能相关的action放在同一包下 其中name属性为自定义 主要用于action的继承 namespace与action的name属性组合在一起作为访问该包下action的一部分 可以缺省 struts default是struts2的核心包 定义了struts2的核心功能 通常情况下都要继承该包 Struts2处理流程 1 浏览器发送请求2 核心控制器FileterDispatcher根据请求决定调用合适的Action3 WebWork的拦截器链自动对请求应用通用功能 如validaton等4 回调Action的execute方法5 Action的execute方法处理结果信息被输出到浏览器中 一个简单的提交功能 一个简单的提交功能 实现控制器ActionpublicclassLoginAction privateStringusername privateStringpwd publicStringexecute if blues equals this getUsername 配置Action 添加视图 上面应用处理流程 跟踪用户状态 Struts2中访问HttpSession使用ActionContext类 该类提供一个getSession方法 但该方法返回一个Map 为的是将Action类与ServletAPI完全分离 来简化Action类的测试 但是Struts2的系列拦截器会负责该Session和HttpSession之间的转换 跟踪用户状态 ActionContext类介绍 增加数据校验 ActionSupport类是一个工具类 它已经实现了Action接口以及Validateable接口 提供了数据校验功能 通过继承该类 来完成数据校验功能 配置input视图 使用struts2标签输出验证错误信息 其他验证 使用struts2验证框架 注意 该文件命名应遵守以下规则 1 ActionName validation ActionName就是需要校验的Action类名2 该文件与Action类放在同一目录下 Struts2包配置详解 welcome jsp 必填 该名字是被其它包引用时的KEY 可选 定义该包命名空间 用以区分同名Action 可选 包指定继承的包 可继承Action 拦截器等 Action对应的URL搜索顺序 如果struts配置文件中只配置了名空间为 test的package action的name属性为hello 那么该action的url为 http localhost 8080 Struts test hello但是如下路径也可以访问 http localhost 8080 Struts test 12 23 hellohttp localhost 8080 Struts test ss bb cc hello 搜索会按照逐级向上的顺序搜索直到找到匹配的 Action对应的URL搜索顺序 如果对应的namespace中没有指定的action 它会去没有指定namespace的值或者namespace值为 的包去找 如果还找不到则报错 Action配置中的各项默认值 WEB INF hello jsp1 如果没指定class 默认为ActionSupport2 如果没指定method 默认执行action中execute 方法3 如果没指定result的name属性 默认值为success 配置文件的包含 Strust2视图转发流程 Struts2支持的结果类型 在struts default xml文件及struts plugin xml中 结果类型说明 Action中result的转发类型 Redirect Redirect 与dispatcher结果类型相对 dispatcher是将请求Forward到指定的视图资源 而redirect意味将请求重定向到指定视图资源特点 会丢失所有的请求参数 请求属性以及Action的处理结果 Action中result的转发类型 Redirect Action中result的转发类型 Redirect Action 该结果类型与redirect相似 也是重定向 二者的区别 Redirect通常用于生成一个对具体资源的请求Redirect Action通常用于生成一个对其他Action的请求二者的相同点 都是重新生成一个新请求都会丢失请求参数 请求属性和前一个Action的处理结果 动态结果 这个Action可以处理所有匹配crud action模式的请求 如当有一个crud create action请求时 系统会调用lee CrudAction类的create方法来处理用户请求 当请求结果为input字符串时 跳转input jsp页面 当请求结果为success时 将转入create jsp页面 Action中result的转发类型 Chain 主要用于把相关的几个action连接起来 共同完成一个功能 被跳转的action中仍能获取上个页面的值 如request信息step2 actionfinish jsp 全局结果 如果Action里包含与全局结果里同名的结果 则Action的局部结果覆盖全局 只有在Action里的局部结果里找不到相应转发视图 才会去全局结果中找 使用模型驱动 使用单独的JavaBean实例来贯穿整个MVC流程 驱动类型 模型驱动 使用单独的VO 值对象 来封装请求参数和处理结果属性驱动 使用Action示例中的属性来封装 声明式异常捕捉 Struts2的异常处理机制是通过在配置文件中配置元素来完成的 该元素需要制定两个属性 Exception 此属性指定映射的异常类型Result 指出现该异常时 系统转入result所指向的结果注 该标签分为全局与局部映射 其作用与result的全局和局部一致 Struts2类型转换 对于B S结构的应用而言 用户通过浏览器输入的数据不可能拥有多种数据类型 这就需要完成由字符串向多种数据类型的转换工作类型转换分类 局部类型转换只对指定Action的指定属性生效全局类型转换对指定类型的全部属性都有效 Struts2内建的类型转换器 类型转换错误处理 Struts2提供一个conversionError的拦截器 该拦截器在struts default xml配置 如果Struts2的类型转换器在类型转换时出现错误 该拦截器将负责将对应错误封装成表单域错误 fieldError 并将这些错误信息放入ActionContext中 类型转换的错误处理流程 Struts2的核心 拦截器 当请求到达Struts2的ServletDispatcher时 Struts2会查找配置文件 并根据其配置实例化相对的拦截器对象 然后串成一个列表 list 最后一个一个地调用列表中的拦截器 文件上传和下载 上传 1 加入commons fileupload 1 2 1 jar commons io 1 3 2 jar2 把form表单的enctype设置为 multipart form data method设置为post3 在Action中添加属性PrivateFilefile 该属性与控件名称一致添加代码 FileUtils copyFile srcFile destFile 限制文件上传大小及类型 upload result jsptext plain1024 文件下载 在Action中将下载文件转换为输出流publicInputStreamgetDownLoadFile returnServletActionContext getServletContext getResourceAsStream 文件路径 文件下载 设置文件mime typefilename 文件完整名称 downLoadFile Struts2国际化 国际化 Internationalization 简称I18N国际化是指应用程序运行时 可根据客户端请求来自的国际 地区 语言的不同而现实不同的界面 Java语言内核基于Unicode 提供了对不同国家和不同语言文字的内部支持 因此java对于国际化的支持远比C C 优越 Java程序的国际化 Java util ResourceBundle 用于加载一个资源包Java util Locale 对应一个特定的国家语言环境Java text MessageFormat 用于将消息格式化 资源文件的命名 baseName language country propertiesbaseName language propertiesbaseName Properties其中base
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 六一庆祝活动方案
- 六一活动加营销活动方案
- 六一活动童装店活动方案
- 六一活动送课活动方案
- 六一烹饪活动策划方案
- 六一社区篮球活动方案
- 六一童话世界活动方案
- 六一自助活动方案
- 六一黏土活动方案
- 六年级写班级活动方案
- GB/T 15171-1994软包装件密封性能试验方法
- GB/T 14518-1993胶粘剂的pH值测定
- 数字电路设计及verilog-hdl实现康磊课后答案
- GA/T 974.33-2011消防信息代码第33部分:起火原因分类与代码
- GA 44-2015消防头盔
- 《科学护眼爱眼共享光明未来》近视防控宣传教育课件
- 面向对象分析和设计讲座面向对象方法学PPT资料
- 《财政学》教学大纲中文版
- 高危新生儿急诊服务流程图
- “文化引导型”城市更新思想思考与实践课件
- 卷心菜中过氧化物酶热稳定性的初步研究
评论
0/150
提交评论