zoukankan      html  css  js  c++  java
  • DW3 消息推送

    1.新建项目

      参见:http://www.cnblogs.com/yysbolg/p/yys_Blogs_java.html

    2.添加jar包:

    • commons-fileupload-1.2.jar
    • commons-io-1.3.1.jar
    • commons-logging-1.0.4.jar
    • dwr.jar
    • itext-2.0.6.jar
    • jakarta-oro-2.0.8.jar
    • log4j-1.2.12.jar

    3.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" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
      <display-name>MyDWRSample</display-name>
    
      <listener>
        <listener-class>org.directwebremoting.servlet.DwrListener</listener-class>
      </listener>
      
      <servlet>
        <servlet-name>dwr-invoker</servlet-name>
        <servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class>
        
        <init-param>
         <param-name>fileUploadMaxBytes</param-name>
         <param-value>25000</param-value>
        </init-param>
    
        <init-param>
          <param-name>debug</param-name>
          <param-value>true</param-value>
        </init-param>
      
        <init-param>
          <param-name>accessLogLevel</param-name>
          <param-value>runtimeexception</param-value>
        </init-param>
    
        <init-param>
          <param-name>activeReverseAjaxEnabled</param-name>
          <param-value>true</param-value>
        </init-param>
    
        <init-param>
          <param-name>initApplicationScopeCreatorsAtStartup</param-name>
          <param-value>true</param-value>
        </init-param>
    
        <init-param>
          <param-name>jsonRpcEnabled</param-name>
          <param-value>true</param-value>
        </init-param>
    
        <init-param>
          <param-name>jsonpEnabled</param-name>
          <param-value>true</param-value>
        </init-param>
    
        <init-param>
          <param-name>preferDataUrlSchema</param-name>
          <param-value>false</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
      </servlet>
      <servlet-mapping>
        <servlet-name>dwr-invoker</servlet-name>
        <url-pattern>/dwr/*</url-pattern>
      </servlet-mapping>
      
          <servlet>
            <servlet-name>MySevlet</servlet-name>
            <servlet-class>com.yihaomen.MySevlet</servlet-class>
        </servlet>
        <servlet-mapping>
            <servlet-name>MySevlet</servlet-name>
            <url-pattern>/my/api</url-pattern>
        </servlet-mapping>
    
      <welcome-file-list>
        <welcome-file>index.jsp</welcome-file>
      </welcome-file-list>
    
    </web-app>

    4.在 WEB-INF 下创建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="Demo"> 
          <param name="class" value="com.yihaomen.DwrDemo"/> 
       </create>
      </allow>
    
    </dwr>

    5.在src  下面创建DwrDemo.java  文件

    package com.yihaomen;
    
    import org.directwebremoting.Browser;
    import org.directwebremoting.ScriptSessions;
    
    public class DwrDemo {
        public static void sendMsg(final String msg) {
            Browser.withPage("/MyDWRSample/", new Runnable() {
                public void run() {
                    ScriptSessions.addFunctionCall("show", msg);
                }
            });
        }
    }

    6.在src  下面创建MySevlet.java  文件

    package com.yihaomen;
    import java.io.IOException;
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import org.directwebremoting.ServerContext;
    import org.directwebremoting.ServerContextFactory;
    import org.directwebremoting.WebContextFactory.WebContextBuilder;
    import org.directwebremoting.impl.DefaultWebContextBuilder;
    
    public class MySevlet extends HttpServlet {
        private static final long serialVersionUID = 1L;
        protected void doGet(HttpServletRequest request,
                             HttpServletResponse response) throws ServletException, IOException {
            doPost(request, response);
        }
        protected void doPost(HttpServletRequest request,
                              HttpServletResponse response) throws ServletException, IOException {
            DwrDemo.sendMsg("aaaaaa");
        }
    }

    7.页面: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>Insert title here</title>
    
     <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/Demo.js'></script>
    
        <script>
        
        function onload(){    
                dwr.engine.setActiveReverseAjax(true);
        }
        function show(message){
    //        alert(message);
            document.getElementById('messageid').value=message;
        }
        </script>
    
    </head>
    <body onload="onload();">
     从服务端得到的消息:<br /> <input type="text" id="messageid" value="" />
    </body>
    </html>

    8.测试

    运行项目后,打开两个浏览器:http://localhost:8080/MyDWRSample/

    然后再打开一个浏览器进行请求服务器:http://localhost:8080/MyDWRSample/my/api    

  • 相关阅读:
    Hash工具下载地址
    微信聊天记录查看器(程序+源码)
    XEN的启动信息输出到“Platform timer is 14.318MHz HPET”就暂停接收的解决办法
    利用 Serial Over Lan(SOL)搭建 XEN 的调试信息输出环境
    Windows内核开发中如何区分文件对象究竟是文件还是文件夹?
    白盒密码入门
    选择Asp for javascript,非.net。
    8个你至少应该参加一次的极客盛会
    程序员的四种类型
    超棒的30款JS类库和工具
  • 原文地址:https://www.cnblogs.com/yysbolg/p/7054237.html
Copyright © 2011-2022 走看看