<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 閱讀(662) 評論(0)  編輯  收藏 所屬分類: 【Groovy學習】
    主站蜘蛛池模板: 色欲A∨无码蜜臀AV免费播| 精品国产香蕉伊思人在线在线亚洲一区二区| 日本免费在线观看| 99re免费视频| 国产免费爽爽视频免费可以看| 国产免费观看视频| 亚洲成AV人片在线播放无码| 亚洲精品动漫在线| 美女羞羞免费视频网站| 中文字幕在线免费看| 永久免费毛片在线播放| 亚洲一区二区三区偷拍女厕 | 日本一道综合久久aⅴ免费| 亚洲欧洲∨国产一区二区三区| 亚洲精品国产电影午夜| 特色特黄a毛片高清免费观看| 18禁美女黄网站色大片免费观看| 美女被cao免费看在线看网站| 亚洲人成亚洲人成在线观看| 亚洲AV无码国产精品色| 日本高清不卡aⅴ免费网站| 久久久久久久久免费看无码| 图图资源网亚洲综合网站| 午夜免费国产体验区免费的| 18禁免费无码无遮挡不卡网站 | 亚洲毛片免费观看| 久久久久久久99精品免费观看| 国产大片免费观看中文字幕| 亚洲国产日韩在线人成下载| 久久午夜伦鲁片免费无码| 亚洲中文字幕无码久久2017| 国产成人亚洲毛片| 免费观看午夜在线欧差毛片| 毛片亚洲AV无码精品国产午夜| 黄页网站在线看免费| 久久精品国产亚洲αv忘忧草| 最近2019中文字幕免费大全5 | 亚洲国产精品无码久久久秋霞1| 亚洲免费人成视频观看| 亚洲人成综合网站7777香蕉| 黄页网站免费在线观看|