<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    歡迎光臨郝學(xué)武的blog。

    dwr快速上手

    Posted on 2007-11-22 13:42 陜西BOY 閱讀(1810) 評(píng)論(5)  編輯  收藏
        DWR是一個(gè)開源的類庫,可以幫助開發(fā)人員開發(fā)包含AJAX技術(shù)的網(wǎng)站.它可以允許在瀏覽器里的代碼使用運(yùn)行在WEB服務(wù)器上的JAVA函數(shù),就像它就在瀏覽器里一樣.
        它包含兩個(gè)主要的部分:允許JavaScript從WEB服務(wù)器上一個(gè)遵循了AJAX原則的Servlet(小應(yīng)用程序)中獲取數(shù)據(jù).另外一方面一個(gè)JavaScript庫可以幫助網(wǎng)站開發(fā)人員輕松地利用獲取的數(shù)據(jù)來動(dòng)態(tài)改變網(wǎng)頁的內(nèi)容.
        DWR采取了一個(gè)類似AJAX的新方法來動(dòng)態(tài)生成基于JAVA類的JavaScript代碼.這樣WEB開發(fā)人員就可以在JavaScript里使用Java代碼就像它們是瀏覽器的本地代碼(客戶端代碼)一樣;但是Java代碼運(yùn)行在WEB服務(wù)器端而且可以自由訪問WEB 服務(wù)器的資源.出于安全的理由,WEB開發(fā)者必須適當(dāng)?shù)嘏渲媚男㎎ava類可以安全的被外部使用.下面是我在項(xiàng)目中應(yīng)用的一個(gè)例子:
    首先在WEB-INF下建立dwr.xml
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 2.0//EN" "http://www.getahead.ltd.uk/dwr/dwr20.dtd">
    <dwr>
     <allow>
     <create creator="new" javascript="Test">
          <param name="class" value="com.Test"/>
        </create>
     </allow>
    </dwr>
    接著在web.xml中加入DWRServlet配置
    <servlet>
      <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>  //此處是在項(xiàng)目運(yùn)行用到dwr后生成腳本的所在的目錄,以后用的時(shí)候根據(jù)相對(duì)路徑引入。
    </servlet-mapping>
    接著創(chuàng)建java類
    package com;
    public class.Test{
     
     public String getArea(String city)
     {
      StringBuffer sb=new StringBuffer("");
      sb.append("<select name='area' style='width:120'>");
      sb.append("<option value='0'>全部</option>");
      if(city.equals("aaa"))
      {
       sb.append("<option value='111>111</option>");
       sb.append("<option value='222>222</option>");
       sb.append("<option value='333>333</option>"); 
      }
      if(city.equals("bbb"))
      { 
       sb.append("<option value='444>444</option>");
       sb.append("<option value='555>555</option>");
      }
         if(city.equals("ccc"))
         {
         sb.append("<option value='666>666</option>");
      sb.append("<option value='777'>777</option>");
         }
          sb.append("</select>");
         return sb.toString();
     }
    }
    建立test.jsp

    <%@ page language="java" contentType="text/html; charset=GBK"%>
        <title>dwr.jsp</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">
        <script type='text/javascript' src='dwr/interface/Test.js'></script>
      <script type='text/javascript' src='dwr/engine.js'></script>
      <script type='text/javascript' src='dwr/util.js'></script>
        <script language="javascript">
             function update() {
             var city = document.getElementById("city").value;
             Test.getArea(city, function(data) {
             document.getElementById("demoReply").innerHTML=data;
      });
    }

    </script>


     
      <body>
       <p>
      Name:
      <select style="width:120" id="city" name="city" onchange="update()">
                  <option value="aaa">aaa</option>
           <option value="bbb">bbb</option>
           <option value="ccc">ccc</option>
    </select>

    <span id="demoReply">
    <select style="width:120" id="area" name="area">
           <option value="0">全部</option>
          
    </select>
    </span>
    </p>

      </body>

    大家照著上面的例子,把這個(gè)項(xiàng)目發(fā)布,運(yùn)行http://localhost:8080/項(xiàng)目名/test.jsp就看到效果了
    實(shí)現(xiàn)無刷新表單提交。
    好的,今天就到這吧。得上班了!

    Feedback

    # re: dwr快速上手  回復(fù)  更多評(píng)論   

    2007-11-22 17:58 by freeman1984
    老鄉(xiāng)

    # re: dwr快速上手  回復(fù)  更多評(píng)論   

    2007-11-22 21:34 by BeanSoft
    支持一下. 曾經(jīng)在西安上大學(xué).

    # re: dwr快速上手  回復(fù)  更多評(píng)論   

    2007-11-30 17:00 by 霜の哀傷
    js代碼在java寫 修改的話 需要重啟服務(wù)器 是不是很麻煩

    # js代碼在java寫 ....很麻煩[未登錄]  回復(fù)  更多評(píng)論   

    2007-12-03 08:56 by 陜西BOY
    不會(huì)的,正常情況下你應(yīng)該是用eclipse開發(fā)吧,dwr只不過是把你需要的類引入近來,就像你在java類里面import一樣,在類里你只要修改后保存就ok了,eclipse會(huì)重新給你編譯保存的

    # re: dwr快速上手  回復(fù)  更多評(píng)論   

    2007-12-13 11:15 by themax
    應(yīng)該使用DWRUTIL這個(gè)js賦值,java類里面返回一個(gè)map就可以了

    只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     

    posts - 17, comments - 65, trackbacks - 0, articles - 28

    Copyright © 陜西BOY

    主站蜘蛛池模板: 亚洲久悠悠色悠在线播放| 亚洲人成电影院在线观看| 国产做床爱无遮挡免费视频| 国产禁女女网站免费看| 亚洲国产婷婷香蕉久久久久久| 国产亚洲美女精品久久久| 亚洲国产精品久久久久| 亚洲国产综合自在线另类| 美女被爆羞羞网站在免费观看| aa级毛片毛片免费观看久| 最近2018中文字幕免费视频| 成年人性生活免费视频| 亚洲精品国产精品乱码不卡√ | 亚洲毛片在线观看| 久久国产乱子伦免费精品| 亚洲影视一区二区| 无码人妻一区二区三区免费手机| jlzzjlzz亚洲乱熟在线播放| 中中文字幕亚洲无线码| 最近免费中文字幕大全免费| 中文字幕乱码亚洲精品一区| 免费欧洲毛片A级视频无风险| jizz免费在线观看| 日韩a在线观看免费观看| 日韩精品一区二区亚洲AV观看 | 国产午夜精品理论片免费观看| 成人性生免费视频| 国产成人亚洲精品播放器下载| 永久免费的网站在线观看| 日韩色视频一区二区三区亚洲| 无码专区永久免费AV网站| 亚洲AV无码成人精品区日韩| 91免费国产在线观看| 亚洲精品中文字幕乱码三区| 亚欧免费一级毛片| 亚洲午夜久久久久妓女影院| 成在线人视频免费视频| 亚洲国产成人精品久久| 国产成人综合亚洲AV第一页 | 亚洲va久久久久| 亚洲精品tv久久久久久久久久|