1.dwr是什么?
DWR是一个Java库,它使服务器上的Java和浏览器中的JavaScript能够尽可能简单地相互交互和调用。是一个用于改善web页面与Java类交互的远程服务器端Ajax开源框架,可以帮助开发人员开发包含AJAX技术的网站。
DWR将生成JavaScript以允许Web浏览器安全地调用Java代码,就像它在本地运行一样。它几乎可以封送任何数据,包括集合,POJO,XML和二进制数据,如图像和PDF文件。所需要的只是一个定义允许内容的安全策略。
通过反向Ajax,DWR允许在服务器上运行的Java代码使用客户端API将更新发布到任意浏览器组。这允许交互2种方式 - 浏览器调用服务器和服务器调用浏览器。DWR支持Comet,Polling和Piggyback(通过正常请求发送数据)作为发布到浏览器的方式。
DWR提供与Spring,Struts,Guice,Hibernate等的集成。
DWR是开源的,可在Apache Software License v2下获得。
2.dwr所需的pom.xml文件
<!-- dwr -->
<dependency>
<groupId>org.directwebremoting</groupId>
<artifactId>dwr</artifactId>
<version>3.0.2-RELEASE</version>
</dependency>
<!-- https://mvnrepository.com/artifact/commons-logging/commons-logging -->
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.1.1</version>
</dependency>
<!-- https://mvnrepository.com/artifact/log4j/log4j -->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
注:dwr jar包要依赖于commons-logging jar包文件
dwr下载建议下载3.0版本 较稳定
3.dwr.xml
<dwr>
<allow>
<create creator="new" javascript="BookService">
<param name="class" value="com.xx.service.BookService"/>
<include method="say"></include>
<include method="getInfo"></include>
</create>
</allow>
</dwr>
注:javascript对应自己项目的类名
value是跳转到类的路径
include 是放过的方法,并且可以写放过多个方法名
4. web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app id="dwr" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
version="3.0">
<listener>
<listener-class>org.directwebremoting.servlet.DwrServlet</listener-class>
</listener>
<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>
</web-app>