一、DWR简介
DWR是一个可以允许你去创建AJAX WEB站点的JAVA开源库。它可以让你在浏览器中的Javascript代码调用Web服务器上的Java代码,就像在Java代码就在浏览器中一样。
二、Hello DWR
1、去官网下载jar包:http://www.directwebremoting.org/dwr/ ,下载说明:
dwr.jar 核心包 。dwr.war 例子程序。dwr-src.jar 源代码
2、下载完jar包后,用myeclipse 建一个WebProject ,解压dwr.war 在WEB-INF 中的lib文件夹中拷贝commons-logging-1.0.4.jar、dwr.jar、log4j-1.2.12.jar三个包到自己项目中的lib文件夹下。
3、配置web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0"
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_3_0.xsd">
<display-name></display-name>
<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>
4、编写dwr.xml 此文件与web.xml在同一个目录下
<?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>
<create creator="new" javascript="service" scope="application">
<param name="class" value="helloWorld.Service"></param>
</create>
</allow>
</dwr>
5、编写java代码
首先建包helloWorld,在此包下建立java类Service
package helloWorld;
public class Service {
public String sayHello(String yourName) {
return "Hello World"+yourName;
}
}
6、此时我们可以测试我们是否正确安装了dwr
把项目部署到tomcat 启动tomcat ,然后在地址栏输入http://localhost:8080/你的工程/dwr
如果安装正确会显示
Modules known to DWR:
- service(NewCreator for helloWorld.Service)
此时你就完成了测试了,那么我们怎么用呢,点击service进入会发生什么呢?试试。。。。
我们发现了这个:
To use this class in your javascript you will need the following script includes:
<script type='text/javascript' src='/DWRPractice/dwr/engine.js'></script> <script type='text/javascript' src='/DWRPractice/dwr/interface/service.js'></script>
In addition there is an optional utility script:
<script type='text/javascript' src='/DWRPractice/dwr/util.js'></script>
这三个script我们把它们引用到自己的jsp中。
那么我们开始编写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>DWR Practice</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
<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/service.js'></script>
<script type="text/javascript">
function firstDwr(){
service.sayHello("jiuzi",callBackHello);
}
function callBackHello(data){
alert(data);
}
</script>
</head>
<body>
<button οnclick="firstDwr()">测试</button>
</body>
</html>
完成 !!!
去试试,点击按钮会出现什么吧(Hello Worldjiuzi);