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-...
开发Dwr所需的jar包,js文件:dwr.jar engine.js util.js
dwr教程+dwr.jar+util.js+engine.js
dwr javascript util.js engind.js 工具库 原js文件在dwr.jar中,不想找的同学就下载吧。
DWR(包括engine.js+util.js).rar
NULL 博文链接:https://yxwang0615.iteye.com/blog/981848
DWR.xml配置文件说明书 1、 建立dwr.xml 配置文件 任何一个dwr.xml的文件都需要包含DWR DOCTYPE的声明行,格式如下: <!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 1.0//EN" ...
dwr-1.1.1-util.js
DWR是是关于开发web2.0网站实现动态交互性,增强用户体验度的一个Ajax框架技术,本文档共10章,其内容依次为:第1章.DWR入门,含3小节;第2章.web.xml配置,含6小节;第3章.dwr.xml配置,含4小节;第4章.整合,含8小节;...
dwr需要的js(searchaAuthor+engine.js+util.js).rar
dwr 例子 jar包 engine.jsutil.js 学习笔记 绝对超值。
dwr-2.0-util.js
springboot整合dwr实现js调用java方法,页面支持freemarker和jsp
dwr城市选择的联动,util.js方法的使用,动态table
技术分享:DWR 处理各种form表单Selectoption,table等,List,Bean
这是dwr需要的engine.js和util.js,Engine.js与util.js不同之处在于,util.js是静态js文件,可以直接从jar文件中拿出来,页面可以直接引用;而engine.js则有部分动态内容,这决定了它必须经过servelt资源请求,在...
util.js包含一些有用的函数function,用于在客户端页面调用,它可以和dwr分开,独立营用于你的系统中。 主要功能如下: 1、$() 获得页面参数值 2、addOptions and removeAllOptions 初始化下拉框 3、addRows and...
做个extjs 与dwr结合的例子dwr2.0 jdk6.0 dwr 取不到数据 困扰了我一天 后来下载了xalan.jar 包导入工程 ok 2009-8-16 10:18:39 org.directwebremoting.util.CommonsLoggingOutput info 信息: DWR Version 2.0.5 ...
工程里用到的dwr包,使用时候只需要把解压出来的engine.js和util.js放在工程的dwr目录里,配置dwr.xml文件即可。