zoukankan      html  css  js  c++  java
  • 【DWR系列03】- DWR主要类详解

    一、简介

      首先应该了解这个jar包主要的类,了解了类,就了解了DWR。DWR的在线javadoc:http://directwebremoting.org/dwr/javadoc/

      本篇部分示例代码在【DWR系列01】-DWR简介及入门例子,和【DWR系列02】-DWR逆向Ajax即服务器推送中

    二、主要类介绍

    2.1 DwrServlet

      这是DWR中最主要的类,处理所有关于DWR的请求。这个就是在web.xml中配置的那个类:

    <servlet>
        <servlet-name>dwr-invoker</servlet-name>
        <servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class>
    </servlet>

    3.1.1 DwrSpringServlet

      这个类配合Spring使用。

    3.1.2 DwrGuiceServlet

      这个类配合Guice使用。


    2.2 Container

      DWR所有重要类都存放在一个容器中,包括属性,配置,管理类,控制类等等,这是一个简单点的IoC容器。默认实现类为DefaultContainer。

    2.2.1 DefaultContainer

      默认的DWR自己的迷你IoC容器实现类。

    2.2.2 SpringContainer

      当使用Spring框架的时候,可以配置使用这个容器。


    2.3 ServerContext

      这个名字或许容易产生误解,它指向一个运行中的DwrServlet。这主要用在非DWR线程POJO中影响DWR运行环境。如果是DWR线程,最好使用WebContext。默认实现类为DefaultServerContext。其中几个重要方法:

    • getContainer() :获得当前的IoC容器。

    2.3.1 WebContext

      一个可以让我们访问servlet参数的类。这个类只用在DWR线程(指由DWR创建线程并调用的方法)中。默认实现类为DefaultWebContext。几个重要方法:

    • forwardToString(java.lang.String url) :转向一个URL资源,并将其数据返回。
    • getHttpServletRequest() :获得HttpServletRequest对象。
    • getHttpServletResponse()  :获得HttpServletResponse对象。
    • getScriptSession()  :获得ScriptSession对象。
    • getSession(boolean create)  :获得Session对象。

    2.4 WebContextFactory

      一个可以获得当前WebContext的工厂。重要方法:

    • static WebContext get() :获得当前的WebContext。

    2.4.1 DefaultWebContextBuilder

      一个默认的WebContext构造器用来构造一个DefaultWebContexts。有几个重要方法。


    2.5 ScriptSession

      类似于HttpSession,是script的作用域。一般在逆向Ajax中引用,在页面引入engin.js,并开启逆向Ajax属性时生成。

    2.5.1 DefaultScriptSession

      script的默认实现,应该记住DefaultScriptSession与DefaultScriptSessionManager可以相互调用,不要破坏它们之间的关系。重要方法:

    • getAttribute(String) :获得属性
    • setAttribute(String, String) :设置属性
    • getPage():获取当前script属于的页面,不包括服务器信息,是否包含查询信息则看PageNormalizer配置,默认不包含。page例子:ServerContextFactory.get().getContextPath() + "/reverseajax/peopleTable.html"

    2.6 Browser

      包含一系列操作逆向Ajax的APIs。

    • withAllSessions(Runnable task):操作所有的session
    • withAllSessionsFiltered(ScriptSessionFilter filter, Runnable task):操作符合过滤条件的session
    • withCurrentPage(Runnable task):操作和当前session所在页相同页的session
    • withPage(String page, Runnable task):操作指定页的session
    • withCurrentPageFiltered(ScriptSessionFilter filter, Runnable task):操作在相同页中符合条件的session

    2.7 Util

      Util是一个服务端的代理对象,允许Java程序调用客户端的JavaScript代码。按我的习惯只是通过它传数据到js方法,怎么处理由页面js来进行。这个类并不常用,一般使用ScriptSessions。

    • setValue(java.lang.String elementId, java.lang.Object value):设置一个元素的值。

    2.8 ScriptSessions

      这个类用来操作当前的ScriptSession。

    • addFunctionCall(String funcName, Object... params):调用指定js方法并传入参数。
    • addScript(String scriptString):将可以执行的js命令字符串传入,执行。
    • addScript(ScriptBuffer script):同上一个方法。

    待续……

    +备注

        类的介绍随时补充,当遇到可用的类的时候,这几个类时必须要了解的,其他的类可以看javadoc。

  • 相关阅读:
    115今天太给力了~
    使用jQuery顺序显示元素
    温习浏览器渲染模式
    去除浏览器a标签链接时,烦人的虚线框
    设计可以是一种垄断
    如何获取鼠标选中的文字
    积极参与到FuckIE6的队伍中...
    google今儿发现页面又变好看了
    20101207google 今天出新功能了
    火狐ff下margintop太给力
  • 原文地址:https://www.cnblogs.com/yiwangzhibujian/p/6179752.html
Copyright © 2011-2022 走看看