DWR入门示例

DWR貌似很强大,今天闲着没事就上官网下了一个Jar包,参照官方文档,和中文文档(英语还不是够强啊),终于搞定第一个dwr程序了。
下面我就贴一下代码,说说部署步骤,跟大家一块学习一下啊。。。

1. Install the DWR JAR file

Download the dwr.jar file. Place it in the WEB-INF/lib directory of your webapp. You'll probably have a set of jar files in there already. From version 2.0, DWR also requires commons-logging.

首先下载dwr.jsr放到WEB-INF/lib目录下面。如果你用的是2.0版的话还要下载commons-loggin.否则运行时会报错。

2.Edit the config files
<servlet>
<servlet-name>dwr-invoker</servlet-name>
<servlet-lass>
org.directwebremoting.servlet.DwrServlet
</servletclass>
<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>

3.写一个java类

package com.mj.controller;

public class Hello {
public String sayHello(String name){
System.out.println("hello"+name);
return name;
}
}


4.配置dwr.xml跟web.xml统计
代码如下

<?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="new" javascript="JDate">
<param name="class" value="java.util.Date"/>
</create>
<create javascript="test" creator="new">
<param name="class" value="com.mj.controller.Hello"></param>
</create>
</allow>
</dwr>


其中javascript代表的应该是动态生成的js文件的名字,value的值是你写得javaBean的全路径,或者是JDK里面的类,比如java.util.Date
5.你可以在浏览器中输入http://localhost:port(web容器端口号)/你的Web应用访问名/dwr
就可以在页面当中显示可以调用的类,点击就可以进入了。
6.下一个JSP进行测试。

<%@ page language="java" pageEncoding="UTF-8"%>
<%
String path=request.getContextPath();
%>
<html>
<head>
<title>这是我的第一个DWR程序</title>
<script type="text/javascript" src="dwr/engine.js"></script>
<script type="text/javascript" src="dwr/util.js"></script>
<script type="text/javascript" src="dwr/interface/test.js"></script>
<script type="text/javascript">
function firstDwr(){
test.sayHello("国庆快乐",callBackHello);
}
function callBackHello(data){
alert(data);
}
</script>
</head>

<body>
<input type="button" value="测试" onclick="firstDwr()">
</body>
</html>

这里的callBackHeloo是一个回调函数,data是函数返回值。。。
这里需要注意的一点是,官方推荐把util.js和engin.js放在你自己建立的一个文件夹下面,然后进行引用,这样会报错

A request has been denied as a potential CSRF attack.

解决方法有两种:
1.修改Web.xml在<servlet>中加上

<init-param>
<param-name>crossDomainSessionSecurityparam-name>
<param-value>falseparam-value>
<init-param>

2.就像我写的一样,不用单独建立一个文件夹存放那两个js文件,可以用dwr直接进行访问,不会出问题。好了,就写到这里了,我要继续研究了。。。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值