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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

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

發布時間:2024/5/24 综合教程 30 生活家
生活随笔 收集整理的這篇文章主要介紹了 简单易懂的现代魔法——Play Framework攻略2 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

接前文:http://www.cnblogs.com/Kassadin/p/4335908.html

上次講到Play Framework開發環境的配置,以及第一個Hello World程序;本次主要介紹Play Framework的幾個核心概念。

1. Web應用程序的請求響應模型


每一個web開發者對于HTTP request和HTTP response都可以說是耳熟能詳。實際上他們對應了Web開發的基本模型:請求-響應模型。請求響應模型的過程如下:

(1)Web瀏覽器通過HTTP協議向服務器端發送request請求

(2)Web服務器接收并解析HTTP request請求

(3)Web服務器將請求分發給相應的邏輯處理程序進行處理

(4)Web服務器將處理結果形成HTML格式的響應體

(5)Web服務器通過HTTP協議向瀏覽器端發送response響應

(6)Web瀏覽器顯示HTML響應體

請求響應模型本質上講是HTTP協議在Web開發中的應用,由于本文的重點不是這里,如需詳細學習該模型,請查閱HTTP協議相關書籍和文檔。

2. MVC模式


為什么要提到請求-響應模型呢,因為它是大名鼎鼎的MVC模式的基礎。什么是MVC設計模式?

M-Model,模型;V-Views,視圖;C-Controller,控制器;MVC模式也就是模型-視圖-控制器模式;許多著名框架如SSH,Ruby on Rails本質上講都是基于MVC設計模式的產物。同樣的,MVC模式也是Play framework的核心。MVC設計模式之所以取得成功,是因為它和HTTP協議的請求-響應模型具有一致性。

(1)Controller,控制器

負責解析HTTP request并分發處理HTTP請求,控制器實現了對Web服務器程序流程的控制,它決定了由哪個模塊處理HTTP請求,將請求分發給哪個View顯示,請求哪一個Model以獲取數據。它是MVC中業務邏輯的核心。

(2)View,視圖

負責Web應用的顯示邏輯,它主要定義了Web的展現層。

(3)Model,模型

負責Web應用的數據模型,與低層數據庫進行映射,它主要定義了數據邏輯。

MVC設計模式實現了業務邏輯和顯示邏輯的分離,進而實現了Web應用的高內聚性和低耦合性,因而取得了空前的成功。

3. Play Framework基本結構(實例研究)


本部分我將通過實際編寫程序來展示Play Framework的幾個核心概念。

【1】Java or Scala?

Play 2.0框架庫已經由Scala編寫,采用Scala編寫Web應用相比于Java更加簡潔現代,與框架的吻合度也更好,因此本系列盡量采用基于Scala的模版進行講解;當然了,框架的思想與語言無關,其實無論是Java還是Scala可以說都大同小異(針對Play框架來說的,不是說的語言本身),因此,本系列以后可能會附帶介紹Scala的相關內容。

【2】新建項目

【3】項目結構

輸入cd hello進入項目

項目結構如上圖1所示,主要包括了5個主要的文件夾;其中最重要的是app文件夾和conf文件夾。app文件夾主要存放項目代碼,conf文件夾主要存放項目配置文件,public文件夾存放項目公有資源,test文件夾存放測試代碼。

至于其他文件,現在還用不到,等到之后再慢慢研究好了。

現在對我們最為重要的是app文件夾和conf文件。上圖2展示了app文件夾和conf文件夾的內部結構。在app文件夾中包含控制器和視圖兩個子文件夾,這和之前的MVC模式相對應,而conf文件夾下的routes文件是非常重要的配置文件,直接決定了http request的處理方式。

【4】routes

routes文件的每一行由3部分組成:

(1)第一部分,定義了HTTP請求的類型,如GET,POST等

(2)第二部分,相對路徑

(3)第三部分,對應的處理方法(Action)

舉個例子,當瀏覽器以GET方式請求URL:http://localhost:9000/ 時,其請求方式為GET,相對路徑為:/,那么此時就應該將請求轉交給controllers.Application.index方法處理。因此,我們來看一下index方法。

【5】app/controllers/Application.scala

該程序是控制器的核心程序,在scala中定義了一個單例對象Application類,該單例對象包含一個index方法,該方法調用Action函數,Action函數的功能是:執行函數體,并將函數體相應數據作為response頭和response體返回給瀏覽器。

[1]Ok. 返回值信息

如圖所示,OK相當于response code = 200,作為response頭返回給瀏覽器

[2]views.html.index("Your new application is ready.”)

將字符串作為參數傳遞給views.html.index視圖模版,視圖模版解析參數以后,生成HTML代碼,作為response體返回給瀏覽器

【6】app/views/index.scala.html

視圖文件,由HTML+參數組成,解析相關參數可變為純靜態HTML文件。

現將原視圖文件修改如下:

@(message: String)
<html>
    <head>hello Play</head>
    <body>
        <h1>@message</h1>
    </body>
</html>

【7】打開服務器進行測試

輸入activator run打開服務器

瀏覽器輸入http://localhost:9000/,我們得到了預期結果。

4.后記


本次我們主要研究了Play Framework的基本結構和幾個重要文件的作用,分析了Play Framework的工作過程。

下次我們的主要任務是實現有參數的請求與REST架構的討論。

敬請期待:Play Framework之3: REST架構與Restful Web Service.

總結

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

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。