dwr

源码github: https://github.com/666wg/dwr

源码CSDN:https://download.csdn.net/download/sinat_36710456/10421743

 

    •  

下载dwr.jar

到官网http://directwebremoting.org/dwr/index.html。下载这个jar即可。 
下载dwr.jar

下载commons-logging.jar

官网上清晰的说明了dwr工作的时候需要依赖于commons-logging,所以还需要下载一下这个jar包。下载地址: 
http://commons.apache.org/proper/commons-logging/download_logging.cgi

项目目录

把上面下载好的jar包放到刚才创建的项目的WebContent/lib目录下。

那么我们不难理解,项目中有自己写的java方法,有一个jsp页面。然后项目本身添加一些配置(具体是web.xml和dwr.xml)。最后完整的项目目录就是这样了。 

web.xml

大家写javaweb的,对于web.xml一定是不陌生了。那么我也就不废话了,看下面的配置代码吧。

  • 官网上示例
<servlet>
  <display-name>DWR Servlet</display-name>
  <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>
  • 我的配置
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
  <display-name>dwrtest</display-name>
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>

  <listener>  
    <listener-class>org.directwebremoting.servlet.DwrListener</listener-class>  
  </listener> 

  <servlet>
      <servlet-name>dwr</servlet-name>
      <!-- version 2 * -->
      <!-- <servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class> -->
      <servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class>
      <init-param>
          <param-name>debug</param-name>
          <param-value>true</param-value>
      </init-param>
      <!-- 使用服务器反转AJAX  -->
      <init-param>
          <param-name>activeReverseAjaxEnabled</param-name>
          <param-value>true</param-value>
      </init-param>
      <!-- 是能够从其他域请求true:开启; false:关闭 -->
      <init-param>
          <param-name>crossDomainSessionSecurity</param-name>
          <param-value>false</param-value>
      </init-param>
      <!-- 允许远程调用js -->
      <init-param>
          <param-name>allowScriptTagRemoting</param-name>
          <param-value>true</param-value>
      </init-param>

      <load-on-startup>1</load-on-startup>  
  </servlet>
  <servlet-mapping>
      <servlet-name>dwr</servlet-name>
      <url-pattern>/dwr/*</url-pattern>
  </servlet-mapping>
</web-app>
  • 其实按照官网上的示例来进行配置就足够了,我添加的那些可以做下参考。

dwr.xml

关于dwr.xml的配置,其实还是很需要技巧的。当然了,这个小项目本身不需要配置得多么复杂,如果有兴趣,建议还是到官网上自习的阅读文档,相信一定会让你有所收获。

我的配置(由于我的jave文件在utils包下的DwrPush.java,所以我可以这么配置。)

<?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="DwrPush">
            <param name="class" value="utils.DwrPush"></param>
            <!-- 这个标签可以写也可以不写,无所谓的-->
            <include method="Send"/>
        </create>
    </allow>
</dwr>

DwrPush.java

这个java类文件可以随意的放置,只要按照刚才的dwr.xml中声明的那样放置就行了。

package utils;

import java.util.Collection;

import org.directwebremoting.ScriptBuffer;
import org.directwebremoting.ScriptSession;
import org.directwebremoting.WebContext;
import org.directwebremoting.WebContextFactory;
import org.directwebremoting.proxy.dwr.Util;

public class DwrPush {

    @SuppressWarnings("deprecation")
    public static void Send(String msg){
        WebContext webContext = WebContextFactory.get();
        @SuppressWarnings("deprecation")
        Collection<ScriptSession> sessions = webContext.getAllScriptSessions();

        // 构建发送所需的JS脚本
        ScriptBuffer scriptBuffer = new ScriptBuffer();
        // 调用客户端的js脚本函数
        scriptBuffer.appendScript("callback(");
        // 这个msg可以被过滤处理一下,或者做其他的处理操作。这视需求而定。
        scriptBuffer.appendData(msg);
        scriptBuffer.appendScript(")");
        // 为所有的用户服务
        @SuppressWarnings("deprecation")
        Util util = new Util(sessions);
        util.addScript(scriptBuffer);


    }

}

说明:util.js和engine.js是dwr.jar中本来就存在的

index.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>首次环境搭建</title>、


<!-- 说明:util.js和engine.js是dwr.jar中本来就存在的 -->
<script type='text/javascript' src='/dwr/dwr/util.js'></script>
<script type='text/javascript' src='/dwr/dwr/engine.js'></script>
  <script type='text/javascript' src='/dwr/dwr/interface/DwrPush.js'></script>
<script type="text/javascript" src="http://lib.sinaapp.com/js/jquery/1.9.1/jquery-1.9.1.min.js"></script>


<script>


$(document).ready(function(){
    alert('can get here!');
    // 页面加载的时候进行反转的激活
    /* dwr.engine.setActiveReverseAjax(true); */
    dwr.engine.setActiveReverseAjax(true) ;


    // 点击页面按钮的时候触发的方法
    $("#button").click(function(){
        // 此类即为根据java文件生成的js文件
        var data = document.getElementById("data").value;
        DwrPush.Send(data);
    });
});






//用于后台调取的函数
function callback(msg){
    //alert('test!');
    $("#ul").html($("#ul").html()+"<br />"+msg);
}
</script>
</head>
<body>
<ul id="ul">


</ul>


<br/>
<hr>


<!-- https://blog.csdn.net/marksinoberg/article/details/55505423#下载commons-loggingjar -->
<input type="text" id="data" name='data' />&nbsp;&nbsp;&nbsp;&nbsp;
<input type='button' id="button" value="publish">


</body>
</html>

调试运行

文字展示篇

图片展示

上传图片试试

说明:

由于原博客中没有给出源码,现给出源码并记录重要内容,以供学习之用,对原博主表示感谢。

转载:https://blog.csdn.net/marksinoberg/article/details/55505423#

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值