使用dwr
一:先导入需要的jar包。
需要下面两个jar包
二:修改web.xml文件,添加一个DwrServlet
<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>/leedwr/*</url-pattern>
</servlet-mapping>
三:添加dwr.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 3.0//EN" "http://www.getahead.ltd.uk/dwr/dwr30.dtd">
<dwr>
<allow>
<create creator="new" javascript="helloDwr">
<param name="class" value="com.service.HelloService"/>
</create>
</allow>
</dwr>
create createor="new"表示使用new的方式创建对象,也可以指定使用spring框架创建。javascript="helloDwr"表示在js中用helloDwr代替com.service.HelloService这个类。
接下去是应用,当我们在文本框中输入字符时,js代码会获取我们输入的值,调用HelloService类的hello(String name),然后给我们返回hello,xxx,在div中显示出来。
4:编写页面
<%@ page language="java" pageEncoding="utf-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<script type="text/javascript" src="leedwr/engine.js"></script>
<script type="text/javascript" src="leedwr/interface/helloDwr.js"></script>
<script type="text/javascript" src="js/index.js"></script>
</head>
<body>
用户名:<input type="text" id="username"/>
<input type="button" value="调用服务器端的service对象的方法" id="btn1"/>
<div id="rs"></div>
</body>
</html>
<script type="text/javascript" src="leedwr/engine.js"></script>
<script type="text/javascript" src="leedwr/interface/helloDwr.js"></script>
这两个是dwr框架自带的。
<script type="text/javascript" src="js/index.js"></script>是我们自己写的js文件。
5:编写java类:
package com.service;
public class HelloService {
public String hello(String name){
System.out.println(name);
return "hello," + name;
}
}
6:编写js文件
function callback(returnedData){
document.getElementById("rs").innerHTML = returnedData;
}
window.οnlοad=function(){
var btn1 = document.getElementById("btn1");
btn1.onclick = function(){
//调用service对象的方法
var value = document.getElementById("username").value;
alert(value);
helloDwr.hello(value,callback);
}
}