JSP Ajax 使用DWR框架

合集下载

DWR使用步骤

DWR使用步骤

DWR(direct web remote)是一个基于服务器端的ajax框架。

通过该框架,我们可以使用js来直接调用java方法。

Prototype.js是一个基于浏览器其端的ajax框架,只需要引入prototype.js即可使用。

Jquery:1.引入jar包到WEB-INF/lib2.web.xml中写入:<servlet><servlet-name>dwr-invoker</servlet-name><servlet-class>uk.ltd.getahead.dwr.DWRServlet</servlet-class><init-param><param-name>debug</param-name><param-value>true</param-value></init-param></servlet><servlet-mapping><servlet-name>dwr-invoker</servlet-name><url-pattern>/dwr/*</url-pattern></servlet-mapping>3.建立java类(普通java类即可,不是servlet)TestClasspublic class TestClass {public void testMethod1(){System.out.println("hello dwr!");}}4.在/WEB-INF/dwr.xml中配置java类:<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 2.0//EN" "/dwr/dwr20.dtd"><dwr><allow><create creator="new" javascript="testClass" ><param name="class" value= "com.dwr.TestClass" /></create></allow></dwr>5.在1..html中使用,需要首先引入:(需要保证dwr这个目录位于web应用的根目录)<script src='dwr/interface/testClass.js'></script><script src='dwr/engine.js'></script><script src='dwr/util.js'></script>6.在javascript方法中调用后台java类方法:function test(){testClass.testMethod1();}用dwr调用有参数或有返回值的java方法:function test(){testClass.javaMethod2("bbb",parseInfo);//若java方法需要传参,处理响应数据的函数名放到参数列表后面。

dwr 调用方式

dwr 调用方式

DWR调用方式1. 什么是DWRDWR(Direct Web Remoting)是一个开源的Java框架,用于简化在Web应用程序中使用Ajax技术。

它提供了一种简单的方式来将Java代码暴露给JavaScript,并使得在客户端和服务器之间进行远程通信变得更加容易。

DWR允许开发人员通过直接调用服务端的Java方法来处理客户端的请求,而无需编写大量的JavaScript代码来处理网络通信。

这使得开发人员可以更专注于业务逻辑,而无需过多关注底层的网络细节。

2. DWR调用方式DWR提供了多种方式来进行远程调用,包括:2.1. 代理方式(Proxy)代理方式是最常见和推荐的一种DWR调用方式。

通过代理对象,我们可以直接调用服务端的Java方法,并将结果返回给客户端。

在客户端,我们需要首先创建一个代理对象,该对象负责与服务端进行通信。

我们可以使用dwr.engine命名空间下的Proxy对象来创建代理对象,并指定要调用的Java类和方法。

var proxy = new dwr.engine.Proxy();proxy.setRemoteClass(MyService);proxy.setRemoteMethod('myMethod');在上述代码中,MyService是服务端中定义的Java类,myMethod是该类中的一个方法。

然后,我们可以使用代理对象来调用服务端的方法,并处理返回的结果。

proxy.myMethod(param1, param2, {callback: function(result) {// 处理返回结果},errorHandler: function(message) {// 处理错误信息}});在上述代码中,param1和param2是传递给服务端方法的参数。

callback函数用于处理返回结果,而errorHandler函数则用于处理错误信息。

2.2. 反向Ajax方式(Reverse Ajax)反向Ajax方式是一种特殊的DWR调用方式,它允许服务端主动推送数据给客户端。

DWR(DirectWebRemoting)

DWR(DirectWebRemoting)

把请求翻译成服务器端 Java 对象上的方法调用并把方法的返回值放在 servlet 响应中发送回客户端,编码成 JavaScript。
DWR 还提供了帮助执行常见的用户界面任务的 JavaScript 工具函数。
4. 新手上路(Getting Started)
1. 创建一个 Web Project:dwrdemo 这是一个利用 dwr 框架动态更新页面内容的简单例子: 输入人名, 然后提示:Hello, 人名 2. 安装 DWR 的 Jar 包 下载dwr.jar文件 (/dwr/download)。把它放到你的web应 用的WEB-INF/lib目录下。 此外,还需要一个 common-loggging.jar 包,同样的放置在应用的 WEB-INF/lib 目 录下。
5. DWR 配置文件详解
1. <allow>
它是根元素<dwr>的直接子元素。其子元素有<create>和<convert>。 allow 部分定义的是 DWR 可以创建和转换的类。远程的 beans 会被创建 (created),而参数会 被转换(converted)。 例如: bean A 有一个方法 A.dig(B),那么需要一个 A 的创建器(creator)和 B 的转换器 (converter)。
2. <ቤተ መጻሕፍቲ ባይዱreate>
每个被调用的类都需要一个<create …> 来定义。 <create>的属性 <create>包含了 creator、javascript 和 scope3 个属性 creator 属性取值: new 使用 java bean 缺省构造方法创建对象 spring 使用 Spring 的 IoC 创建对象 …… javascript 属性取值: 指定在浏览器中新创建对象的名称。应该避免使用 JavaScript 的关键字。 scope 的取值: application、session 、request 、page

Ajax技术考试题目

Ajax技术考试题目

AJax笔试题目1. 以下( A,C )是针对XML文档的定义和规范。

【选两项】A. DTDB. SGMLC. SchemaD. complexType2. 关于XML的语法规则,下列说法中错误的有( C,D )。

【选两项】A.XML文档必须有且只能有一个根元素B.XML文档中的标签(元素)区分大小写C.XML文档中的元素和属性都必须加引号D.XML文档中一个属性可以包含多个值3. 以下选项中,XML元素中的子元素转换成属性表示正确的是( A )。

<书桌><长>1100mm</长><宽>600mm</宽><高>710mm</高></书桌>A.<书桌长="1100mm" 宽="600mm" 高="710mm"></书桌>B.<书桌长="600mm" 宽="710mm" 高="1100mm"></书桌>C.<书桌长="700mm" 宽="600mm" 高="1100mm"></书桌>D.以上都不正确4. 关于XML Schema相比DTD的优势,以下说法错误的是( D )。

A.Schema可以更容易地描述文档内容B.Schema可以更容易地与来自数据库的数据一起工作C.Schema可以更容易地定义数据约束D.Schema更容易嵌入到XML文档中进行验证5. 关于DOM级别,下列说法中正确的有( A,B )。

【选两项】A.DOM级别是W3C组织的DOM规范B.DOM级别1专注于文档模型C.DOM级别2专注于文档模型D.DOM级别2规定了DTD和Schema6. 关于XML节点树,下列描述错误的是( D )。

JSP Ajax Ajax框架概述

JSP Ajax  Ajax框架概述

JSP Ajax Ajax框架概述在使用JavaScript、XML、DOM等技术编写Ajax页面时,我们需要考虑很多问题,如针对不同的浏览器,需要使用不同的方式创建XMLHttpRequest对象,以达到在所有的浏览器都能够浏览演示。

编写一个Ajax案例,如果还是采用以前的A jax设计方法,不可以避免的要产生大量的重复性代码,如每个Ajax页面都需要创建XMLHttpRequest对象,对XML文件的处理方式等。

编写Ajax页面的大量时间浪费在这些重复性的代码上,显然有点不划算。

这些情况对一个优秀的程序员来说,根本不是问题。

我们可以把这些重复性的代码,多次需要调用的代码,以面向对象的方式封装到一个文件里面,如创建XMLHttpReq uest对象。

把重复性、关键性代码封装起来,能够达到代码重复重用的目的,能够很好的维护程序和调试程序。

把重复性代码封装起来,做出独立的文件,这里文件的扩展名为.js。

利用这些封装JavaScript文件可以形成自己的代码库,进而形成属于自己的框架。

创建属于自己的Ajax代码库,会花费大量的时间,并且还需要时刻注意代码库的Bug并进行修正。

对于个人来说,还不如使用一些现成的Ajax框架,毕竟这些框架是经过优秀程序员创建和大量的用户测试。

从Ajax诞生以来,人们就发现使用Ajax框架可以带来极大的方便,节省了大量的时间和精力。

于是,大量的Ajax框架诞生了,Ajax框架很多,几乎每月都要产生一些新的框架。

有些框架基于客户端,有些基于服务器端;有些专门为特定语言设计,如Java。

另外还有一些与语言无关。

其中绝大部分都是开源的,但也有少数是专用的。

经过Ajax框架的发展,一些框架已经逐渐被淘汰,一些框架被保留了下来。

Ajax框架由于代码库封装代码的不同,可以分为基于浏览器的Ajax框架和基于服务器端的Ajax框架。

基于服务器端框架可以划分两种形式,分别为HTML/JS Generation(HTML/JS生成)和远程交互。

JSP Ajax 部署DWR框架

JSP Ajax  部署DWR框架

JSP Ajax 部署DWR框架如果要使用DWR框架开发Ajax程序,需要部署DWR框架。

DWR框架的部署非常简单,下载一个压缩文件,配置两个文件就可以了。

在部署DWR框架之前,需要下载DWR框架的代码库,其名称为dwr.jar。

DWR框架的官方网站地址为htt p:///dwr/,下载过程非常简单,这里就不再介绍,读者也可以从其他网站上下载DWR框架的最新版本。

DWR框架现在最新的版本为DWR 2.0.5(对于2. 0版本的DWR要求注册),读者如果不愿意下载,可以使用本书光盘所带的dwr.jar 包。

在这里采用一种非常简单的方法部署DWR框架,当然还有其他的方式。

部署DWR框架的步骤分别为安装DWR框架代码库、编辑和配置文件,最后是测试D WR框架。

1.安装dwr.jar压缩包将下载后dwr.jar压缩包,复制到Tomcat安装目录下的lib文件内;笔者配置时,直接将该压缩包放入C:\Tomcat 6.0\lib文件内。

文件放置完成后,重新启动Tomcat 服务器。

2.配置文件进入到Tomcat的运行目录下,即C:\Tomcat 6.0\webapps内。

创建文件夹DWR Example用来存放创建的DWR框架文件。

在DWRExample创建WEB-INF文件夹,使用DWR需要在web.xml中声明DWR Servlet,以下是保证DWR运行的最基本的代码,缺少哪一部分DWR都不能正常运行。

上述代码的含义是在web.xml 文件中,加入了一个Servlet文件,该文件名称为dwr-invoker,该文件路径在org.di rectwebremoting.servlet.DwrServlet内,实际上就是在dwr.jar压缩包中。

该Servlet文件具有属性,属性名称为debug,值为true。

访问该Servlet文件的URL路径是/ dwr/*。

web.xml文件只能声明要使用的DWR Servlet文件,如果完成JavaScript函数和Java方法之间的映射,还需要进一步配置。

JavaScript调用java方法——dwr步骤

JavaScript调用java方法——dwr步骤

1.下载dwr.jar直接复制到到你工程下的WebRoot/WEB-INF/lib包下2.在修改web.xml<servlet><servlet-name>dwr-invoker</servlet-name><servlet-class>uk.ltd.getahead.dwr.DWRServlet</servlet-class> <init-param><param-name>debug</param-name><param-value>true</param-value></init-param></servlet><servlet-mapping><servlet-name>dwr-invoker</servlet-name><url-pattern>/dwr/*</url-pattern></servlet-mapping>添加到</web-app>之前3.在WEB-INF下建一个dwr.xml文件,拷贝文件<!DOCTYPE dwr PUBLIC"-//GetAhead Limited//DTD Direct Web Remoting 1.0//EN""/dwr/dwr10.dtd"><dwr><allow><create creator="new" javascript="Demo"><param name="class" value="your.java.Bean" /></create></allow></dwr>说明:每个dwr代理的一个java类都需放在<allow></allow>中。

htmlUnit介绍

htmlUnit介绍

htmlUnit介绍2011-04-21 14:32一、HtmlUnit简介HtmlUnit是Junit 的扩展测试框架之一,该框架模拟浏览器的行为,开发者可以使用其提供的API对页面的元素进行操作,套用官方网站的话HtmlUnit“是Java程序的浏览器”。

HtmlUnit 支持HTTP,HTTPS,COOKIE,表单的POST和GET方法,能够对HTML文档进行包装,页面的各种元素都可以被当作对象进行调用,另外对JavaScript的支持也比较好。

二、HtmlUnit在实际项目中的应用在官网上下载最新版本HtmlUnit-2.3.zip,解压缩之后,将jar包添加到自己的测试工程之中。

2.1 载入页面HtmlUnit已经封装好了HTTP请求的方法,对于请求一个页面,举例如下:final WebClient webClient = new WebClient();final HtmlPage page = (HtmlPage) webClient.getPage("");这就是一类比较常用的形式,WebClient是一个浏览器对象,含有多种浏览器上可进行的操作方法,getPage函数就是通过url取得要访问的页面。

getPage返回的文档被转化为HtmlPage 对象,也就是被包装为HTML格式的对象,该对象可以输出页面的内容,标题,或者一个表格等等。

在fc-mars具体实施中,将sf-web登录页面url写在外部配置文件中,运行时自动读取url然后载入登录页面2.2 模拟用户登录HtmlUnit对js 的支持也不是很完善,有时载入js就会报错,在不影响被测功能的前提下,可以通过client.setJavaScriptEnabled(false) 的方法设置当前js为无效。

为了方便模拟用户登录程序的执行,验证码最好设置为一个固定值,剩下的工作就是执行一个POST请求了,代码片段如下:URL url = new URL("");WebRequestSettings reqSet = new WebRequestSettings(url,SubmitMethod.POST);List reqParam = new ArrayList();reqParam.add(new NameValuePair("entered_login", username));reqParam.add(new NameValuePair("entered_password", password));reqParam.add(new NameValuePair("entered_imagecode", verifycode));reqSet.setRequestParameters(reqParam);HtmlPage mypage = (HtmlPage)client.getPage(reqSet);通过上述代码可以看出对HTTP请求的实现方式,通过SubmitMethod来指定POST或者GET 方法类型,将请求的参数赋给WebRequestSettings对象,最后以getPage的方法将请求发送给服务器。

基于DWR反向AJAX的Web监控系统

基于DWR反向AJAX的Web监控系统

ry re J tc n lg e es A AX e h ooy, a d n wi c mbn t n a a he d n Se n Smai S 4 0 L T PI c mmu iain t o iai J v tra a d ime s i tc 7— 0 P C C / h o P o nct mo ue o d l
Ke r s:W e CAD ;DW R; A AX;p sig y wo d bS A J u hn
目前 We b监 控 系 统 已 经 得 到 了普 遍 运 用 , 多 新 的 许 监 控 系 统 都 采 用 了 We b作 为 监 控 系 统 的 客 户 端 ,极 大
1 D R 技 术 W
摘 要 : 采 用 D WR 框 架 和 反 向 A A J X, 结 合 J v a a多 线 程 技 术 和 Se n Sm t S — 0 P C ime s i ai 7 4 0 L c
T PI C /P通 讯 模 块 C 2 3 I 开 发 了 新 的 We P 4 一l T, b监 控 系统 , 应 用 在 供 热 公 司 供 热 管 路 监 控 系 统 中 。 并
其 替代 了原 有 的 C S模 式 的工 业控 制 机 , 到 了用 户 的功 能 需 求 。 / 达
关 键 词 :We b监 控 ; WR; J X; 技 术 D AA 推
中 图分 类 号 :T 2 4 P 7 文 献 标 识 码 :B 文 章 编 号 :17 — 7 0 2 1 13 0 6 — 3 6 4 7 2 (0 0 1 — 0 0 0
1 1 DW R 框 架 .
方 便 了 监 控 系 统 的 操 作 管 理 人 员 , 轻 了监 控 系 统 的维 减 护 成 本 。 如 何 解 决 传 统 We b监 控 系 统 的 数 据 读 取 请 求 ,

JSP Ajax 身份验证

JSP Ajax  身份验证

JSP Ajax 身份验证现在结合前面所学习的DWR框架知识,创建一个案例,演示DWR框架的使用。

该案例主要是一个身份登录验证。

1.服务器端代码首先创建JavaBean,打开记事本,输入下列代码:将上述代码保存,名称为Login.java。

将该文件保存在/WEB-INF/classes文件夹下。

保存完毕后,编译该文件。

打开命令提示符窗口,输入下列命令“javac –d . Login.java”编译。

上述代码主要创建Login类,进行身份校验。

如果用户名称为“刘海松”并且密码为“123456”,则成功登录,否则提示错误信息。

2.配置文件JavaBean编写完成后,还需要编辑dwr.xml文件。

打开该文件,在里面输入下avaBean文件Login.java。

到这里服务器端文件的基本完成。

3.客户端代码上面步骤完成后,就可以编写客户端代码了。

打开记事本,输入下列代码:将上述代码保存,名称为login.jsp。

在该文件中,需要引入两个关键性js文件,分别为engine.js和Login.js。

这两个js文件都是DWR框架自动生成的。

其中engi ne.js文件对应者后台封装代码。

而Login.js文件对应着刚才我们在dwr.xml文件中创建的Login对象。

如果要使用Login对象必须把该Login.js文件包含在当前页面。

并且我们还需要把Login.js文件进行下载,保存到和login.jsp文件同一文件夹下。

如果要下载Login.js文件,需要重新执行http://localhost:8080/MyDWR/dwr路径,在显示的页面上单击Login超级链接,会显示和10-3相似的窗口。

在该页面中,找到Login.js下载。

同时也需要包另外两个js文件下载,并放到指定位置。

4.运行上述一切完成后,就可以运行DWR框架编写的页面了。

打开IE浏览器,在地址栏中输入http://localhost:8080/DWRExample/login.jsp,单击【转到】,会显示如图10-5所示窗口,在该页面中文本域中任意输入代码,会在窗口右侧显示回复信息。

基于DWR框架快速开发AJAX应用程序

基于DWR框架快速开发AJAX应用程序

理相 当于 在 用户和 服务 器 之 间加 了中 间层 即 A A 引擎 , J X 使用户 操作 与服 务器 响应 异步化 。 而消 除 了网络交互 过 从 程 中的处理 一等待 一处理缺 点。用户 的浏 览器 在 执行任 务
时即装 载 了 A A 引擎 。 J 引擎 , J X AA X 实际 上是一 个 比较 复 1概 述 a a ci 应 p 它负责 编译 用户界 面及 与服 务 近年 来随着 ltre 的迅速 发展 , 于 各种 技术 的 网 杂 的 J v S r t 用程序 , ne n t 基 器 之 间的 交互。A A 引擎 允 许用户 与应用软 件 之间 的交 J X 络应 用程 序广泛 应 用于 人们 的生 活 中。BS架构 由于 零部 / 互过 程异 步进行 , 立于 用户 与 网络服务 器 间 的交流。 现 独 署, 易升 级 , 作 简单 等 巨大优 势 , 速成 为企 业应 用软件 操 迅 在 可 以 用 J v S r t调 用 A A 引 擎 来 代 替 产 生 一 个 a a ci p J X 系统 架构 的主流 。然 而在过 去几 年 中 , 人们 在服 务器 端 的 "- q 内存 中的数 据 编辑 、 面 导航 、 据 校 页 数 开发 投入 了大量 的精力 , 种成 熟 的开发 框架 以及 开发 技 HlP的 用户动作 , 各 验 这 些 不需 要 重 新 载入 整 个 页 面 的 需 求 可 以 交给 A A J X 术 的不 断出现 ,使得 We b应用 程序在 性 能等 方面 有 了很 来执行 。 大 的提高 。然而 W e b用户 界面 对 响应 灵敏 方面却投 入 不 AA J X实质 上也 是遵循 R q e t ev r 式 , 以基 e u s/ re 模 S 所 足。 在传 统 的 We b应用采 用 同步交互 过程 中 , 户首先 向 用 本 上 的流程 是 : 对象初 始 化 , 送请 求 , 务 器接 收 , 务 发 服 服 H _P服务 器发送 一 个请求 。 后服务 器执行 某 些任 务 , 1r 然 再 器返 回 , 户端接 收 , 改客 户端页面 内容。 不过这 个过 客 修 只 向发 出请 求 的用户 返 回一 个 H ML页面 。 这是 一种 不连 T 程 是异步 的 , 图 2为 A A 异步 交互过 程。 下 J X 贯 的用户 体 验 , 服务 器 在 处理 请 求 的时候 , 户 多数 时 间 用 处于 等 待 的状态 。 当软 件 设计 越来 越讲 究人 性化 的时候 , ;览 用 界 浏器 户 面 { 这种用 户体验 简直 与这种 原则 背道 而驰。随着 A A J X技术 用动 户 、 八 输厂 、八 ,厂 出 ; 出 输 的 出现 , 使得 We b应用 可以 为用户 提供 更加 自然 、 灵敏 的 i 活 ,

基于DWR的AJAX技术研究与实现

基于DWR的AJAX技术研究与实现
p bi Sr g h w(tn r { u l tn o Sr gs ) c i s i t
r t n t ; e ur s r
} }
2 )编 写并配 置 D WR 组件 到 d r ml w . 文件中 ,如果有必要 ,配置 cn e ,进 行 Jv x ovr t a a和 Jv sr t aac p 类型互 i
<ce e / ra > t < a lw> /l o <d > / wr
运行在服务器端 ,所 以代码 的安全 性也可以通过访 问权的控制得 以保证 . 2 DWR在 We b开发 中的应用
D WR 在使用 中就是一个 S rl ,它将 AJ X 作 了一次封 装,并提供客户端 的 Jv sr t e e vt A aac p 与服务器端 Jv i aa 组件进 行数据 交换 ,并根据其交换 结果 ,控 制网页的表现 ,更浅显些 ,D WR就 是在客户端用 Jv sr t aaci 来调用 p 服务器 端的 Jv aa服务 .技术 上,D WR是基 于 Jv , 自动生成 Jv sr t aa a aci 代码发送 到客户端 ,而 这些 Jv s p p aac t i f 代码则符 合 AJ X 技术 ,接 受用户 请求,与服务器进行交互 . A 下 面通过 一个 简单的例子来说 明 D WR 的配置及 实现机 制.这个例子 的功能是 实现在对话框 中提 交一些信
转 .本例 中配置如下 .
< wr d >
收 稿 日期 :2 1 —42 0 00 .7
作 者简 介 :赵
宇 (9 1) 男, 18一 , 河北 唐 山人 , 山师 范 学院 计算 机科 学系 教师 唐
司文 彦 (94 ) 女, 17一 , 河北 衡水 人, 山师 范 学院计 算机 科 学系 教师 唐

JSP Ajax

JSP Ajax

JSP Ajax DWR框架概述Direct Web Remoting简称为DWR,该框架直接把JavaBean的方法公开给Jav aScript代码并自动进行Ajax的繁重工作,DWR是一个Java开源类库,专门用来开发Ajax网站。

它可以使运行在服务端的Java方法好像运行在本地浏览器中一样。

从最简单的角度来说,DWR是一个引擎,可以把服务器端Java对象的方法公开给JavaScript代码。

使用DWR可以有效地从应用程序代码中把Ajax的全部请求-响应循环消除掉。

这意味着客户端代码再也不需要直接处理XMLHttpRequest对象或者服务器的响应。

不再需要编写对象的序列化代码或者使用第三方工具才能把对象变成XML。

甚至不再需要编写Servlet代码把Ajax请求调整成对Java域对象的调用。

DWR作为Web应用程序中的Servlet部署。

把它看作一个黑盒子,这个Servle t有两个主要作用:首先,对于公开的每个类,DWR动态地生成包含在Web页面中的JavaScript。

生成的JavaScript包含存根函数,代表Java类上的对应方法并在幕后执行XMLHttpRequest。

这些请求被发送给DWR,这时它的第二个作用就是把请求翻译成服务器端Java对象上的方法调用并把方法的返回值放在Servlet响应中发送回客户端,编码成JavaScript。

DWR 还提供了帮助执行常见的用户界面任务的Jav aScript工具函数。

设计DWR的目的是,要处理将Web页面安装到后端服务上所需的所有信息管道。

它是一个Java框架,可以很轻松地将它插入到Web应用程序中,以便JavaScr ipt代码可以调用服务器上的服务。

它甚至直接与Spring Framework集成,从而允许用户直接向Web客户机公开bean。

DWR真正的巧妙之处是,在用户配置了要向客户机公开的服务之后,它使用反射来生成JavaScript对象,以便Web页面能够使用这些对象来访问该服务。

DWR高级主题之反向Ajax(DWR3介绍)

DWR高级主题之反向Ajax(DWR3介绍)

DWR高级主题之反向Ajax(DWR3介绍)DWR高级主题之反向Ajax(DWR3介绍)分类:DWR2011-12-23 14:171850人阅读评论(3)收藏举报DWR高级主题之反向Ajax(DWR3介绍)----------我们在前面使用的DWR主要是基于DWR2.X版本的,这里我们针对DWR3进行介绍,介绍一些提示或技巧。

1. ScriptSession生命周期(创建ScriptSession以及让ScriptSession失效)当/dwr/engine.js被包含进页面时ScriptSessions就创建了。

默认情况下,ScriptSessions的生命周期由org.directwebremoting.impl.DefaultScriptSessionManager维护。

如果你调用下面这个javascript方法:[html] view plaincopy?dwr.engine.setNotifyServerOnPageUnload(true); 当页面被卸载(比如强制刷新页面,卸载再加载)时,将对ScriptSessionManager发出一个远程的DWR调用,通知它让ScriptSession失效。

DWR通过这个默认的同步调用,可以很好地让ScriptSession失效。

关闭浏览器时,此同步调用可能会导致延迟。

如果不喜欢,你可以传递第二个参数给dwr.engine.setNotifyServerOnPageUnload:[html] view plaincopy?dwr.engine.setNotifyServerOnPageUnload(true, true); 第二个可选参数告诉DWR调用异步卸载器。

注意:在DWR2.X中,页面每刷新一次会多创建一个新的ScriptSession,使用上面的方式可以有效解决这个问题。

由于ScriptSession的创建机制不同于HttpSession,它会在每次页面刷新的时候都会重新创建,而销毁机制却是失去连接或者失效之后一定时间才会自动销毁,这样就可能造成服务端可能就保存了很多的无用的ScriptSession,所以不仅仅会影响性能问题,更重要的是,可能就不能实现你想要的功能。

JSP Ajax DWR框架函数

JSP Ajax  DWR框架函数

JSP Ajax DWR框架函数学习到这里,应该明白DWR框架了。

DWR框架是一个基于Java语言的,运行在客户端的Ajax框架。

创建一个DWR案例页面,需要加入几个js文件,在这几个js文件中封装了后台Java类实现的方法。

在DWR页面运行时,需要从这几个j s文件中,调用相应的JavaScript对象和方法。

其中两个比较重要的js文件分别为u til.js和engine.js。

1.util.js文件util.js包含了一些工具函数来帮助我们使用JavaScript数据(例如从服务器返回的数据)来更新web页面。

我们可以在DWR以外使用它,因为它不依赖于DWR的其他部分。

可以下载整个DWR或者单独下载。

util.js文件包含了下面几个基本函数,分别为getValue[s]()、setValue[s]、getTex t()、addRows()、removeAllRows()、addOptions()和removeAllOptions()。

其中getVal ue[s]()和setValue[s]()可以操作大部分HTML元素除了table,list和image;getText()可以操作select list;要修改table可以用addRows()和rmoveAllRows()。

要修改列表(select列表和ul,ol列表)可以用addOptions()和removeAllOptions()。

util.js文件中其他函数如表10-4所示:表10-4 util.js常用函数2.engine.js文件engine.js对DWR非常重要,因为它是用来转换来至动态生成的接口的javascri pt函数调用的,所以只要用到DWR的地方就需要它。

对于创建的每一个DWR框或者在单次调用级别上(假设Remote被DWR暴露出来了):。

DWR详细介绍

DWR详细介绍

DWR程序—结果
通过dwr向服务器的JavaBean传递参数,并获取返回的数据:


第一步:书写一个JavaBean如UserInfo. 第二步:在dwr.xml中注册UserInfo的JavaBean. 第三步:在页面上引用此javaBean,建议在定义时,使用第一个单词大 写的方式。 第四步:获取信息,并调用方法。
DWR简化了ajax的开发

封装了ajax的使用,不再需要直接使用XMLHttpRequest,减少了javascript 通过回调函数的方式,简化了错误处理和数据的处理 直接调用服务器的方法,不再需要通过URL方式.
再一次学习基本的配置-DWR程序--世界,你好

将DWR的jar文件拷入Web应用的WEB-INF/lib目录中,在web.xml中增加一个servlet声明,并创建DWR的配 置文件。 形如: • <servlet> <servlet-name>dwr-invoker</servlet-name> • <servlet-class>uk.ltd.getahead.dwr.DWRServlet</servlet-class> <init-param> <param-name>debug</param-name> <param-value>true</param-value> </init-param> <!-- 必须加入以下信息,否则会:CSRF Security Error --> • <init-param> • <param-name>crossDomainSessionSecurity</param-name> • <param-value>false</param-value> • </init-param> • <init-param> • <param-name>allowScriptTagRemoting</param-name> • <param-value>true</param-value> • </init-param> </servlet> <servlet-mapping> <servlet-name>dwr-invoker</servlet-name> <url-pattern>/dwr/*</url-pattern> </servlet-mapping>

dwr结构

dwr结构

dwr结构DWR结构DWR(Direct Web Remoting)是一种用于将Java服务器端的方法暴露给JavaScript客户端调用的技术。

它允许开发者通过简单的配置和少量的代码,实现Java和JavaScript之间的双向通信。

本文将介绍DWR结构以及其在Web开发中的应用。

一、DWR结构概述DWR的结构主要包括以下几个核心组件:1. DWR框架:负责处理客户端请求并将其转发到相应的Java方法。

2. JavaScript引擎:用于解析和执行JavaScript代码。

3. Java对象:包含服务器端的业务逻辑代码,通过DWR框架对外暴露方法供JavaScript调用。

4. Servlet容器:负责接收和处理客户端的HTTP请求。

二、DWR的工作原理1. 客户端发起请求:当客户端需要调用服务器端的方法时,使用DWR提供的JavaScript库发起Ajax请求。

2. DWR框架接收请求:Servlet容器接收到客户端的请求后,将其转发给DWR框架进行处理。

3. DWR框架解析请求:DWR框架根据请求中的信息,找到对应的Java方法,并将请求参数传递给该方法。

4. 服务器端方法执行:Java方法在服务器端执行,并返回结果给DWR框架。

5. DWR框架返回结果:DWR框架将Java方法的执行结果封装成JSON格式,并返回给客户端。

6. 客户端处理结果:客户端接收到服务器端返回的结果后,可以根据需要进行相应的处理,如更新页面内容或显示提示信息。

三、DWR在Web开发中的应用1. 表单验证:通过DWR可以实现客户端表单验证,如验证用户名是否已存在、密码是否符合要求等。

通过在服务器端编写相应的验证方法,并在客户端调用这些方法,可以实现实时的表单验证功能。

2. 数据更新:DWR可以实现页面的实时数据更新,如在线聊天、股票行情等。

服务器端可以定时推送数据给客户端,或者客户端通过DWR发送请求获取最新数据,从而实现数据的实时展示。

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
WebContext wctx = WebContextFactory.get();
return wctx.forwardToString("/Hello.jsp");
}
}
该文件中,使用WebContext类获取DWR框架对象wctx,通过对象返回包含文件内容。
(2)创建Hello.jsp文件,为了方便起见,代码简单如下:
Hello
(3)配置dwr.xml文件,在<allow…>元素中加入下列代码:
<create creator="new" javascript="Demo"><param name="class" value="test.Demo"/> </create>
上述代码表示创建一个JavaScript对象Demo,对于后台服务器的JavaBean文件。
(4)编写客户端文件:test.jps,代码如下所示:
<%@ page contentType="text/html; charset=gb2312" errorPage="" %>
<script type='text/javascript' src='/dwr/dwr/interface/Demo.js'></script>
function forward() {
Demo.getInclude(function(data) {
dwr.util.setValue("forward",data,{ escapeHtml:false });
});}
Байду номын сангаас</script>
<p> <input value="Hello.jsp" type="button" onclick="forward()"/><br/>包含内容为:</p>
<script type='text/javascript' src='/dwr/dwr/engine.js'></script>
<script type='text/javascript' src='/dwr/dwr/util.js'></script>
<script type=text/javascript>
JSP Ajax
本练习演示在一个Ajax页面中,使用DWR框架包含另外一个文件,这里涉及到了DWR框架的一些内部函数。实现步骤如下:
(1)编写服务端文件:Demo.java,编译该文件,并将所得class文件保存到WEB/calsses下面。其源代码如下所示:
package test;
import java.io.IOException;
<div id="forward"></div>
(5)测试。上述步骤完成后,启动Tomcat,请求test.jsp文件,显示页面如图10-19所示,单击【Hello.jps】按钮,页面变化如图10-20所示。
图10-19包含页面
图10-20显示包含内容
import javax.servlet.ServletException;
import org.directwebremoting.WebContext;
import org.directwebremoting.WebContextFactory;
public class Demo{
public String getInclude() throws ServletException,IOException {
相关文档
最新文档