DWR原理及应用
来源:互联网 发布:矩阵行列式的性质 编辑:程序博客网 时间:2024/04/29 14:56
DWR原理
主要实现直接对JAVA类提供方法的使用,减小了前台的请求压力。
前台页面请求一次后台,后台的方法执行一次或者多次对前台需要的内容进行推送。这样 ,前台不必在多次请求相同的一个动作。
在用户配置了要向客户机公开的服务之后,它使用反射来生成JavaScript对象,以便 Web页面能够使用这些对象来访问该服务。然后Web页面只需接合到生成的JavaScript对象,就像它们是直接使用服务一样;DWR无缝地处理所有有关Ajax和请求定位的琐碎细节。
使用到的Jar包
相应的配置
Web.xml :申明dwr的相关配置
Dwr.xml:与Web.xml位于同级目录下用于连接js页面和java类
Js部分:主要有三个外部导入的js
Util.js、engine.js、interface/XX.js(XX为dwr.xml文件中指定的 javascript的值)
相关方法本身可以有回调方法
Java部分:一般被调用的方法设有返回值,也可以由DWR提供的方法直接推送, 不需要返回值
页面推送的实例
实例1、最简单的推送
Web.xml配置
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" 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_2_5.xsd">
<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>
<!-- 需加入跨域调用配置信息:如果报错CSRF Security Error -->
<init-param>
<param-name>crossDomainSessionSecurity</param-name>
<param-value>false</param-value>
</init-param>
<init-param>
<param-name>allowScriptTagRemoting</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>
dwr.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="test1">
<param name="class" value="com.oracle.dwr.Test1"></param>
</create>
<!--这里的create 可以链接的也可以是spring里面的bean-->
</allow>
</dwr>
测试Jsp页面
<%@ page language="java" import="java.util.*" pageEncoding="gbk"%>
<html>
<head>
<title>dwr</title>
<script type='text/javascript' src='dwr/util.js'></script>
<script type='text/javascript' src='dwr/engine.js'></script>
<script type='text/javascript' src='dwr/interface/test1.js'> </script>
<script type="text/javascript">
function show(){
test1.sayHello(result);
// alert(typeof result);
var result=function(data){
alert(data);
}
}
</script>
</head>
<body>
<input type="button" onclick="show();" value="点我吧"/>
</body>
</html>
Java类
public class Test1{
public String sayHello(){
return "hello dwr";
}
}
2、单个页面可能由多个用户访问,用dwr推送可以实现无io流和套接字的一个或者多个人的简单会话窗口。
从他人那里学得并受益,修改之后用到了之后的DWR+Quartz的开发当中。
(访问的时候在访问url中加上name参数及其数值即可,不同的dwr版本的包,提供的推送方法不一样,下面用的是dwr3.x的)
链接http://www.blogjava.net/stevenjohn/archive/2012/07/07/382447.html
- DWR原理及应用
- DWR技术简介及应用
- DWR工作原理及相关操作步骤
- dwr的介绍及简单应用
- DWR 原理
- dwr应用
- 数据库原理及应用
- 数据库原理及应用
- 数据库原理及应用
- NAT原理及应用
- Ajax原理及应用
- MEPG2原理及应用
- Ajax原理及应用
- FFT原理及应用
- COM原理及应用
- LPC11C14GPIO原理及应用
- LPC11C14GPIO原理及应用
- ping原理及应用
- 6e5yeyru
- 完全数问题
- 织梦去版权方法DedeCms 5.7全站去版权去广告方法(前台)
- oracle 外键
- Kinect for Windows V2 SDK+ VS2012 环境搭建
- DWR原理及应用
- rtertty
- 策略模式
- web.xml中 listener、filter、servlet等 加载顺序
- 4r34rt t
- 我想写程序
- wtrtye56
- 神器篇之ZeroMQ<一>初识ZeroMQ
- 分布式搜索elasticsearch 索引文档的检索 入门