现在的位置: 首页 > 综合 > 正文

DWR3页面请求处理机制分析之util.js

2016年10月15日 ⁄ 综合 ⁄ 共 3503字 ⁄ 字号 评论关闭

      util.js 是dwr的一个工具js文件,该文件提供了一些函数方法,使得对dom的操作更加方便,在dwr框架系统中我们完全可以选择不去使用util.js文件,它可以分离出dwr框架而独立存在,在其它框架系统的页面处理中可以直接引用util.js文件。下面让我们来分析一下在页面发生请求时对util.js文件的调用处理过程。

 

      1. 在dwr3中util.js是放在org.directwebremoting.ui.servlet包里的,在dwr2中是和engine.js一起放在org.directwebremoting包中,在需要使用util.js时,要在页面中引入<script type="text/javascript" src="dwr/util.js"script>。

 

      2. 当页面请求时会交给org.directwebremoting.servlet.DwrServlet的doget()、doPost()方法来处理,dopost方法调用UrlProcessor的handle()方法,doPost()方法代码如下:

dopost方法调用UrlProcessor的handle()方法处理,UrlProcessor的handle方法在执行时,先取得请求路径,然后根据请求路径,从urlMapping里取得相应请求路径的处理handler类,由这个handler类来处理请求和响应,util.js的handler类为org.directwebremoting.servlet.Utilhandler,对于engine.js的请求处理我们下一次再分析,urlMapping是UrlProcessor类中定义的一个Map,key为请求url,value为请求url的handler类,urlMapping是在web服务器启动时初始化container时填入的。在页面中我们一般会引入 <script
type='text/javascript' src='dwr/interface/**.js'> </script> <script type='text/javascript' src='dwr/engine.js'></script> <script type='text/javascript' src='dwr/util.js'></script>如果我们在web.xml中配置了请求路径"/dwr/*",这样就相当于执行了3次请求,根据引入的上下顺序依次执行请求。UrlProcessor的handle方法代码如下:

 

     3. util.js的处理类是UtilHandler,UtilHandler继承了CachingHandler,它寻找到jar下的util.js,然后以文件流的形式读入,最后作为响应输出到页面,通常只读取一次,因为在第一次读取时,它会把文件内容保存到一个map类型的scriptCache里,缓存起来,以后访问的时候就直接从scriptCache里取。CachingHandler的handler方法代码如下:

抱歉!评论已关闭.