[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是项目名称