http://column.ibeifeng.com/51564/20081017168.shtml
前一篇分析了dwr2对log的处理,请参见dwr2的日志代码分析;那么下面我们来进一步来分析一下它对页面的请求是如何处理的;这一章主要来讲解一下util.js文件。
大家都知道util.js文件是包含在dwr.jar文件的org.directwebremoting包里,那么页面是如何访问到它的呢?
1、 首先,我们在某个页面需要使用dwr功能时,需要引入
<script type=”text/javascript” src=”dwr/util.js”></script>
这样对”dwr/util.js”的请求,统一由org.directwebremoting.servlet.DwrServlet的doget()、doPost()方法来处理;
2、 dopost方法调用UrlProcessor的handle()方法处理;
UrlProcessor的handle方法在执行时,先取得请求路径,然后根据请求路径,从urlMapping里取得相应的页面处
理handler类,由这个handler类来处理请求和响应,也就是说”dwr/util.js”请求对应一个handler类来处理,
”dwr/engine.js”由另外一个handler来处理,关于对engine.js的请求处理,我们在下一章里来讲解;
UrlProcessor的urlMapping类里的key 、value数据,是dwrservlet在container初始化时填入的,即由DefaultContainer类的setupFinished()方法调用callInitializingBeans()方法完成的(这个方法是把container里的实现了InitializingBean接口的bean都执行了afterContainerSetup方法;UrlProcessor是实现了InitializingBean接口,它的afterContainerSetup方法,就是将DefaultContainer初始化时,初始的urlmapping值注入到自己的urlmap里);
3、 dwr/util.js对应的处理handler
处理util.js的handler是:org.directwebremoting.servlet.UtilHandler
在org.directwebremoting.impl.ContainerUtill类里你可以看到,它们之间的对应关系
createUrlMapping(container, “/util.js”, “utilHandlerUrl”, UtilHandler.class);
UtilHandler继承了FileHandler,它寻找到jar下的util.js,然后以文件流的形式读入,最后作为响应输出到页面;通常只读取一次,因为在第一次读取时,它会把文件内容保存到一个map类型的scriptCache里,缓存起来;以后访问的时候就直接从scriptCache里取;
具体详细细节请参见FileHandler的public void handle(HttpServletRequest request, HttpServletResponse response) throws IOException方法;
Util.js作为静态js文件,适合于缓存起来,没必要每次都去从文件里读取,提高效率;
分享到:
相关推荐
dwr包.rar dwr.jar engine.js util.js dwr-noncla.jar readme.txt JAR File: dwr.jar (1.08Mb) To DWR enable your web-app WAR File: dwr.war (4.62Mb) Demos/Examples of what DWR can do Sources: dwr-...
本文将深入探讨`util.js`的特性和功能,并结合提供的`dwr_util_api.docx`文档,详细介绍其使用方法。 1. **DWR框架基础** DWR的核心理念是使JavaScript能够像操作本地对象一样操作服务器端的对象。它通过一套自动...
它支持异步和同步调用,提供了错误处理机制,并且能够自动处理数据类型转换,简化了前后端交互的过程。 `util.js`是DWR的工具库,包含了各种实用函数,帮助开发者更好地管理和优化使用DWR的应用程序。这些函数涵盖...
3. **安全**:DWR内置了安全性机制,如CORS(跨源资源共享)和CSRF(跨站请求伪造)防护,确保只有授权的请求才能执行服务器端的方法。 4. **客户端调用**:在HTML页面中,通过引入`engine.js`,开发者可以使用...
`engine.js` 是DWR引擎的核心,负责处理与服务器的通信,包括请求的发送、响应的处理以及错误管理。这两个文件是DWR运行的基础,通常会被包含在HTML页面中,以便在客户端执行DWR相关的操作。 `DWR_...
`util.js` 是DWR的工具库,它包含了各种实用函数,用于帮助开发者处理JavaScript中的常见任务。这个库提供了如对象操作、数组处理、字符串操作、DOM操作等多方面的辅助功能。例如,它可能包含了一些用于序列化和反...
这个压缩包包含的是DWR的实例、相关的jar包以及两个重要的JavaScript文件——`engine.js`和`util.js`,这些都是学习DWR的关键组件。 1. **DWR基础概念**: DWR的核心功能是提供一种方式,使得客户端JavaScript可以...
标题 "dwr需要的js(searchaAuthor+engine.js+util.js).rar" 提供的信息表明,这个压缩包包含了DWR(Direct Web Remoting)框架所必需的JavaScript文件。DWR是一种允许Web应用程序在客户端与服务器端进行实时通信的...
DWR util.js 是一个功能强大的 JavaScript 库,它提供了许多有用的函数,可以帮助开发者在客户端页面上实现各种操作。下面是对 DWR util.js 的学习笔记整理。 1. $() 函数 DWRUtil 中的 $() 函数用于获取页面参数...
DWR util.js 是一个JavaScript工具库,提供了一些有用的函数,用于在客户端页面调用。下面是DWR util.js中的主要功能: 1. $()函数:获取页面参数值 该函数用于获取页面参数值,例如:var name = $("name");获取名...
DWR.xml配置文件说明书 1、 建立dwr.xml 配置文件 任何一个dwr.xml的文件都需要包含DWR DOCTYPE的声明行,格式如下: <!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 1.0//EN" ...
2. **错误处理与调试**: 掌握DWR的错误处理机制,并了解如何在客户端和服务器端进行有效的调试。 **六、总结** 《Practical DWR 2 Projects》这本书不仅介绍了DWR 2 的核心概念和技术,还通过一系列实际项目展示了...
在深入研究DWR的源代码时,你可以了解到它如何处理请求、序列化和反序列化数据、以及如何处理安全性和性能问题。对于任何希望深入了解DWR工作原理的开发者来说,阅读源代码都是一个有价值的学习过程。
dwr-1.1.1-util.js
2. **转换器**:DWR自动处理基本类型的转换,但对复杂类型,如自定义对象,你需要定义转换器,这可以通过`<convert>`标签来设置。 3. **安全控制**:为了防止未授权的访问,你可以配置安全策略,例如使用`<filter>`...
通过DWR,开发者可以在不涉及繁琐的AJAX请求和响应处理的情况下,直接在JavaScript中调用Java对象的方法,使得前端和后端的通信变得更为便捷。 **整合SpringBoot与DWR** 1. **添加依赖**:在SpringBoot项目的`pom....
总结起来,"dwr城市选择的联动,util.js方法的使用,动态table"涉及的技术主要包括DWR框架、JavaScript DOM操作以及服务器端与客户端的数据交互。这些技术的综合运用,可以创建出高效、实时的Web应用,满足用户对...
DWR是是关于开发web2.0网站实现动态交互性,增强用户体验度的一个Ajax框架技术,本文档共10章,其内容依次为:第1章.DWR入门,含3小节;第2章.web.xml配置,含6小节;第3章.dwr.xml配置,含4小节;第4章.整合,含8小节;...
- **自动JSON序列化与反序列化**:DWR自动处理数据在Java对象和JavaScript对象之间的转换,支持JSON格式。 - **安全机制**:DWR提供了一套安全机制,如白名单过滤,防止恶意的跨站脚本攻击(XSS)。 - **批量更新**...