JAVA—咖啡館

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

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

          公告

           

          Locations of visitors to this page
          點擊這里給我發消息 點擊這里給我發消息

          常用鏈接

          留言簿(17)

          隨筆分類(542)

          隨筆檔案(438)

          文章分類(182)

          文章檔案(142)

          新聞分類

          ※→ 【JAVA文檔】

          ※→ 【親人博客】

          ※→ 【休閑娛樂】

          ※→ 【友情鏈接】

          ※→ 【學習網站】

          ※→ 【服務網站】

          ※→ 【著名網站】

          ※→ 【阿里博客】

          最新隨筆

          搜索

          積分與排名

          最新評論

          閱讀排行榜

          評論排行榜

          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 閱讀(668) 評論(0)  編輯  收藏 所屬分類: 【Groovy學習】
          主站蜘蛛池模板: 朝阳县| 方正县| 积石山| 泌阳县| 塔河县| 嘉义市| 南安市| 望江县| 新田县| 扬中市| 静乐县| 房山区| 商城县| 贺兰县| 蓝田县| 靖宇县| 屏东县| 高淳县| 固阳县| 孟连| 罗甸县| 汉源县| 襄城县| 郁南县| 泰和县| 明水县| 鹤庆县| 新津县| 肇州县| 绥德县| 定陶县| 科技| 南城县| 弥勒县| 共和县| 漳平市| 田阳县| 石渠县| 铜川市| 民丰县| 尉犁县|