一.复制dwr开发包
二.在web.xml注册和映射DwrServlet
三.业务层
四.在WEB-INF/dwr.xml配置访问规则
五.测试http://127.0.0.1:8080/工程名/dwr
六.把测试页面生成三名js复制到自己网页
整合jQuery
1.jquery的js要导入dwr前面
2.使用jquery时不用'$',用'jQuery'
dwr/.xml配置文件,路径是在WEB-INF/dwr.xml
<!DOCTYPE dwr PUBLIC
"-//GetAhead Limited//DTD Direct Web Remoting 2.0//EN"
"http://directwebremoting.org/schema/dwr20.dtd">
<dwr>
<allow>
<!--
两个没有默认打开的转换器是Bean 和 Object 转换器。Bean转换器可以把POJO转换成Javascript的接合数组
(类似与Java中的Map),或者反向转换。这个转换器默认情况下是没打开的,因为DWR要获得你的允许才能动你的代码。
这是bean转换器,就是把一个pojos的对象转换成一个页面的js对象,
例如:我们的service的show方法返回一个Student对象,我们的jsp页面调用alert(student.id),假如没有这个bean
转换器,那么我们在页面调用这个对象就是错误的
-->
<convert match="cn.itcast.pojos.*" converter="bean"></convert>
<!-- myjs是在页面的时候就是用myjs去调用Service的方法,例如:myjs.display(),creator是一个创造器 -->
<create javascript="myjs" creator="new">
<!-- 这句代码的意思是将这个类转换成一个js的对象 -->
<param name="class" value="cn.itcast.service.DwrTestService"></param>
<!-- include指定这个方法可以被页面的js调用 -->
<!-- <include method="display"/> -->
<!--表示这个方法不可以被页面的js调用 -->
<!-- <exclude method="show"/> -->
</create>
</allow>
</dwr>
//这是pojos
package cn.itcast.pojos;
import java.io.Serializable;
public class Student implements Serializable {
private int id;
private String name;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
//这是service
package cn.itcast.service;
import java.util.ArrayList;
import java.util.List;
import cn.itcast.pojos.Student;
public class DwrTestService {
public String display()
{
return "我爱你!!!";
}
//这是返回一个对象
public Student show(int id)
{
System.out.println(id);
Student student = new Student();
student.setId(id);
student.setName("曹欢");
return student;
}
public List<Student> getAllStudent()
{
Student student1 = new Student();
student1.setId(1);
student1.setName("张三");
Student student2 = new Student();
student2.setId(2);
student2.setName("李四");
Student student3 = new Student();
student3.setId(3);
student3.setName("王五");
List<Student> list = new ArrayList<Student>();
list.add(student1);
list.add(student2);
list.add(student3);
return list;
}
}
//web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<servlet>
<servlet-name>dwr</servlet-name>
<servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class>
<init-param>
<param-name>debug</param-name>
<param-value>true</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>dwr</servlet-name>
<url-pattern>/dwr/*</url-pattern>
</servlet-mapping>
</web-app>
//这是页面的测试
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<script type='text/javascript' src='/dwr01/dwr/interface/myjs.js'></script>
<script type='text/javascript' src='/dwr01/dwr/engine.js'></script>
<script type='text/javascript' src='/dwr01/dwr/util.js'></script>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'index.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
<script type="text/javascript">
function test()
{
//这是一个调用,data是一个回调函数的返回结果
myjs.display(function(data){alert(data)});
}
/*setInterval('test()',1000);*/
/*function test1()
{
myjs.show(1, function(data1){
alert("asdsad");
//alert(data1.name);
});
}*/
onload = function()
{
myjs.getAllStudent(function(list){
DWRUtil.addOptions('asd',list,'id','name');
//这是设置选中值
DWRUtil.setValue('asd',3);
});
}
</script>
</head>
<body>
<a οnclick="test()" href="#">点击</a><br/>
<a οnclick="test1()" href="#">返回对象</a><br/>
<select name="asd">
</select>
</body>
</html>
//注意一点,当我们在引入dwr的js文件的时候,我们在饮用我们那的jquery的时候,不能用'$',只能用jQuery