DWR入门教程
2014-12-08 21:04
239 查看
最近公司要弄一个后台持续推送信息的功能,查了下需要用到DWR,遂研究之。
一个最基本的DWR实例需要两个包:dwr.jar和commons-logging-1.0.4.jar.(不知道怎么下载,需要去官网下载),下面开始步入正题:
1.创建一个JavaWeb项目,并且将上面的两个包拖入到WEB-INF下的lib里面去。
2.修改web.xml。<固定写法,直接复制>
3.创建一个实体类。
4.配置dwr.xml<重点部分,这部分主要配置javascript与java的映射>
在web.xml同级目录下创建新的xml文件,名称叫做dwr.xml,主要配置信息如下:
其中creator和javascript是必须属性。其余可以省略,主要作用如下表所示:
下来看下我们程序的配置:
下面解释一下标记2.。标记2中creator的值只能是下面几个,不能乱起。
而后面javascript中的值代表的是与由这个类被改成的js.<要知道dwr的本质是将java代码经过反射修改为js代码>;在这里你姑且可以认为把类改成成了一个名字为Demo的js文件,Demo.js.
5.新建一个jsp页面。
这里主要注意一下标记3,标记下面引入的三个js文件,前两个是自动生成的。必须引入。其中xxx/dwr/xxx.js中的dwr,是和标记1的设置相同的。
引人的第三个js文件,作用是中 xxx/dwr/interface/xxx.js的命名,dwr和上面一样,interface是必须加的,xxx.js的名称是根据标记2中javascript后面接的名字相同。
所以在调用时,直接Demo.函数就是调用java里面的代码,dwrHandler是回调函数。
如此一下,一个简单的dwr程序就写好了。
下一章,讲一下与Spring的整合。
一个最基本的DWR实例需要两个包:dwr.jar和commons-logging-1.0.4.jar.(不知道怎么下载,需要去官网下载),下面开始步入正题:
1.创建一个JavaWeb项目,并且将上面的两个包拖入到WEB-INF下的lib里面去。
2.修改web.xml。<固定写法,直接复制>
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0"> <display-name>Dwr</display-name> <servlet> <servlet-name>dwr-invoker</servlet-name> <servlet-class>uk.ltd.getahead.dwr.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> <!--此处列为标记1,后面有解释--> </servlet-mapping> </web-app>
3.创建一个实体类。
package com.mz.dwr; public class DwrDemo { public String getInput(String input){ return "你的输入是"+input; } }
4.配置dwr.xml<重点部分,这部分主要配置javascript与java的映射>
在web.xml同级目录下创建新的xml文件,名称叫做dwr.xml,主要配置信息如下:
<allow> <create creator="..." javascript="..." scope="..."> <param name="..." value="..."/> <auth method="..." role="..."/> <exclude method="..."/> <include method="..."/> </create> ... </allow>
其中creator和javascript是必须属性。其余可以省略,主要作用如下表所示:
下来看下我们程序的配置:
<?xml version="1.0" encoding="UTF-8"?> <dwr> <allow> <!--标记2--> <create creator="new" javascript="Demo"> <param name="class" value="com.mz.dwr.DwrDemo"></param> </create> <!-- java 类库 --> <create creator="new" javascript="MyDate"> <param name="class" value="java.util.Date"></param> </create> <!-- convert元素用于数据类型转换,即java类和javascript之间相互转换 --> <convert converter="exception" match="java.lang.Exception" /> <convert converter="bean" match="java.lang.StackTraceElement" /> </allow> </dwr>
下面解释一下标记2.。标记2中creator的值只能是下面几个,不能乱起。
而后面javascript中的值代表的是与由这个类被改成的js.<要知道dwr的本质是将java代码经过反射修改为js代码>;在这里你姑且可以认为把类改成成了一个名字为Demo的js文件,Demo.js.
5.新建一个jsp页面。
<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%> <% 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>My JSP 'index.jsp' starting page</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> <!-- 标记3 --> <script type='text/javascript' src='${pageContext.request.contextPath}/dwr/engine.js'></script> <script type='text/javascript' src='${pageContext.request.contextPath}/dwr/util.js'></script> <script type='text/javascript' src='${pageContext.request.contextPath}/dwr/interface/Demo.js'></script> <script type="text/javascript"> function getInput(name) { Demo.getInput(name, dwrHandler); } function dwrHandler(data) { alert(data); } </script> </head> <body> <input type="button" onclick="getInput('mazhan')" value="hh"> </body> </html>
这里主要注意一下标记3,标记下面引入的三个js文件,前两个是自动生成的。必须引入。其中xxx/dwr/xxx.js中的dwr,是和标记1的设置相同的。
引人的第三个js文件,作用是中 xxx/dwr/interface/xxx.js的命名,dwr和上面一样,interface是必须加的,xxx.js的名称是根据标记2中javascript后面接的名字相同。
所以在调用时,直接Demo.函数就是调用java里面的代码,dwrHandler是回调函数。
如此一下,一个简单的dwr程序就写好了。
下一章,讲一下与Spring的整合。