DWR框架小例子

[1].什么是DWR框架:

DWR(Direct Web Remoting)是一个用于改善web页面与Java类交互的远程服务器端Ajax开源框架,可以帮助开发人员开发包含AJAX技术的网站。

它可以允许在浏览器里的代码使用运行在WEB服务器上的JAVA函数,就像它就在浏览器里一样。

DWR(Direct Web Remoting)是一个用于改善web页面与Java类交互的远程服务器端Ajax开源框架,可以帮助开发人员开发包含AJAX技术的网站。

它可以允许在浏览器里的代码使用运行在WEB服务器上的JAVA函数,就像它就在浏览器里一样。

[2].DWR的安装:

01.导入DWR的JAR包

<dependency>

<groupId>org.directwebremoting</groupId>

<artifactId>dwr</artifactId>

<version>3.0.M1</version>

</dependency>

02.配置web.xml文件

<servlet>

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

<servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class>

<init-param>

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

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

</init-param>

<load-on-startup>1</load-on-startup>

</servlet>

<servlet-mapping>

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

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

</servlet-mapping>

03.配置dwr.xml该文件放在WEB-INF目录中

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE dwr PUBLIC

    "-//GetAhead Limited//DTD Direct Web Remoting 3.0//EN"

    "http://getahead.org/dwr/dwr30.dtd">

<dwr>

<allow>

<create creator="new">

<param name="class" value="com.edu.dwr.MyDwr"/>

</create>

</allow>

</dwr>

将一个Java类共享成一个JS类。

04.在页面引入相应的javascript

<script type="text/javascript" src="<%=path %>/dwr/engine.js"></script>

<script type="text/javascript" src="<%=path %>/dwr/util.js"></script>

<script type="text/javascript" src="<%=path %>/dwr/interface/MyDwr.js"></script>

package com.edu.dwr;

public class MyDwr {

public String hello(String str){

System.out.println(str);

return str ;

}

ublic User load(){

User user = new User(10,"LIUTAO","123456",new Group(1012,"人事部")) ;

return user ;

}

public List<User> list(){

List<User> users = new ArrayList<User>() ;

users.add(new User(11,"LIUTAO","123456",new Group(1012,"人事部"))) ;

users.add(new User(11,"ZHANGSAN","123456",new Group(1012,"教程部"))) ;

users.add(new User(11,"LIUMENG","123456",new Group(1012,"内务部"))) ;

users.add(new User(11,"WNAGWU","123456",new Group(1012,"财务部"))) ;

return users ;

}

public void add(User user){

System.out.println(user);

}

public void deleteUser(){

throw new UserException("没有传ID参数") ;

}

}

JSP页面中调用方法:

<script type="text/javascript">

function load(){

MyDwr.load(function loadUser(user){

alert(user.id+"  "+user.group.groupName);

}) ;

}

function list(){

MyDwr.list(function (data){

for(var i=0 ; i<data.length ; i++){

var user = data[i] ;

console.info(user);

}

});

}

var user = {id:15,username:"张三",password:"123456",group:{id:1016,groupName:"信息部"}};

function addUser(){

MyDwr.add(user);

}

function removeUser(){

MyDwr.deleteUser({

callback:function(data){

},

errorHandler : function (msg,exception){

alert(msg);

alert(exception.javaClassName);

// 自带工具方法打印异常信息

alert(dwr.util.toDescriptiveString(exception,2));

}

}) ;

}

</script>

[3].DWR中的转换器

<!--转换Java类-->

<convert match="com.edu.dwr.User" converter="bean"/>

<convert match="com.edu.dwr.Group" converter="bean"/>

<!--转换异常类-->

<convert match="java.lang.Exception" converter="exception"/>

<convert match="java.lang.StackTraceElement" converter="bean"/>

[4].web.xml中开启

<init-param>

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

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

</init-param>

可测试和查看已公布dwr方法:访问方法 http://172.168.1.48:8888/sypro/dwr/index.html sypro是项目名称


你可能感兴趣的:(DWR)