在GAE宣佈支持java不久,spring的Blog上就有了一篇關於使用groovy在GAE上進行開發的文章。參照這篇文章,我就小試一把,發現還是挺爽的。
參照文章的網址爲http://blog.springsource.com/2009/04/07/write-your-google-app-engine-applications-in-groovy/
首先下載作者提供的模板程序,接着修改appengine-web.xml文件
<appengine-web-app xmlns="http://appengine.google.com/ns/1.0">
<application>你的applicationId</application>
<version>1</version>
</appengine-web-app>
創建傳統的servlet,在groovy中與java沒有多大的區別,不過可以使用groovy的語法足矣。傳統servlet就不多說了。
Groovlet框架是groovy對傳統servlet的簡化。使用Groovlet非常簡單,首先跟傳統的servlet一樣需要在web.xml中 進行servlet的設置,但是不同的是使用groovlet只需設置groovy.servlet.GroovyServlet,接下來創建的多個 Groovlet都不用再進行設置。web.xml設置如下:
<servlet> <servlet-name>GroovyServlet</servlet-name> <servlet-class>groovy.servlet.GroovyServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>GroovyServlet</servlet-name> <url-pattern>*.groovy</url-pattern> </servlet-mapping>
在deploy/WEB-INF/groovy中創建一個hello.groovy
html.html { head { title "Hello" } body { p "Hello Groovy World!" } }
再創建一個test.groovy內容如下:
html.html { head { title "Weclome to test" meta(charset:"UTF-8") link(rel:"stylesheet",type:"text/css",href:'test.css') } body { div{ p("您好,${request.getParameter('name')}") } div{ p("歡迎你來到groovlet的世界!") } } }
爲配和test.groovy需要一個頁面提交一個姓名,在deploy/下創建一個index.html
<html>
<head>
<meta charset="UTF-8">
<title>Groovy的簡單測試</title>
<link rel="stylesheet" type="text/css" href="test.css">
</head>
<body>
<form method="get" action="test.groovy">
<div> 請輸入你的姓名</div>
<table>
<tr>
<td>姓名</td>
<td><input type="text" name="name"/></td>
</tr>
<tr>
<td><input type="submit"/></td>
</tr>
</form>
</body>
</html>
接下來就是部署了,這裏需要注意的是要設置appengine-java-sdk相關的環境變量,將bin加入到path中
我的環境變量的設置如下:
APPENGINE_HOME=D:\dev\env\appengine-java-sdk-1.2.0
path=%APPENGINE_HOME%\bin
設置完畢後,進入命令提示符,切換到該項目的根目錄下,運行
appcfg update deploy/
如果你要寫傳統的servlet還需要在上上傳前進行編譯
groovy build
上傳成功後,分別訪問http://你的id.appspot.com/hello.groovy 與http://你的id.appspot.com/index.html, 我們可以發現提交到test.groovy後,寫的中文都是亂碼,而提交的中文不是亂碼,這個的原因我查了一下應該是GroovyServlet會使用系統預設的編碼讀取Groovlets ,所以需要使用-Dfile.encoding=UTF8,項目運行在gae上,不知道該如何設置。