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);  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM