【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。
【DWR系列03】- DWR主要类详解的更多相关文章
- [NewLife.XCode]实体类详解
NewLife.XCode是一个有10多年历史的开源数据中间件,由新生命团队(2002~2019)开发完成并维护至今,以下简称XCode. 整个系列教程会大量结合示例代码和运行日志来进行深入分析,蕴含 ...
- SpringBoot系列(十二)过滤器配置详解
SpringBoot(十二)过滤器详解 往期精彩推荐 SpringBoot系列(一)idea新建Springboot项目 SpringBoot系列(二)入门知识 springBoot系列(三)配置文件 ...
- 深入浅出Mybatis系列(四)---配置详解之typeAliases别名(mybatis源码篇)
上篇文章<深入浅出Mybatis系列(三)---配置详解之properties与environments(mybatis源码篇)> 介绍了properties与environments, ...
- java之StringBuffer类详解
StringBuffer 线程安全的可变字符序列. StringBuffer源码分析(JDK1.6): public final class StringBuffer extends Abstract ...
- java之AbstractStringBuilder类详解
目录 AbstractStringBuilder类 字段 构造器 方法 public abstract String toString() 扩充容量 void expandCapacity(in ...
- java之StringBuilder类详解
StringBuilder 非线程安全的可变字符序列 .该类被设计用作StringBuffer的一个简易替换,用在字符串缓冲区被单个线程使用的时候(这种情况很普遍).如果可能,建议优先采用该类,因为在 ...
- Android Studio系列教程五--Gradle命令详解与导入第三方包
Android Studio系列教程五--Gradle命令详解与导入第三方包 2015 年 01 月 05 日 DevTools 本文为个人原创,欢迎转载,但请务必在明显位置注明出处!http://s ...
- Java String类详解
Java String类详解 Java字符串类(java.lang.String)是Java中使用最多的类,也是最为特殊的一个类,很多时候,我们对它既熟悉又陌生. 类结构: public final ...
- QAction类详解:
先贴一段描述:Qt文档原文: Detailed Description The QAction class provides an abstract user interface action tha ...
- 构建安全的Xml Web Service系列之wse之错误代码详解
原文:构建安全的Xml Web Service系列之wse之错误代码详解 WSE3.0现在还没有中文版的可以下载,使用英文版的过程中,难免会遇到各种各样的错误,而面对一堆毫无头绪的错误异常,常常会感到 ...
随机推荐
- 【辅助远程连接,可穿防火墙、NAT】一次 TeamViewer 的安装与测试
背景: 应课程老师要求帮助某化学老师维修机器(高性能电脑),并解决老师的若干问题,在解决硬件问题(上网问题:多个网络接口)之后,化学老师提出需要远程链接到该机器,试询问之前如何实现,化学老师推荐Tea ...
- AD域-让共享目录只显示用户有权限访问的文件夹
问题: 在AD域中,我们一般都会用到共享,如果有很多部门,我们可能还会按部门.职位配置权限.比如CSD,IT,PA等,但文件夹一多,用户看着就头大,而且用户没权限访问的文件夹误点击进去还会提示无权限访 ...
- 【IOS】模仿"抽屉新热榜"动态启动页YFSplashScreen
IOS最好要设置系统默认启动页面,不然进入应用就会突然闪现黑色画面 下图是我们要实现的效果: 总体思路:设置一个系统默认启动页面,在进入didFinishLaunchingWithOptions时, ...
- Live YUV420 和 OpenCV Mat 的互相转换
1. YUV420 -> Mat 可用于转换接受到的YUV视频源到OpenCV可以识别的数据 Mat myuv( Frame_Height + Frame_Height / 2, Frame_W ...
- Sentiment Analysis resources
Wikipedia: Sentiment analysis (also known as opinion mining) refers to the use of natural language p ...
- IIS7.0发布Web服务-0001
配置错误 不能在此路径中使用此配置节.如果在父级别上锁定了该节,便会出现这种情况.锁定是默认设置的 (overrideModeDefault="Deny"),或者是通过包含 ove ...
- 五大主流浏览器 CSS3 和 HTML5 兼容性大比拼
各大主流浏览器对 CSS3 和 HTML5 的支持越来越完善,曾经让多少前端开发人员心碎的IE系也开始拥抱标准.就在前几天,W3C的 HTML5 社区领袖 Shelley 宣布,HTML5的开发工作已 ...
- Android 学习资源收集
1.2015最流行的Android组件.工具.框架大全 地址 http://www.open-open.com/lib/view/open1436262653692.html
- highcharts使用笔记
1.legend取消点击事件: 饼图:plotOptions.pie.point.events.legendItemClick = function() {return false;} 其他,如:pl ...
- C#中的 特性 详解(转载)
本篇幅转载于:http://www.cnblogs.com/rohelm/archive/2012/04/19/2456088.html C#中特性详解 特性提供了功能强大的方法,用于将元数据或声明信 ...