DWR(Direct  Web Romoting):改善Web页面与java类交互的远程开元框架,允许在浏览器中使用java函数。

dwr.xml就是将java转化为js文件,实质上调用的是js方法。

一个简单的例子:

1)把dwr.jar包拷在lib下面

2)在web.xml里面注册dwr的核心Servlet

 

<?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">
   <display-name></display-name> 
  <!-- 这其实就是dwr.xml在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>     
  </servlet>    
  <!-- 这里是映射关系 -->
  <servlet-mapping>    
    <servlet-name>dwr-invoker</servlet-name>     
    <url-pattern>/dwr/*</url-pattern>    
  </servlet-mapping> 
  
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
  
</web-app>

3)dwr.xml:将java代码转化为JavaScript

 

 

<?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段落里面定义的是DWR可以创建和转换的类 -->
	<allow>
	<!-- new是创造对象class的。  JavaScript是用来指定被创造出来对象的名字。scope是用来指定你这个bean在是生命范围内。 -->
	<!-- 将类TestDwr转化为JavaScript代码 -->
		<create creator="new" javascript="CASCO" scope="application">
			<param name="class" value="com.test.ajax.TestDwr" />
		</create>
	</allow>
</dwr>  


4)index.jsp:

 

 

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
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>
  </head>
 
 <!-- 根本找不到这个js文件,因为就没有dwr文件夹,这个是dwr自带的,不需要管他 -->
 <script type='text/javascript' src='dwr/engine.js'></script> 
<script type='text/javascript' src='dwr/util.js'></script>  
<!-- 此处CASCO与dwr.xml中JavaScript="CASCO"一致,这个就是将java代码转化为JavaScript -->
<script type='text/javascript' src='dwr/interface/CASCO.js'></script>  
<script language="javascript">   
    var mycall=function callBack(data){  
        dwr.util.setValue("demo1",data);  
    }   
    function showMyName(){   
        CASCO.getMyName(mycall);  
    }  
    function clearName(){  
        demo1.value="";  
    }  
</script>   
  <body>
       
    <input type="button" value="显示姓名" onclick="javascript:showMyName()">     
    <input type="button" value="清空" onclick="javascript:clearName()"><br>      
    <input type="text" id="demo1"><br>      
  </body>
</html>


 

 

 

 

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐