dwr的讲解

一.复制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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值