ImageVerifierCode 换一换
格式:DOCX , 页数:12 ,大小:290.28KB ,
资源ID:17640996      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/17640996.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(DWR学习笔记Word文档下载推荐.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

DWR学习笔记Word文档下载推荐.docx

1、2 为什么使用 DWR GBP 是建立在 Struts+Spring+Hibernate 之上的 MVC 框架,它的控制层是由 Struts 负责的,而视图层则是通过 JSP 页面呈现。 由上可知,当前台页面向服务器发送一个请求时, struts 调用业务逻辑处理该请求获得处理数据,然后导航到配置的页面上显示结果数据。由此可见, struts 处理请求后一般是跳转到新的页面,浏览器需要进行页面刷新。这与目前流行的通过异步 AJAX 局部刷新页面的方式相比,界面的用户体验显然要差很多。当然 struts 也能实现 AJAX 异步调用,但目前 GBP 系统中对 AJAX 的使用方式比较原始零碎,没

2、有一套完整成熟的规范来约束。而在 GBP 中引入 DWR 的直接目的正是为了正确使用 AJAX ,为 AJAX 异步调用建立一套规范。 在 GBP 架构中可以用 DWR 来代替 Struts 做为控制器,用户请求通过 DWR 进行处理并发送响应。 异步调用过程中, DWR 通过 JSP 页面上的 JS 代码可以直接调用业务处理逻辑的 Java 代码,这个调用过程看起来如下图所示: 使用 DWR 时通过在浏览器端调用 JS 对象的方法就可以触发服务器 JAVA 对象的相应方法,并且自动完成 JS 对象与 JAVA 对象之间的数据类型转换,看起来就像是 Java 代码直接在浏览器上执行一样。其实在

3、 JS 对象并不是直接操作 JAVA 对象的,这之间有一个控制器层, JS 方法调用时将请求发送到 DWR 控制器 DwrServlet ,然后通过 DwrServlet 调用相应的 JAVA 对象。完整的调用过程如下所示: 与 Struts 相比, DwrServlet 接收到模型返回的处理数据后并不是导航到一个新的页面,而是将这些 JAVA 对象数据转化为 JS 对象数据然后发送到调用页面上,在页面上可以通过 JS 操纵 CSS 、 DOM 等方式来局部更新页面。由此可见, DWR 通过异步 AJAX 方式的实现了页面的局部刷新效果,可以取得非常友好的界面体验。 DWR 提供了一种使用 A

4、JAX 的正确规范的方式。 DWR 将 XMLHttpRequest 对象进行封装和隐藏,程序员在开发过程中只需要调用普通的 JS 方法就可以实现 AJAX 的异步调用功能,并且能够方便地处理返回值。因此在 GBP 框架中引入 DWR 可以有效解决滥用 AJAX 的问题,并且可以提高页面响应速度。另外,实践说明,使用 DWR 比使用 Struts 的开发效率更高。3 如何使用 DWR 在 GBP 框架中引入 DWR , DWR 可以作为接收并处理用户请求的控件器存在,与目前系统中的 struts 处于同一层次。如此一来,程序员使用 DWR 的方式几乎与目前的 Struts 一致,学习成本较低,

5、易于快速上手。下面以系统监控为例详细说明如何在 GBP 中使用 DWR 。3.1 编写服务器端的 JAVA 类 在 GBP 框架中, DWR 应该与 Struts 处于同一层次,它不是直接调用业务逻辑 BO ,而是根据统一编号调用相应 service ,再由 service 调用业务处理逻辑。类似 Struts 层的业务 Action , DWR 也存在一个“业务 Action ”,系统监控对应的 DWR 业务 Action 是 com.jiuqi.GBP.action.sysapp.msc.MscControl 类,该类的具体代码如下: 类似于 Struts 中一个 Action 对应一个

6、ActionForm ,一般地,在 DWR 中,一个业务 form (相当于 Struts 的 ActionForm )需要对应一个 DWR 的业务 Action 。系统监控模块通过 QueryConditionExtForm 封装所有的查询指标,因此只需一个 DWR 的业务 Action 即可处理所有请求。 MscControl 类通过 doService 方法可以实现一般情况下对 service 的调用,而 doQuery 方法则专用于分页查询。不同于 Struts 的业务 Action 一个请求必须对应一个方法并且需要在配置文件中提供导航配置的情况,使用 DWR 时上述两个方法可以处理系

7、统监控模块的所有请求而且无需导航配置,代码数量大大减少。当然,实际项目开发过程中, DWR 的 Action 可能需要对前台提交的参数做一些特殊处理,此时只需在 Action 中新起一个专门方法即可。3.2 编写浏览器端的 Javascript 脚本 以系统监控系统日志查询为例,了解一下 DWR 是如何通过 Javascript 脚本发送请求的。 在系统日志查询主界面上点击“查询”按钮时触发如下 JS 脚本: 其中 JS 对象 mscCtrl 就是 Java 类 MscControl 类的 JS 映射,浏览器端 mscCtrl 对 doQuery 方法的调用,通过 DwrServlet 处理转

8、化为服务器端 MscControl 实例对 doQuery 方法的调用,实现查询请求处理。传入的最后一个参数 query_meta_obj 就是用于回调的 JS 对象,它接收服务器返回的数据传给回调函数进行处理, query_meta_obj 对象还封装了发送 DWR 请求时的其它参数。 query_meta_obj 对象代码如下: 其中 callback 属性就是回调函数,用于接收查询结果数据,刷新列表显示结果: 可以看到, DWRUtil.addRows 方法实现了对查询结果列表的更新。 浏览器端对 DWR 的操作过程总结如下: 可以看到, DWR 的处理流程很清晰,对开发人员而言,容易产

9、生困难的地方可能就在回调处理方面,实现 DWR 回调需要一定的 JS 编码经验。脚本文件 /script/util/dwrutil.js 提供了一些通用的回调处理方法,可以作为参考。3.3 配置文件 DWR 的运行需要配置文件的支持。在 GBP 中引入 DWR ,首先需要修改 web.xml 文件并引入 DWR 本身的配置文件 dwr-GBP.xml ,还需要在 Spring 的配置文件中声明服务器端对象的 bean 。 1 、在 web.xml 中 DWR 作为一个 servlet 进行配置:Xml代码 1. BR2. 3. 4. 5. dwr-invoker6. 7. 8. 9. org.

10、directwebremoting.servlet.DwrServlet10. 11. 12. 13. 514. 15. 16. 17. 18. 19. 20. 21. param-namedebug22. 23. 24. 25. param-valuetrue26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. classes42. 43. 44. 45. java.lang.Object46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. logLevel58. 59. 60

11、. 61. DEBUG62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. config-user74. 75. 76. 77. WEB-INF/files/dwr-gbp.xml78. 79. 80. 81. 配置其 URL 映射方式:servlet-mappingurl-pattern/dwr/*/servlet-mapping2 、在 DWR 配置文件 dwr-gbp.xml 中描述浏览器端与服务器端对象的转换关系:dwrallowconvert converter=bean match=com.xxx.gbp.formbean.form.* /

12、create creator=spring javascript=mscCtrlparam name=beanName value=mscControlinclude method=doService/doQuery/create/allow/dwr上述配置表明,浏览器端对象为 mscCtrl ,服务器端对象是一个 Spring 的 bean ,名为 mscControl ,故需要在 Spring 配置文件中声明。4 结论: DWR 是否适合 GBP ? 使用 DWR 的优点: 规范化应用 AJAX ,紧跟业界技术潮流; 提高界面响应速度,增强用户体验; 简化前台开发流程,减少代码量,提高开发

13、效率; 与 GBP 的集成比较容易; DWR 是一个异步 AJAX 框架,非常适合处理异步类请求。但它并不是万能的,在有些方面使用 DWR 并不合适: 确实需要通过 Form 方式提交请求,如保存照片信息时; 处理文件上传下载请求; 处理导入导出请求; 构造树结构时,目前也无法用 DWR 改造; DWR 的优点十分明显,但在处理与 Servlet 耦合度比较高的请求时存在困难。 另外, DWR 在高并发及大数据量情况下的表现尚未经过测试,我对此并不是很放心。 综合 DWR 的优点与缺点,考虑到 GBP 的现有架构,推荐在 GBP 中引入 DWR 框架,做为控制层与 Struts 并存,开发过程中以 DWR 为主,以 Struts 为辅,充分发挥 DWR 的优势,在 DWR 不擅长的地方用 Struts 处理。 推荐指数: 技术难度:

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1