DWR之HELLO world

来源:互联网 发布:js获取css样式 编辑:程序博客网 时间:2024/05/10 21:58

 DWR的原理为:把JAVA类注入JS从且达到可以在JS中调用JAVA类中的方法,实现了异步调用。
同GWT相比DWR的优点有一、DWR可以同JS和HTML同步调用,从且解决GWT中页面美工排
版的困难。二、dwr是把JAVA类注入JS中,而不需要学习新的技术。
web.xml文件配置如下:
<?xml version="1.0" encoding="UTF-8"?>
<web-app 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">
 <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>
 </servlet>
 <servlet-mapping>
  <servlet-name>dwr-invoker</servlet-name>
  <url-pattern>/dwr/*</url-pattern>
 </servlet-mapping>
</web-app>

dwr文件配置如下:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 2.0//EN" "http://www.getahead.ltd.uk/dwr/dwr20.dtd">
<dwr>
 <allow>
  <create creator="new" javascript="service">
   <param name="class" value="cn.epem.admin.Service" />
  </create>
 </allow>
</dwr>

test.jsp

<%@ page language="java" pageEncoding="UTF-8"%>
<html>
 <head>
  <title>My JSP 'first_dwr.jsp' starting page</title>
  <script type="text/javascript" src="<%=request.getContextPath()%>/loadreport.js"></script>
  <script type="text/javascript" src="<%=request.getContextPath()%>/dwr/engine.js"></script>
  <script type="text/javascript" src="<%=request.getContextPath()%>/dwr/util.js"></script>
  <script type='text/javascript' src='<%=request.getContextPath()%>/dwr/interface/service.js'> </script>
  
 </head>
 <body>
  <input type="button" name="button" value="测试" onclick="firstDwr()">
 </body>
</html>


loadreport.js

    function firstDwr(){
   service.sayHello("Jorwen",callBackHello);
   }
   function callBackHello(data){
    alert(data);
    }


Service.java

package cn.epem.admin;

public class Service {
 public String sayHello(String yourName) {
  System.out.println(yourName);
  return "Hello World " + yourName;
 }
}