加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

DWR入门教程

发布时间:2020-12-15 21:46:44 所属栏目:百科 来源:网络整理
导读:最近公司要弄一个后台持续推送信息的功能,查了下需要用到DWR,遂研究之。 一个最基本的DWR实例需要两个包:dwr.jar和commons-logging-1.0.4.jar.(不知道怎么下载,需要去官网下载),下面开始步入正题: 1.创建一个JavaWeb项目,并且将上面的两个包拖入到WEB-IN

最近公司要弄一个后台持续推送信息的功能,查了下需要用到DWR,遂研究之。

一个最基本的DWR实例需要两个包:dwr.jar和commons-logging-1.0.4.jar.(不知道怎么下载,需要去官网下载),下面开始步入正题:

1.创建一个JavaWeb项目,并且将上面的两个包拖入到WEB-INF下的lib里面去。

2.修改web.xml。<固定写法,直接复制>

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0">
  <display-name>Dwr</display-name>

  <servlet>
  	<servlet-name>dwr-invoker</servlet-name>
  	<servlet-class>uk.ltd.getahead.dwr.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> <!--此处列为标记1,后面有解释-->
  </servlet-mapping>
</web-app>

3.创建一个实体类。

package com.mz.dwr;

public class DwrDemo {

	public String getInput(String input){
		return "你的输入是"+input;
	}

}

4. 配置dwr.xml<重点部分,这部分主要配置javascript与java的映射>

在web.xml同级目录下创建新的xml文件,名称叫做dwr.xml,主要配置信息如下:

<allow>
  <create creator="..." javascript="..." scope="...">
    <param name="..." value="..."/>
    <auth method="..." role="..."/>
    <exclude method="..."/>
    <include method="..."/>
  </create>
  ...
</allow>

其中creator和javascript是必须属性。其余可以省略,主要作用如下表所示:




下来看下我们程序的配置:

<?xml version="1.0" encoding="UTF-8"?>
<dwr>
	<allow>
		<!--标记2-->
		 <create creator="new" javascript="Demo">
		 	<param name="class" value="com.mz.dwr.DwrDemo"></param>
		 </create>
		 
		 <!-- java 类库 -->
		 <create creator="new" javascript="MyDate">
		 	<param name="class" value="java.util.Date"></param>
		 </create>
		 
        <!-- convert元素用于数据类型转换,即java类和javascript之间相互转换 -->
        <convert converter="exception" match="java.lang.Exception" />
        <convert converter="bean" match="java.lang.StackTraceElement" />
	</allow>
</dwr>

下面解释一下标记2.。标记2中creator的值只能是下面几个,不能乱起。


而后面javascript中的值代表的是与由这个类被改成的js.<要知道dwr的本质是将java代码经过反射修改为js代码>;在这里你姑且可以认为把类改成成了一个名字为Demo的js文件,Demo.js.


5.新建一个jsp页面。

<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>
<%
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">
	<!--
	标记3
	-->
	<script type='text/javascript' src='${pageContext.request.contextPath}/dwr/engine.js'></script>
	<script type='text/javascript' src='${pageContext.request.contextPath}/dwr/util.js'></script>
	<script type='text/javascript' src='${pageContext.request.contextPath}/dwr/interface/Demo.js'></script>
 	<script type="text/javascript">
 		function getInput(name) {
       	 Demo.getInput(name,dwrHandler);
  	  }
 		
 		function dwrHandler(data) {
 	        alert(data);
 	    }
 	</script>
 
  </head>
  
  <body>
      <input type="button" onclick="getInput('mazhan')" value="hh">
  </body>
</html>

这里主要注意一下标记3,标记下面引入的三个js文件,前两个是自动生成的。必须引入。其中xxx/dwr/xxx.js中的dwr,是和标记1的设置相同的。

引人的第三个js文件,作用是中 xxx/dwr/interface/xxx.js的命名,dwr和上面一样,interface是必须加的,xxx.js的名称是根据标记2中javascript后面接的名字相同。

所以在调用时,直接Demo.函数就是调用java里面的代码,dwrHandler是回调函数。

如此一下,一个简单的dwr程序就写好了。

下一章,讲一下与Spring的整合。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读