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

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

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

    JAVA—咖啡館

    ——歡迎訪問rogerfan的博客,常來《JAVA——咖啡館》坐坐,喝杯濃香的咖啡,彼此探討一下JAVA技術,交流工作經驗,分享JAVA帶來的快樂!本網站部分轉載文章,如果有版權問題請與我聯系。

    BlogJava 首頁 新隨筆 聯系 聚合 管理
      447 Posts :: 145 Stories :: 368 Comments :: 0 Trackbacks

    Groovy是什么?

      Groovy是一種語言,其語法類似于Java,但比Java更簡單。它通常被視為腳本/靈活/動態的語言,但是我不喜歡這類形容詞,因為我認為它們只會令人困惑。如果說Java是一位明智的中年男子,那么Groovy就是他十幾歲的兒子。Groovy具有父親的許多特點,但是更為狂野且更為有趣。他們也可以很好地合作。

      Groovy的規則比Java少得多。例如,要在Java中獲得標準的"Hello World"輸出,您需要編寫一個類、一個具有合適參數的主方法,等等。但是在Groovy中,如果不想編寫所有樣板代碼,您可以拋開類定義和主方法,僅編寫一行代碼即可打印出"Hello World"。

      以下是打印Hello World的文件 Hello.groovy 的內容:

    println "Hello World" 

      Java平臺僅關心使字節碼得到執行。同樣,此平臺不強迫您使用Java語言。只要提供了字節碼,工作就會進行。Groovy代碼會被編譯為字節碼,而對于Java平臺來說,字節碼是從Java代碼還是Groovy代碼生成的并沒有任何區別。

      以下是一個Groovy例子,它顯示了Groovy對清單、映射和范圍的內置支持,并證明了Groovy的簡單性及其利用Java的強大功能的能力:

    // Print Date
    def mydate = new java.util.Date()
    println mydate
    //Iterate through a map
    def numbersMAP = ['1':'ONE', '2':'TWO']
    for (entry in numbersMAP) {
    println "${entry.key} = ${entry.value}"
    }
    //Introducing the range
    def range = 'a'..'d'
    //Lists
    def numberlist = [1, 2, 3, 4, 5, 6, 7, 8]
    println numberlist;
    println "Maximum value: ${numberlist.max()}"
    

      請注意以上代碼直接使用java.util.Date ,對收集的內置支持減少了使用清單、映射和范圍所需的代碼。還有許多其他有趣的Groovy特性,例如閉包和簡化的XML處理。您可以在groovy.codehaus.org上找到詳細清單。

      現在讓我們來討論如何將Groovy用于Web開發。

    使用Groovy進行Web開發

      大多數Java EE教程都從一個基本servlet例子開始。對于Groovy Web開發來說,您將從groovlet(在groovy中servlet的對應概念)開始。如果您在servlet中擺脫了類和doXX() 方法聲明,那么剩下的內容就與groovlet很像了。以下是一個名為 Login.groovy 的groovlet例子,您需要將它置于Web應用程序的最高級目錄:

    def username= request.getParameter("username")
    def password= request.getParameter("password")
    if (username == "java" && password == "developer") {
    response.sendRedirect("home.jsp")
    session = request.getSession(true);
    session.setAttribute("name", username)
    }
    else {
    println """
    <h1>Login Invalid</h1>
    <p>Your IP has been logged > ${request.remoteHost}</p>
    """
    paramMap = request.getParameterMap()
    println "<p>You Submitted:</p>"
    for (entry in paramMap) {
    println "${entry.key} = ${entry.value}<br/>"
    }
    }
    

      您可以僅創建一個簡單的HTML表單,然后將此表單的行為屬性發送到 action="Login.groovy"。然后將以下標簽添加到web.xml:

    <servlet>
    <servlet-name>Groovy</servlet-name>
    <servlet-class>groovy.servlet.GroovyServlet</servlet-class>
    </servlet>
    <servlet-mapping>
    <servlet-name>Groovy</servlet-name>
    <url-pattern>*.groovy</url-pattern>
    </servlet-mapping>
    

      現在只需將要求的Groovy jar 文件添加到WEB-INF/lib 目錄,您的Groovy Web應用程序就準備好在任意Java EE應用服務器上運行了。

      您應該已經注意到代碼中沒有分號,而且使用了隱式變量如request和response。其他隱式變量有context、application、session、out、sout和 html。

      GSP是JSP在groovy中的對應概念。您無需使用println生成HTML;只需將Groovy代碼嵌入HTML頁面。本文中的例子將在提到Grails時使用GSP。

      請注意,因為所有代碼最終都要轉換為字節碼,所以groovlet和GSP能夠與servlet和JSP輕松協作。因此您無需區分groovlet和GSP或者servlet和JSP。

      現在讓我們討論前途無量的Grails框架。如果成功的話,Grails能夠極大地改變開發Java Web應用程序的方式。Ruby on Rails對Ruby的影響,Grails也能夠對Groovy實現。

    相關網站推薦:
    專題:Groovy開發技術_51CTO.COM
    官方網站:groovy.codehaus.org

    posted on 2008-05-22 11:09 rogerfan 閱讀(663) 評論(0)  編輯  收藏 所屬分類: 【Groovy學習】
    主站蜘蛛池模板: 亚洲av手机在线观看| 亚洲区小说区激情区图片区| 国产一区二区三区亚洲综合| 亚洲精品无码久久久久去q| 91精品全国免费观看含羞草| 亚洲AV无码一区二区三区网址| 红杏亚洲影院一区二区三区| 在线a免费观看最新网站| 亚洲av日韩专区在线观看| 亚洲一区爱区精品无码| 成人免费淫片在线费观看| 两个人日本WWW免费版| 亚洲欧洲日韩国产一区二区三区| 精品国产人成亚洲区| 免费在线观看的网站| a级毛片100部免费观看| 国产亚洲欧美日韩亚洲中文色| 久久亚洲成a人片| 亚洲国产av一区二区三区| 野花高清在线电影观看免费视频| 好吊色永久免费视频大全| 亚洲中文字幕日本无线码| 亚洲av无码成h人动漫无遮挡| 国产高清视频在线免费观看| 99视频精品全部免费观看| 永久免费无码网站在线观看个| 亚洲中文无码永久免费| 免费无码又爽又刺激网站直播| 亚洲欧美在线x视频| 麻豆狠色伊人亚洲综合网站| 亚洲AV无码久久精品成人| 亚洲国产婷婷香蕉久久久久久| 成人影片麻豆国产影片免费观看 | 亚洲a级成人片在线观看| 中文字幕亚洲综合久久菠萝蜜 | 国产精品酒店视频免费看| 成人免费观看一区二区| 久9久9精品免费观看| 不卡视频免费在线观看| 一级女性全黄生活片免费看| 亚洲va无码专区国产乱码|