來玩Play框架01 簡介

Vamei發表於2014-04-27

作者:Vamei 出處:http://www.cnblogs.com/vamei 歡迎轉載,也請保留這段宣告。謝謝!

 

說到網路框架,Ruby的Ruby on Rail和Python的Django都相當輕巧好用,但Java下的框架,則要沉重很多。有人因此質疑Java語言本身是否符合網路時代的需求。Java大神們對這一問題嗤之以鼻。想要輕巧好用的框架?寫一個給你就是了。Java程式設計師Guillaume Bort在JVM上創造了一個全新的框架Play framework。Play擁有ROR或Django那樣的靈巧,又不失Java的穩定,更有JVM這一強大的執行平臺。魔鬼身材,天使臉蛋。讓我們來玩玩Play吧。

 

 

 

下載與安裝

Play的安裝相當簡單。Play官網下載,我下載的是2.2.1版本。該版本的API文件為2.2.1API

把下載的.zip檔案解壓縮,並將解壓縮後的資料夾放到某個位置。比如/home/vamei/Util。

unzip play-2.2.1.zip
mv play-2.2.1 /home/vamei/Util/

資料夾裡重要的是可執行檔案play。我一般是在/home/vamei/Util/下建立一個bin資料夾,並在該資料夾中建立play的軟連結。

mkdir -p /home/vamei/Util/bin
cd /home/vamei/Util/bin
ln -s /home/vamei/Util/play-2.2.1/play .

最後,將新建的bin資料夾放入系統路徑。

echo "export PATH=/home/vamei/Util/bin:$PATH" >> /home/vamei/.bashrc
source /home/vamei/.bashrc

在命令列輸入play,將顯示:

       _
 _ __ | | __ _ _  _
| '_ \| |/ _' | || |
|  __/|_|\____|\__ /
|_|            |__/

play 2.2.1 built with Scala 2.10.2 (running Java 1.7.0_51), http://www.playframework.com

This is not a play application!

Use `play new` to create a new Play application in the current directory,
or go to an existing application and launch the development console using `play`.

You can also browse the complete documentation at http://www.playframework.com.

 

注:

上面是Ubuntu下的安裝過程。Linux系統都類似。

在Mac OS下,選擇合適的路徑安裝play,過程也相同。

對於Windows下的安裝,沒有探索。歡迎補充。

 

建立與執行

切換到/home/vamei,建立一個網路應用test,

play new test

跟隨指示,輸入專案的必要資訊。應用名和程式語言,分別為test和Java。

將有一個新的資料夾/home/vamei/test出現在當前路徑。它包含該專案的所有檔案。

test
├── README
├── app
│   ├── controllers
│   │   └── Application.java
│   └── views
│       ├── index.scala.html
│       └── main.scala.html
├── build.sbt
├── conf
│   ├── application.conf
│   └── routes
├── project
│   ├── build.properties
│   └── plugins.sbt
├── public
│   ├── images
│   │   └── favicon.png
│   ├── javascripts
│   │   └── jquery-1.9.0.min.js
│   └── stylesheets
│       └── main.css
└── test
    ├── ApplicationTest.java
    └── IntegrationTest.java

上面最重要的資料夾是app,裡面包含了專案的MVC定義。Play採用MVC架構(model-view-control)。新建專案已經建立好了controllers和views,包含有控制器(controller)和檢視(view)模板。如果有必要,可以在app下建立models資料夾,用來定義資料模型(model)。

application.conf包含了專案的各個設定引數。

routes記錄了url請求和控制器的對應關係。當有http請求進入時,Play將根據該檔案的設定,呼叫特定的控制器行動。

 

現在,切換到/home/vamei/test,並執行專案。輸入命令:

play run

Play自己包含有一個網路伺服器模組,所以不需要和apache銜接,就可以作為網路伺服器,直接工作。 

 

開啟瀏覽器,訪問localhost:9000,將看到執行的test應用。

這一頁面是新建專案自帶的頁面。

 

解析

Play框架的主要功能是動態生成http響應。http協議按照“請求-響應”(request-response)的方式工作。http通訊的相關介紹,可參考http協議。 

Play是MVC架構,分步驟生成響應,而每一步由不同的模組負責。上面的一個簡單頁面,是如下過程產生的:

 

圖中的黑色字型表明瞭這些功能在專案中所在的具體檔案。

routes負責將url導向正確的行動(action)。action是生成http響應的核心。一個action會經過一系列的運算,產生一個響應。而控制器controller只是一個action的集合。在Java程式設計中,action是controller類的一個方法。action的響應可以傳給某個檢視,比如上面的index.scala.html,從而更好的控制顯示效果。最後的結果,就是一個http響應,也就是我們所看到的頁面。

通過個性化上述過程,我們可以設計出功能更豐富的網路應用。

 

持續執行

Play自帶的伺服器可以持續執行。將Play安裝在目標伺服器,比如雲上後,在Play專案的根目錄下,用:

play start

來持續執行伺服器。此後你可以按Ctrl-D來返回命令列。此時的Play不依賴於Shell,即使退出伺服器的登陸,Play還是會持續執行。

 

使用其它埠執行:

play "start -Dhttp.port=8080"

 

停止執行。切換到專案的根目錄下,使用命令:

play stop

 

總結

play new

play run

動態生成響應

model-control-view

 

歡迎繼續閱讀“Java快速教程”系列文章

 

 

相關文章