zoukankan      html  css  js  c++  java
  • DWR框架学习

    我的理解:DWR框架是javaWeb中前后端直接交互的解决方案,用DWR框架,前端js能够直接调用后端服务,后端服务也可以直接调用前端js函数。

    配置:

    (1)需要Dwr.jar 包,pom配置如下:

    <dependency>  
           <groupId>org.directwebremoting</groupId>  
           <artifactId>dwr</artifactId>  
           <version>3.0.M1</version>  
     </dependency>  

    (2)在Web.xml中配置servelet,如下:

    <!-- DWR配置 -->
        <servlet>
            <servlet-name>dwr-invoker</servlet-name>
            <servlet-class>
                org.directwebremoting.servlet.DwrServlet
            </servlet-class>
            <init-param>
                <param-name>
                    org.directwebremoting.extend.ServerLoadMonitor
                </param-name>
                <param-value>
                    org.directwebremoting.impl.PollingServerLoadMonitor
                </param-value>
            </init-param>
            <!-- 默认轮询的周期是5秒中,也就是5000毫秒.如果想改变这个默认值需要下面的配置改为6秒 -->
            <init-param>
                <param-name>disconnectedTime</param-name>
                <param-value>5000</param-value>
            </init-param>
            <init-param>
                <description>使用服务器推技术(反转AJAX)</description>
                <param-name>activeReverseAjaxEnabled</param-name>
                <param-value>true</param-value>
            </init-param>
            <init-param>    
              <param-name>crossDomainSessionSecurity</param-name>    
              <param-value>false</param-value>    
            </init-param>
        </servlet>
    
        <servlet-mapping>
            <servlet-name>dwr-invoker</servlet-name>
            <url-pattern>/dwr/*</url-pattern>
        </servlet-mapping>

    (3)实现一个后端服务,就是一个普通的类

    public class MessageServiceImpl {
          public void sendMassage() {
            ScriptBuffer sb = new ScriptBuffer();
        sb.appendScript("alert(12345)");
            scriptSession.addScript(sb);       }   
    
    }    

    scriptSession对应每个链接的会话,通过写入script脚本去前端执行。scriptSession可以通过如下方式获取:

    WebContext context = WebContextFactory.get();
    ScriptSession session = context.getScriptSession();

    (4)WEB-INF目录下创建dwr.xml文件

    
    
    <dwr>    
    <allow>
    <create creator="new" javascript="MessageServiceImpl" scope = "session"> <param name="class" value=".....MessageServiceImpl"></param> </create>
    </allow>
    </dwr>

    (5)jsp中调用后端服务

    <%@page contentType="text/html" pageEncoding="UTF-8"%>  
    <!DOCTYPE html>  
    <html>  
        <head>  
            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">  
            <title>JSP Page</title>  
            <script src="<%=request.getContextPath()%>/dwr/engine.js"></script>  
            <script src="<%=request.getContextPath()%>/dwr/interface/MessageServiceImpl.js"></script>  
              
            <script>  
                MessageServiceImpl.sendMessage();  
            </script>  
        </head>  
        <body>  
            <h1>Hello World!</h1>  
        </body>  
    </html>

    (6)接收后端推送

    dwr.engine.setActiveReverseAjax(true);  
  • 相关阅读:
    IntelliJ IDEA 14.03 java 中文文本处理中的编码格式设置
    应聘感悟
    STL string分析
    CUDA SDK VolumeRender 分析 (1)
    BSP
    CUDA SDK VolumeRender 分析 (3)
    CUDA SDK VolumeRender 分析 (2)
    Windows软件发布时遇到的一些问题
    Ten Commandments of Egoless Programming (转载)
    复习下光照知识
  • 原文地址:https://www.cnblogs.com/XD-thinker/p/6937666.html
Copyright © 2011-2022 走看看