首页 > 代码库 > 关于java --DWR

关于java --DWR

【定义DWR】:

DWR(Direct Web Remoting)是一个用于改善web页面与Java类交互的远程服务器端Ajax开源框架,DWR采取了一个类似AJAX的新方法来动态生成基于JAVA类的JavaScript代码.这样WEB开发人员就可以在JavaScript里使用Java代码就像它们是浏览器的本地代码(客户端代码)一样;但是Java代码运行在WEB服务器端而且可以自由访问WEB 服务器的资源.出于安全的理由,WEB开发者必须适当地配置哪些Java类可以安全的被外部使用.

它包含两个主要的部分:

1、允许javascript从WEB服务器上一个遵循了AJAX原则的servlet中获取数据。

2、js库可以帮助开发者成功的利用获取的数据动态的改变网页的内容。

【使用DWR】

1、首先必须有dwr的jar包文件:(提供下载路径:dwrjar文件下载)

2、在web.xml里配置dwr:

<!-- 配置DWR -->
	<servlet>
		<servlet-name>dwr-invoker</servlet-name>
		<servlet-class>
			org.directwebremoting.servlet.DwrServlet
		</servlet-class>
	</servlet>
	<servlet-mapping>
		<servlet-name>dwr-invoker</servlet-name>
		<url-pattern>/dwr/*</url-pattern>
	</servlet-mapping>
3、创建类AdjBudgetModel,然后再类中创建你需要的方法:

/**
	 * 用于树上面的操作 by xihy 关于处理的界面的动态的处理事件 2010-05-11
	 */
	public AdjBudgetPlanInfo gainThebootInfo(String bootId) throws Exception
	{
		/**
		 * 查询根结点的记录
		 */
		try
		{
			return treeBugetDao.gainThebootInfo(bootId);
		} catch (Exception e)
		{
			e.printStackTrace();
			return null;
		}
	}

4、AdjBudgetPlanInfo文件

package com.xx.xx.budget.domain;

public class AdjBudgetPlanInfo {
	private String   bpiId                   ;
	private String   bctId                   ;
	private String   bacId                   ;
	private String   depId                   ;}        **ps:这里简写了,还有部分字段没有写出来,还有对应的set和get都没有写出来,这里只是简写一下,到时候可根据自己项目中的需要自己来完善


         4、创建dwr.xml文件,并且配置你刚才创建的类AdjBudgetModel

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE dwr PUBLIC
    "-//GetAhead Limited//DTD Direct Web Remoting 2.0//EN"
    "http://getahead.org/dwr/dwr20.dtd">
<dwr>
	<allow>
		 <create creator="spring" javascript="adjBudgetServer">   
             <param name="beanName"    value=http://www.mamicode.com/"adjBudgetModel" />>
  <!-- 将他作为一个对象返回,传给客户端 -->
        <convert match="com.xx.xx.budget.domain.AdjBudgetPlanInfo" converter="bean">
	       	<param name="include" value=http://www.mamicode.com/"bpiId,bpiName,bpiIsRoot,hasChildren,bpiCreateDate,bpscid,bacId,proId,bpiLevel">>5、在jsp页面中的使用

首先在你的jsp页面上引入,这个引入的名字是刚才xml文件中配置的那个名字

    <script type="text/javascript" src=http://www.mamicode.com/"/dwr/interface/adjBudgetServer.js"></script> 
{ps:这里我们只是负责引入,这里是dwr通过反射机制引入的。}

然后就是页面上的使用了:

			function startt(){
				<%
				if(null != value && !value.equals(""))
				{
				%>
					adjBudgetServer.gainThebootInfo('<%=value%>',{exceptionHandler:function(msg){alert(msg);},callback:showSub});
				<%
				}
				else
				{
				%>
					alert('xxx');
				<%	
				}
				%>
			}

:以上是我自己在项目中用到的


关于java --DWR