<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學習】
    主站蜘蛛池模板: 亚洲一区AV无码少妇电影| 丰满人妻一区二区三区免费视频| 最近中文字幕mv免费高清在线| 亚洲色精品VR一区区三区| 国产亚洲精品一品区99热| 黄色成人网站免费无码av| 在线播放免费人成视频网站| 91亚洲精品自在在线观看| 亚洲精品线路一在线观看| 1024免费福利永久观看网站| 国产免费内射又粗又爽密桃视频 | 亚洲人成网站在线观看播放动漫| 九月婷婷亚洲综合在线| 3344永久在线观看视频免费首页| 免费一级做a爰片久久毛片潮| 亚洲大香人伊一本线| 国产专区一va亚洲v天堂| 91香蕉在线观看免费高清| 亚洲成人网在线观看| 亚洲V无码一区二区三区四区观看| 亚洲国产成人久久综合一区77| 午夜无遮挡羞羞漫画免费| 性做久久久久久免费观看| av无码久久久久不卡免费网站| 一个人免费日韩不卡视频| 国产一级淫片a免费播放口| 三级网站在线免费观看| 在线免费视频你懂的| 岛国岛国免费V片在线观看| 国产精品免费一区二区三区 | 国产精品免费看久久久久| 免费鲁丝片一级观看| 免费看AV毛片一区二区三区| 在线视频免费观看www动漫| 妞干网免费视频观看| 日日AV拍夜夜添久久免费| 日韩免费视频播播| 免费A级毛片无码久久版| 亚洲国产午夜福利在线播放| 国产亚洲精品成人a v小说| 亚洲欧洲国产精品香蕉网|