DWR WEB开发交流 1、自我介绍 2、DWR概述 3、DWR DEMO介绍 4、DWR实现机制 5、DWR配置说明 6、JS开发注意事项.

Slides:



Advertisements
Similar presentations
第二章 JSP 编译指令. 课程目标  JSP 编译指令  JSP 页面的表达式  JSP 页面的注释  JSP 页面的声明  Scriptlets.
Advertisements

教师成绩录入步骤 1. 登录教务系统 2. 进入教师成绩管理界面 3. 选择相应的教学班,点击 “ 课程成绩录 入 ” 进入成绩录入界面 4. 点击 “ 设置 ” 按钮设置 “ 成绩分项 ” 5. 录入成绩, “ 保存成绩 ” 按钮可以保存成 绩但不提交(提交后不能再修改成绩) 6. “ 提交成绩 ”
7.2 图示化记忆 记忆的概述 图示化记忆 联想记忆法 奇特联想记忆法 用手记忆.
Java 程序分类 Java Application :是完整程序,需要独立的解 释器解释运行;以 “.java” 为后缀的文件,以 main() 方法作为程序入口,由 java 编译器编译生 成字节码,由 Java 解释器加载执行字节码。 Java Applet 没有 main() 方法作为程序入口,是嵌在.
第 9 章 测试部署  9.1 测试  9.2 部署. 9.1 测试  应用测试:使用 JUnit 单元测试框架 测试的目的是检验开发结果是否满足规定需求,测试是保证软件质量的一个重要手段, 在软件开发过程中是不可缺少的组成部分。 单元测试与集成测试分别有各自的定义:在实际开发中,两者之间的界定是模糊的。
— 高级软件人才实作培训专家 ! 北京传智播客教育 ajax 讲师:韩顺平 qq:
第 7 章 配合 例子源代码一起使用 Power point 制作:耿祥义 张跃平 普通高等教育 “ 十一五 ” 国家级规划教材 JSP 与 JavaBean.
Power point 制作 耿祥义 张跃平 配合 例子源代码一起使用. 第 5 章 JSP 与 JavaBean JavaBean 是一个可重复使用的软件组件, 是遵循一定标准、用 Java 语言编写的一 个类,该类的一个实例称为一个 JavaBean ,简称 bean.
1 网站设计理念 大连理工大学创新实验学院 优秀网站展示 - LAMP 类网站
一、老师申请题目,以下指导老 师操作。 1. 登录教务系统 web 端. 2. 点击 “ 毕业设计 ” 工具栏下拉菜单中的 “ 论文 _ 教师申请题目 ”
动态Web开发技术--JSP.
上节课我们是讲解了request, response, session, application 等内置对象,有了它们,我们就可以编写一个完整的应用程序了。 我们来看ebank这个小应用程序的编写。
移动校园Hybrid应用开发介绍 2015年11月.
C语言程序设计 李伟光.
教學經驗分享 吳毅成 國立交通大學資訊工程系 2012年4月.
讲故事训练 授课人:田轶.
SAE Java 实际应用 在这里写上你的标题 作者名字/日期
基于SSH的web开发 AND 企业级WEB应用开发新技术
校本选修课 第三专题 西藏问题 北京师大二附中 李文燕.
Lua+wax在ios上的应用 白 衣.
第12讲 Javascript 复习 信息学院 孙辉.
個人投資理財分析 財務狀況匯總表 銀行存款 共同基金 外幣基金 股票投資 保險價值 黃金投資 支出預算 房貸計算 不動產價值 資源變化資料庫
第八章 网络课程的设计与开发.
JSTL标签库 讲师:梁 桐 北京传智播客教育 1。缓存数据 2。处理字符乱码 3。监听器中的定时器
第一页是课程的标题 Spring入门示例.
第一章 JSP概述 学习目标 JSP技术是目前WEB开发技术中应用最广泛的一种.本章对JSP技术、优点、缺点、应用前景作了简要介绍。
信 息 与 软 件 工 程 学 院 实验室开放实验介绍.
Mm Framework MakingMobile是一套基于HTML5的手机应用系统开发框架,致力将既有的桌面Web系统平滑延展到手机上。其架构特点强调易用性、延展性、跨平台、解耦化、组件化,主要面向定制性较强的行业应用市场。
J2EE Struts 和Spring 的区别.
正修科技大學教學發展中心 教師教學觀摩與經驗分享 電子工程系 張法憲副教授.
第4章 JavaScript脚本语言基础 4.1 JavaScript简介 4.2 JavaScript语法基础
14 JavaScript语言基础 JavaScript是一种轻量级、解释型的Web开发语言。所谓轻量级,就是语言的体系结构不是很庞杂,例如,没有C、Java等语言中的类、内存管理、系统管理等高深的知识范畴;所谓解释型,就是语言在浏览器或服务器等环境中直接被解释执行,不需要对源代码进行编译操作。
互联网时代班主任的挑战 万玮 2014年9月20日.
蘇軾詞的賞析
柯奕宏(06) 王予亨(13) 郭秉逸(15) 楊雯凈(23) 顏佑瑩(32)
第十五章 传播学调查研究方法.
Ch07 PHP程式基礎 網頁程式設計.
自然與生活科技領域 認識太陽能 蘇紋琪、石明玉.
Selenium 一个用于Web应用程序测试的工具 Robin Ren
Hello World 體驗實作第一個JSP程式.
 全能的天才畫家- 李奧納多‧達文西 (西元1452年-1519年) 指導老師:袁淑芬老師 製作人:饒佩芯.
第9章 过滤器和监听器技术 过滤器(Filter)和监听器(Listener)是两种特殊的Servlet技术。过滤器可以对用户的请求信息和响应信息进行过滤,常被用于权限检查和参数编码统一设置等。监听器可以用来对Web应用进行监听和控制的,增强Web应用的事件处理能力。 本章主要介绍过滤器和监听器的编程接口、基本结构、信息配置、部署和运行,最后通过案例说明过滤器和监听器的典型应用。
AJAX基础.
第9讲 Hibernate查询语言HQL.
崑山科技大學資訊管理系 伺服網頁程式設計 系統開發細部流程 教師:游峰碩.
鄉村尋根-農具篇.
高级Web技术 复 习.
Java语言程序设计 第八部分 Applet小程序.
Spring依赖注入及AOP简介.
NAMO網頁製作教學簡報 講師:李惠茹.
复习 JavaScript && ES6 专题 (1) 2017/3/10 – Payne
AJAX 的 client/server 溝通機制探究
認識我的故鄉_台中市.
前端技术开发 高莺.
第3章 Java語法的JSP程式 3-1 Java語言的基礎 3-2 JSP程式的基本架構 3-3 Java的變數與資料型態
JavaScript Sunxiaoshen.
Java Server Faces 参考书籍 Java Server Faces 核心编程.
精忠报国  演唱:屠洪纲 作词:陈涛 作曲:张宏光  狼烟起 江山北望  龙起卷 马长嘶 剑气如霜  心似黄河水茫茫  二十年 纵横间 谁能相抗  恨欲狂 长刀所向  多少手足忠魂埋骨它乡  何惜百死报家国  忍叹惜 更无语 血泪满眶  马蹄南去 人北望  人北望 草青黄 尘飞扬  我愿守土复开疆  堂堂中国要让四方来贺.
主编:钟元生 赵圣鲁.

第三章 世界文明的蛻變與互動 第一節 歐洲社會的蛻變 第二節 世界文明的交匯 第三節 亞洲大帝國的發展 1.
樂樂請假了 尊重的故事 資料來源:臺北縣國民小學品德教育手冊 故事來源:臺北縣國民小學品德教育手冊 網路小故事
Javascript 基础 面向非JS语言的开发人员.
“修身成材” 班级干部培训班 黑龙江大学党委学工部.
Scala编程
方格紙上畫正方形.
第5章 表达式语言.
JavaScript 教师:魏小迪
第四章 jsp语法 4.1 jsp页面的基本结构 一个jsp页面可由五种元素组合而成: 普通的html标记符
電子表單 簡介 高雄市鳳山區新甲國小 陳信宏.
Presentation transcript:

DWR WEB开发交流 1、自我介绍 2、DWR概述 3、DWR DEMO介绍 4、DWR实现机制 5、DWR配置说明 6、JS开发注意事项

DWR WEB开发交流 2、 DWR (Direct Web Remoting )概述

DWR WEB开发交流 2、 DWR (Direct Web Remoting )概述 DWR是一种AJAX(Asynchronous JavaScript and XML)的JAVA实现,它提供了一种能在web浏览器端采用JavaScript语言直接调用后台业务商业组件的解决方案。DWR通过JavaScript直接调用远程组件可以减少Web开发的时间,特别对于那些具有和用户频繁交互的Web应用程序。DWR使得浏览器不用刷新页面就可以从远程Web服务器取得用户需的数据,这种无刷新页面的交互方式大大提高Web页面的响应时间。至少用户不会感觉到刷新页面带来的等待响应心理感觉。DWR采用浏览器端采用纯JavaScript实现,并且会自动根据浏览器类型采用最高效率的远程组件调用机制。DWR目前最新发布的稳定版本为1.0。本次项目中采用的也是目前的最新发布版本1.0。

DWR WEB开发交流 2、 DWR (Direct Web Remoting )概述 DWR所带来的 彻底分离表现和业务逻辑,让糟糕的Scriptlets代码从此从Web页面上消失。 展现页面只需加载一次节省网络带宽、提高用户响应响应时间。实际 应用中HTML页面标记数据量远远大于真正使用的数据量,资源重复浪 费不容忽视。 页面代码对页面展现样式没有任何的破坏型影响,程序员不再担心因编码而破坏页面展现样式细节。提高Web开发效率和速度。 Web服务器的Servlet容器可以节省管理成千万个Servlet生命周期的资源开销。这是确实是个振奋人心的好消息。

DWR WEB开发交流 3、DWR DEMO介绍 通过一个Demo简要说明DWR技术开发Web应用程序的主要步骤和配置规则。从而达到对DWR有个概要层面上的了解和认识,这对下一步DWR实现机制的介绍会有比较好的促进效果。 1、 编写服务器段逻辑代码。代码尽量能够覆盖DWR开发的多个方面,具有比较强的代表性。 2、 简要演示DWR的配置文件的配置和与WEB应用的集成方法。 3、 编写Web端调用服务器端代码事例,主要体现异步处理,回掉函数,JS代码对象结构,Map对象构件,实用组件介绍。

DWR WEB开发交流 3、DWR DEMO介绍 JavaScript Java Array数组 List、Collection、数组 Boolean Object Map、Java Bean String Date Numbers Int、double、float等数值 XML Dom Dom undefined null

DWR WEB开发交流 3、DWR DEMO介绍 2、Java组件的编写和发布以及客户端引用 实体类必须遵循Java Bean规范即实现Getter和Setter 配置文件中Allow部分的Create元素的JavaScript属性的值要唯一 如果存在Java Bean需要转换则要配置Allow部分的Convert元素 客户端引用业务组件要以dwr/interface/xxx.js的路径引用JS文件

DWR WEB开发交流 3、DWR DEMO介绍 3、典型调用示例和回调函数 简单字符串示例 Map集合类型示例 List集合类型示例 组合对象输出示例 组合对象输出示例 两种回调函数的写法和使用场合

DWR WEB开发交流 4、DWR 实现机制 1、DWR主要组成部分 JS引擎 总控制器 组件执行器 数据转换器

DWR WEB开发交流 4、DWR 实现机制 1、DWR前台引擎(Engine.js)的主要职责 截取每个后台组件的请求实现客户端的统一入口 检测客户端浏览器的环境并选择最佳的数据提交方案 处理后台执行结果并通过执行回调函数通知客户

DWR WEB开发交流 4、DWR 实现机制 2、后台控制器(DWRServet)的主要职责 装载Servlet时初始化DWR配置参数 实现后台业务组件调用的服务器端统一入口 分发各种不同类型的请求 JS文件请求 业务调用请求等 输出组件执行结果(JavaScript语句)到客户端浏览器

DWR WEB开发交流 4、DWR 实现机制 3、业务组件执行器的主要职责 根据配置文件的参数确定后台组件的访问规则和生命周期 拆包前台传入的参数 包装组件执行结果 按参数类型匹配数据类型转换器 采用反射机制执行业务组件方法处理客户端请求 处理与其他系统的接口和协作 如:Spring Hibernate等

DWR WEB开发交流 4、DWR 实现机制 4、数据类型转换器的主要职责 将一系列单个的参数转换成对应的Java对象 将Java对象转换成JavaScript对象

DWR WEB开发交流 4、DWR 实现机制 5、跟踪调式DWR原码详细说明其执行步骤 说明后台组件对应的前台JS文件的结构 查看总控制器分发各种类型请求代码 观察业务执行器对浏览器传入参数的再次分类 以Bean转换器说明JavaScript和Java数据类型的转换机制 说明业务组件执行结果的JavaScript表现形式 前台引擎如何处理后台传入的结果并调用回调方法

DWR WEB开发交流 5、DWR配置说明 DWR配置文件主要有以下四个部分组成 1、web.xml文件主要配置DWR的后台控制器和配置文件的载入(略) 2、dwr.xml的初始化配置部分Init 3、dwr.xml的业务组件发布和调用规则配置部分Allow 4、dwr.xml的业务组件方法签名配置部分Signatures

DWR WEB开发交流 5、DWR配置说明 2、dwr.xml的初始化配置部分Init Init是配置DWR主要是配置业务组件的生成规则和基本数据类型的转换器配置。DWR内置了4种业务组件生成规则new、null、spring、scripts。数据类型转换器DWR内置了Boolean等16种转换器。(一般情况下可以不用配置,如果配置重复可能会有无法预料的后果) 一、creator元素 主要用于前台JS业务组件对象的生成器如Spring、 New、Scripts等。 <creator id="spring“ class="uk.ltd.getahead.dwr.create.SpringCreator"/> 二、converter元素用于配置各种数据类型的转换器如String、Array等。 <converter id="map" class="uk.ltd.getahead.dwr.convert.MapConverter"/>

DWR WEB开发交流 5、DWR配置说明 3、dwr.xml的业务组件发布和调用规则配置部分Allow Allow部分是配置业务组件的发布和访问控制规则的一些参数选项,这部分是DWR配置的重点部分。其主要有以下两个子节点组成: 一、create元素 这个元素是配置后台业务组件的创建规则和组件方法的 访问规则。 二、convert元素 这个元素是配置Java对象和数据类型对应的转换器。DWR内置了所有java基本数据类型的转换器。基本数据类型的对象形式也采用同一的转换器转换。

DWR WEB开发交流 5、DWR配置说明 5、DWR配置说明 3、dwr.xml的业务组件发布和调用规则配置部分Allow Create配置元素详细说明: 属性: Creator 配置业务组件的创建类型。主要有四种:Spring、New、 none 、Scripts。 JavaScript 前台页面javascript引用此组件的名称。名称需要唯一。 scope 组件的作用范围或则叫做生命周期。这个和Servlet的生命周期的作用是 一样的。共Session、request、application、page四个选项。

DWR WEB开发交流 5、DWR配置说明 5、DWR配置说明 3、dwr.xml的业务组件发布和调用规则配置部分Allow Create配置元素详细说明: 子节点: Param 配置业务组件的创建参数。Name属性设置名称,value属性设置业务组件的具体路径(类全名称)。 Include 授权方式保护业务组件方法的可见性。属性method可以访问的方法名称。如果没有配置则默认为所有方法都可以访问。 exclude 排除方式保护业务组件方法的可见性。属性method设置不可以访问的方法名称。除此之外的都可以访问。如果有需要控制业务组件方法的访问权限时建议采用这种方式。 Auth 采用EJB的角色访问控制方式。Method属性设置可以访问的方法名称,role属性设置访问角色。

DWR WEB开发交流 5、DWR配置说明 5、DWR配置说明 3、dwr.xml的业务组件发布和调用规则配置部分Allow Convert配置元素详细说明: 属性: converter 配置数据类型的转换器。一般是设置bean转换器,因为基本类型的转换器DWR默认设置。 match 设置要使用此转换器的java实体对象。如: <convert converter="bean" match="demo.entity.*"/> 子节点: Param对象属性的转换规则,name属性设置规则有include和exclude选项,作用和组件方法控制的一样。Value属性设置实体对象的属性。默认是所有属性都进行转换。

DWR WEB开发交流 5、DWR配置说明 5、DWR配置说明 4、dwr.xml的业务组件方法签名配置部分Signatures Signatures是用来配置Java Bean数据类型转换时遇到不能确定转换类型的情况。如: Bean.setList(List a)方法,DWR设置集合a的时候就无法确定a这个集合里需要填充哪种数据类型。所以针对有输入集合对象的情况就需额外设置Signatures配置节点来设置。这个节点的配置如下: <signatures> <![CDATA[ import java.util.List; import demo.entity.*; import demo.busi.*; Customer.setAccounts(List<Account> accounts); DemoBusinessObject.getListSet(List<Contact> inList); ]]> </signatures>

DWR WEB开发交流 5、DWR配置说明 5、DWR配置说明 4、dwr.xml的业务组件方法签名配置部分Signatures 熟悉C++模板编程或java范型编程的开发人员对这些东西并不陌生。这里主要是采用范型机制来设置bean转换时的集合元素类型。注意DWR有套解析机制所以这里并不需要JDK1.5的支持。 Signatures主要有两个部分: Import部分 和java文件的作用一样 另一部分对方法的签名进行范型的设定。返回结果的集合元素类型不需要设置,因为可以在运行时确定。

DWR WEB开发交流 6、JS开发注意事项 1、要注意DWR异步机制带来的数据可能不同步问题 2、返回结果只能是一个值所以要详细设计返回结果类型 3、要注意Java引用传递和JavaScript值传递的差异 4、连续多次后台请求尽量采用批量调用 5、尽量将JavaScript的逻辑处理代码抽取成一个独立的文件