日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

简单易懂的现代魔法——Play Framework攻略4

發(fā)布時間:2025/6/15 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 简单易懂的现代魔法——Play Framework攻略4 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

接前文:簡單易懂的現(xiàn)代魔法——Play Framework攻略3

1.The Object


?時隔2個多月,Play Framework系列又更新了,本次的主題是:利用Play Framework實現(xiàn)Rest風(fēng)格的Web Service。

[1]利用Play!實現(xiàn)Rest風(fēng)格的Web服務(wù),該Web服務(wù)的功能是登錄驗證。

[2]在客戶端調(diào)用該Web服務(wù),判斷Web服務(wù)是否可用。(測試)

>>>

2. Web Service


什么是Web Service!這又是一個很復(fù)雜的問題,這里我就不拿學(xué)術(shù)論文來探討這個問題了。這里就提幾個關(guān)鍵詞好了:SOAP,SOA,WSDL,RPC,XML,JSON。至于學(xué)術(shù)上討論的Web Service大家可以自行百度學(xué)習(xí)下:Web Service

簡單理解Web服務(wù),就是一個跨語言和平臺的服務(wù)接口,比如我們熟悉的天氣預(yù)報接口,百度地圖接口,微博接口等都屬于Web Service。這些遠(yuǎn)程Web API,大多采用Web Service技術(shù)實現(xiàn)。

那么,什么是Restful Web Service呢!?

近幾年來,Restful Web Service方興未艾,大有趕超SOAP之勢。傳統(tǒng)的Web Service大多基于SOAP協(xié)議,在編寫Web服務(wù)過程中,大量的配置文件定義和復(fù)雜的安全控制使得這類Web Service越來越重量級;近幾年來隨著移動應(yīng)用的興起,越來越多的輕量級框架開始逐漸展露頭角,比如Ruby中的Sinatra,Python中的Flask,Node.js中的Express等等。這些輕量級框架和移動應(yīng)用的輕量級需求相適應(yīng),因而得到快速流行。

而Restful Web Service則是Web服務(wù)輕量化的體現(xiàn)。Rest風(fēng)格的Web服務(wù)并不是一個協(xié)議,只是一種編程風(fēng)格。Restful的基本思想是基于資源的架構(gòu)。Restful Web Service使得訪問Web服務(wù)像訪問Web網(wǎng)站一樣平滑。它的最突出特點是提供POST,GET,Delete等方式訪問Web服務(wù),把所有的服務(wù)看作是一種資源,對于資源,可以簡單的進行CRUD操作。

>>>

3.基于Play Framework的服務(wù)器端開發(fā)


?理論講了這么多,是在是難以理解,下面實戰(zhàn)演示一下。服務(wù)器端要實現(xiàn)的業(yè)務(wù)流程是:

[1]提供一個登錄接口,用戶可以輸入用戶名和密碼

[2]服務(wù)器接受用戶提交的數(shù)據(jù)

[3]服務(wù)器對比用戶名和密碼是否正確(通常需要訪問數(shù)據(jù)庫,本次我們固定密碼在程序中)

[4]服務(wù)器返回登錄是否成功的JSON信息給客戶端

服務(wù)器端的開發(fā)是在簡單的不行,我們打開上次建立的工程(簡單易懂的現(xiàn)代魔法——Play Framework攻略3)

[1]打開工程

由于業(yè)務(wù)邏輯和上次基本一樣,只是服務(wù)器不再跳轉(zhuǎn)網(wǎng)頁,而是返回JSON信息,因此我們繼續(xù)使用上次的工程進行修改即可。

[2]刪除post.scala.html文件

在app/views中刪除post.scala.html文件。由于我們不再需要跳轉(zhuǎn)網(wǎng)頁,因此該視圖可以直接刪除。

[3]修改controller中的loginPost Action

修改app/controllers/Application.java文件的Application類的loginPost()方法,代碼如下:

1 public Result loginPost() 2 { 3 DynamicForm requestData = Form.form().bindFromRequest(); 4 String username = requestData.get("username"); 5 String password = requestData.get("password"); 6 7 ObjectNode result = Json.newObject(); 8 if(username.equals("kirigiri") && password.equals("123456")) 9 { 10 result.put("result","登錄成功"); 11 return ok(result); 12 } 13 else 14 { 15 result.put("result","用戶名或密碼錯誤,請重新登錄"); 16 return ok(result); 17 } 18 } loginPost

關(guān)鍵點在于建立了一個JSON對象result,然后在result對象中寫入信息。最后直接將這個JSON對象返回給客戶端即可。

[4]終端運行服務(wù)器

KirigirideMacBook-Air:loginService Kirigiri$ activator run

[5]輸入網(wǎng)址進行測試:

http://10.110.2.115:9000/login,輸入用戶名和密碼后,成功返回JSON數(shù)據(jù)。

至此,服務(wù)器端開發(fā)完成,我們只修改了幾行代碼,就把Web程序改寫為了服務(wù)器端程序,可見Rest風(fēng)格的Web服務(wù)是多么的強大。

>>>

4.客戶端測試?yán)?/span>


既然有了Web Service,那么我們就可以在移動客戶端實現(xiàn)登錄啦!至于客戶端具體怎么開發(fā),我會在下一篇文章詳述,這里我就展示一個用Swift寫的客戶端例子吧。

[1]新建iOS程序

[2]修改ViewController.swift代碼

(3)在func viewDidLoad()中寫入下列代碼:

1 override func viewDidLoad() { 2 super.viewDidLoad() 3 4 var bodyData = "username=kirigiri&password=123456" 5 6 var url = NSURL(string: "http://10.110.2.115:9000/login") 7 var request = NSMutableURLRequest(URL: url!) 8 9 request.HTTPMethod = "POST" 10 request.HTTPBody = bodyData.dataUsingEncoding(NSUTF8StringEncoding); 11 12 let task = NSURLSession.sharedSession().dataTaskWithRequest(request) { 13 data, response, error in 14 15 if error != nil 16 { 17 println("error=\(error)") 18 return 19 } 20 21 println("response = \(response)") 22 23 let responseString = NSString(data: data, encoding: NSUTF8StringEncoding) 24 println("responseString = \(responseString)") 25 26 var err: NSError? 27 var myJSON = NSJSONSerialization.JSONObjectWithData(data, options: .MutableLeaves, error:&err) as? NSDictionary 28 29 if let parseJSON = myJSON { 30 var result = parseJSON["result"] as? String 31 println("result: \(result)") 32 } 33 } 34 task.resume() 35 } Swift code

(4)點擊Run開始運行程序

我們在客戶端成功得到了返回的JSON信息!

至此,測試成功。由于我對iOS開發(fā)完全不熟悉,所以還不能利用得到的JSON數(shù)據(jù)進行iOS UI的開發(fā)和頁面跳轉(zhuǎn)。下次我會利用windows程序展示一個利用Web Service實現(xiàn)客戶端登錄的例子。

轉(zhuǎn)載于:https://www.cnblogs.com/Kassadin/p/4541103.html

總結(jié)

以上是生活随笔為你收集整理的简单易懂的现代魔法——Play Framework攻略4的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。