`
zengshaotao
  • 浏览: 752777 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

dwr

    博客分类:
  • DWR
 
阅读更多

java开发人员和网页设计人员的桥梁,dwr。
DWR(Direct Web Remoting)是一个用于改善web页面与Java类
交互的远程服务器端Ajax开源框架,可以帮助开发人员开发包含
AJAX技术的网站.它可以允许在浏览器里的代码使用运行在WEB
服务器上的JAVA函数,就像它就在浏览器里一样。

RPC(Remote Procedure Call Protocol)——远程过程调用协议
,它是一种通过网络从远程计算机程序上请求服务,而不需要了
解底层网络技术的协议。RPC协议假定某些传输协议的存在,
如TCP或UDP,为通信程序之间携带信息数据。
在OSI网络通信模型中,RPC跨越了传输层和应用层。
RPC使得开发包括网络分布式多程序在内的应用程序更加容易。

OSI是Open System Interconnect的缩写,意为开放式系统互联。
国际标准组织(国际标准化组织)制定了OSI模型。
这个模型把网络通信的工作分为7层,分别是物理层、数据链路
层、网络层、传输层、会话层、表示层和应用层。

负责处理客户端请求,并呼叫java物件的是DWRServlet,DWR其实
有些model2的味道,只是view这一层比较弱,因为前端数据的
获取是通过javascript程序代码来完成的。

在mvc模型中,通过在web.xml文件里加入中央servlet的配置
获取客户端的所有请求。然后找寻第三方的配置文件,
进行action的分发。对于dwr也类似,需要在web.xml加入dwr的
中央控制器,然后读取dwr的配置文件,进行远程服务器端或者
分布式应用程序的调用。
在web.xml中加入DWRServlet的配置:
<?xml version="1.0" encoding="UTF-8"?><web-app id="WebApp_ID" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">  <display-name>  ajaxDWR</display-name>  <servlet>
    <servlet-name>dwr-invoker</servlet-name>
    <servlet-class>uk.ltd.getahead.dwr.DWRServlet</servlet-class>
    <init-param>
      <description>
      </description>
      <param-name>debug</param-name>
      <param-value>true</param-value>
    </init-param>
  </servlet>
  <servlet-mapping>
    <servlet-name>dwr-invoker</servlet-name>    <url-pattern>/dwr/*</url-pattern>  </servlet-mapping></web-app>

class里的main函数是为了测试用的。真正发布运行调用的是客户
端的请求。

package onlyfun.caterpillar; public class Hello {  public String hello(String name) {      return "哈囉!" + name + "!您的第一個DWR!";    }}

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 1.0//EN" "http://www.getahead.ltd.uk/dwr/dwr10.dtd"> <dwr>  <allow>    <create creator="new" javascript="Hello">      <param name="class" value="onlyfun.caterpillar.Hello" />    </create>  </allow></dwr>


creator設定為new,表示使用Hello的無參數建構子來生成物件,javascript設定為Hello,表示客戶端JavaScript程式可以使用Hello來呼叫對應的onlyfun.caterpillar.Hello物件
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><meta http-equiv="Content-Type" content="text/html; charset=BIG5">  <title>第一個DWR程式</title>  <script type='text/javascript' src='dwr/interface/Hello.js'></script>  <script type='text/javascript' src='dwr/engine.js'></script> 
<script type='text/javascript' src='dwr/util.js'></script> 
<script type='text/javascript' src='hello.js'></script></head><body>
<input id="user" type="text" />
<input type='button' value='哈囉' onclick='hello();' />
 <div id="result"></div> </body></html>
dwr/interface/Hello.js是由DWRServlet根據dwr.xml中的設定生成的,
engine.js負責客戶端伺服端溝通,
util.js是一些好用的JavaScript程式,可以讓您少寫很多JavaScript。
function hello() {
   var user = $('user').value;
    Hello.hello(user, callback);}
function callback(msg) {   DWRUtil.setValue('result', msg);}
${'user'}取得輸入欄位的DOM物件
,value取得當中的欄位值,而後呼叫Hello.hello(),並將value當作參數傳送… 結果是呼叫Server端的Hello Java物件,當結果傳回後,會呼叫JavaScript的callback函式,DWRUtil的setValue()方法會將傳回的msg設定給指定 id的DOM

package onlyfun.caterpillar;
import java.util.ResourceBundle;
public class Book {  private ResourceBundle resource;   
public Book() {
    resource = ResourceBundle.getBundle("book");   }
          public String getDescription(String key) {
    retn resource.getString(key);  }} 
從程式中就知道,它會去抓book_zh_TW.properties的資料。
获取本地的一些资源文件。对于存在中文的资源文件,需要
使用bin目录下的native2ascii工具进行转换以支持国际化。 

 <div id="spring" onmouseover="getBookData(this);" onmouseout="clearData();"><a href="http://www.gotop.com.tw/waweb2004/home/home.aspx?pg=HM010X&bn=ACL021000">
<small><img style="border: 0px solid ; width: 80px; height: 110px; float: left;" alt="Spring 技術手冊" title="Spring 技術手冊" src="images/SpringTech_S.jpg" hspace="10" vspace="2"></small></a></div>

4、多dwr.xml文件的配置

可能有几种情况,我们一一列举。 一个servlet,多个dwr.xml配置文件;
多个servlet,每个servlet对应一个或多个dwr.xml.

一个servlet,多个dwr.xml配置文件;


java代码:  

<servlet>

    <servlet-name>dwr-invoker</servlet-name>

    <servlet-class>uk.ltd.getahead.dwr.DWRServlet</servlet-class>

    <init-param>

      <param-name>config-1</param-name>

      <param-value>WEB-INF/dwr1.xml</param-value>

    </init-param>

    <init-param>

      <param-name>config-2</param-name>

      <param-value>WEB-INF/dwr2.xml</param-value>

    </init-param>

</servlet>

 
在这种配置下,param-name的值必须以config开头。param-name可以有>=0个。如果没有param-name,那么将会读取 WEB-INF/dwr.xml。如果有大于零个param-name,那么WEB-INF/dwr.xml文件将不会被读取。

多个servlet,每个servlet对应一个或多个dwr.xml


java代码:  

<servlet>

   <servlet-name>dwr-invoker</servlet-name>

    <servlet-class>uk.ltd.getahead.dwr.DWRServlet</servlet-class>

<!--用classes/dwr.xml-->

</servlet>

<servlet>

   <servlet-name>dwr-invoker1</servlet-name>

   <servlet-class>uk.ltd.getahead.dwr.DWRServlet</servlet-class>

   <init-param>

     <param-name>config-admin</param-name>

     <param-value>WEB-INF/dwr1.xml</param-value>

   </init-param>

   <init-param>

     <param-name>debug</param-name>

     <param-value>true</param-value>

   </init-param>

</servlet>

<servlet-mapping>

   <servlet-name>dwr-invoker</servlet-name>

   <url-pattern>/dwr/*</url-pattern>

</servlet-mapping>

<servlet-mapping>

   <servlet-name>dwr-invoker1</servlet-name>

   <url-pattern>/dwr1/*</url-pattern>

</servlet-mapping>

 
在这种情况下,我们可以根据J2EE security来控制权限,针对不同url,加不同的角色

 

分享到:
评论

相关推荐

    dwr源码包,dwr.jar包下载

    1、 导入dwr.jar包 2、 在web.xml中配置dwr,如下: &lt;!-- 配置DWR --&gt; &lt;servlet-name&gt;dwr-invoker org.directwebremoting.servlet.DwrServlet &lt;init-param&gt; &lt;param-name&gt;debug&lt;/param-name&gt; ...

    DWR.xml配置文件说明书(含源码)

    DWR.xml配置文件说明书 1、 建立dwr.xml 配置文件 任何一个dwr.xml的文件都需要包含DWR DOCTYPE的声明行,格式如下: &lt;!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 1.0//EN" ...

    SpringBoot整合DWR3.0.2-RELEASE独立部署示例代码以及修改过的DWR3.0.2-RELEASE资源JAR包

    该示例资源主要解决如下两个问题,其一就是解决SpringBoot集成DWR3.0.2-RELEASE版本,无配置文件快速简洁完成集成工作,省去dwr.xml等DWR框架初始化需要的配置文件;其二就是解决了集成后的SpringBoot项目在开发环境...

    dwr包.rar dwr.jar engine.js util.js dwr-noncla.jar readme.txt

    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入门+springmvc实现

    DWR(Direct Web Remoting)是一个WEB远程调用框架.利用这个框架可以让AJAX开发变得很简单.利用DWR可以在客户端利用JavaScript直接调用服务端的Java方法并返回值给JavaScript就好像直接本地客户端调用一样(DWR根据Java...

    dwr 框架dwr 框架dwr 框架dwr 框架dwr 框架dwr 框架

    dwr 框架dwr 框架dwr 框架dwr 框架dwr 框架dwr 框架

    dwr+spring实现后台向前台推送实例

    本实例是在一些网络资料的基础上整合出来的一个:以后台向前台页面推送消息的一个完整实例工程,采用了spring、dwr反转,实现的是后台向前台不断推送消息,并管理相关用户退出;可以用在如定时任务的桌面消息提醒之...

    DWR,web.xml,dwr.xml,converted,created

    DWR初学者专题,有详细笔记。 DWR很轻松就学会。 取得dwr的dwr.jar包和其他dwr所需的其他jar包 web.xml dwr.xml 任何一个dwr.xml的文件都需要包含DWR DOCTYPE的声明行,。。 有几个术语有必要理解,参数叫做...

    dwr包;dwr包;dwr包;dwr包;dwr包;dwr包;dwr包;

    dwr包;dwr包;dwr包;dwr包;dwr包;dwr包;dwr包;dwr包;dwr包;dwr包;dwr包;dwr包;dwr包;dwr包;dwr包;dwr包;dwr包;dwr包;dwr包;dwr包;dwr包;dwr包;dwr包;dwr包;dwr包;dwr包;dwr包;

    DWR中文文档v0.9

    本书可以当作一本 DWR 完整的教程,也可以当作一本详细介绍 DWR 的“词典”,我 的目的只是通过本书,希望您能够了解一些 DWR 的基本知识、常用的用户界面组件、远程 方法调用等。并能够搭建 DWR 开发环境,实现 DWR...

    dwr中文文档dwr中文文档dwr中文文档

    dwr中文文档dwr中文文档dwr中文文档dwr中文文档dwr中文文档dwr中文文档dwr中文文档

    dwr使用方法,配置

    &lt;dwr&gt;            &lt;/dwr&gt;  标签中包括可以暴露给javascript访问的东西。  标签中指定javascript中可以访问的java类,并定义DWR应当如何获得要进行远程的类的实例。creator="new"属性指定java类实例的生成...

    DWR中文官方文档

    DWR的中文官方文档,以及V0.9的文档一共两份 在网站不容易找到合适的说明.这个包里是整合网站的dwr所有帮助信息下载下来的,因为时间缘故没有及时做成电子文档,希望有时间了在做一份. 如果还是看着不方便建议到...

    DWR中文文档DWR

    DWR中文文档DWR中文文档DWR中文文档DWR中文文档DWR中文文档

    dwr2.0jar包

    DWR是一个Java开源库,帮助你实现Ajax网站。 它可以让你在浏览器中的Javascript代码调用Web服务器上的Java,就像在Java代码就在浏览器中一样。 DWR主要包括两部分: 在服务器上运行的Servlet来处理请求并把结果...

    dwr.jar包+教程.pdf.ppt

    dwr 正版教程 第1章. DWR入门 1.1 简介 DWR是一个可以允许你去创建AJAX WEB站点的JAVA开源库。它可以让你在浏览器中的Javascript代码调用Web服务器上的Java代码,就像在Java代码就在浏览器中一样。 DWR包含2个主要...

    DWR实现DEMO

    DWR(Direct Web Remoting)是一个web远程调用框架,利用这个框架可以让AJAX变得很简单,通过DWR可以在客户端通过JavaScript直接调用服务器的Java方法并返回值给JavaScript,整个过程就好像通过本地客户端调用一样,...

    dwr20.dtd

    dwr20.dtd

    dwr笔记 dwr自学资料

    dwr笔记 dwr自学资料 dwr笔记 dwr自学资料 dwr笔记 dwr自学资料

    DWR中文文档.rar

    DWR是是关于开发web2.0网站实现动态交互性,增强用户体验度的一个Ajax框架技术,本文档共10章,其内容依次为:第1章.DWR入门,含3小节;第2章.web.xml配置,含6小节;第3章.dwr.xml配置,含4小节;第4章.整合,含8小节;...

Global site tag (gtag.js) - Google Analytics