原创 【五 form提交及校驗】 1. form表單提交

概述 對form表單的處理是任何web application的重要環節。Play能讓你輕鬆處理簡單form,而對複雜form的處理也變得可能。 Play的form處理建立在數據綁定基礎之上。Play會查詢POST請求中可以格式化的值並將

原创 elasticsearch日期類型 原

譯自官方文檔,原文請戳這裏。 JSON中沒有date類型,因此 es 中的日期可以是: "2015-01-01" "2015/01/01 12:10:30" 這種字符串格式 從開始紀元(1970年1月1日0點) 開始的毫秒數 從開始紀元開

原创 【三 異步HTTP編程】 1. 處理異步results 原

異步results 事實上整個Play框架都是異步的。Play非阻塞地處理每個request請求。 默認的配置適配的正是異步的controller。因此開發者應該盡力避免在在controller中阻塞,如在controller方法中等待其

原创 【三 異步HTTP編程】 4. WebSockets 原

WebSockets 是瀏覽器上的全雙工通信協議。在WebSockets通道存在期間,客戶端和服務器之間可以自由通信。 現代 HTML5 兼容的瀏覽器可以通過 JavaScript API 原生地支持WebSockets。除了瀏覽器之外,還

原创 【四 Twirl模板引擎】 2. 模板的依賴注入 原

Twirl模板可以使用class的構造函數方式生成(在template開始處使用 @this(args)語法),而不一定要用object的靜態方法。這意味着你可以將Twirl的模板注入到controllers。將控制權從controller

原创 【四 Twirl模板引擎】 3. 模板常用示例 原

現在來看一下模板的典型用法。 佈局 現在來聲明一個 views/main.scala.html 模板作爲主模板: @(title: String)(content: Html) <!DOCTYPE html> <html> <h

原创 【四 Twirl模板引擎】 4. 自定義模板格式 原

爲模板引擎添加對自定義格式的支持 內置的模板引擎支持常見的格式(HTML、XML等)。但是你也可以輕鬆地按需添加自己的格式。 模板處理流程概述 template會向輸出的結果中添加靜態及動態的內容。如下面這樣一個簡單模板: foo @b

原创 【三 異步HTTP編程】 2. 流式HTTP響應 原

標準響應及Content-Length頭 自HTTP1.1以來,服務器爲了在一個鏈接中處理多個HTTP請求及響應,必須隨response一起返回合適的Content-Length值。 默認情況下,對於簡單請求你無需返回 Content-L

原创 【二 HTTP編程】3. 控制Results 原

修改默認的Content-Type result的Content-Type會從response body的值中自動推斷。舉例如下: val textResult = Ok("Hello World!") 上面的代碼會自動將Content-

原创 【二 HTTP編程】7. 內容協商 原

內容協商 內容協商指對同一URI的不同返回形式。比如說一個同時支持XML、JSON等返回格式的Web Service。服務端驅動的內容協商本質上用Accept* 請求頭實現。HTTP 規範中的內容協商請見這裏。 語言 可以用 play.

原创 【三 異步HTTP編程】 3. Comet 原

Comet 已經快廢棄了吧,這章就偷懶略掉了。有需要的請直接查看源鏈接。

原创 【二 HTTP編程】2. HTTP路由 原

內置HTTP router http router負責將HTTP請求翻譯爲Action。 MVC框架將每個HTTP請求視作一個事件。此事件包含兩個主要部分: 請求路徑(e.g. /clients/1542, /photos/list)

原创 Demo of keycloak & mysql in docker 原

安裝 & 啓動Docker環境 下載keycloak鏡像 docker pull jboss/keycloak 下載Mysql鏡像 注意這裏如果直接用 latest 會下載到 mysql8 鏡像,mysql8和最新版的keycloak

原创 【一】Scala Configuration 相關API 原

        Play使用了 Typesafe config library,但是也提供了一個有着更多Scala高級特性的的 Configuration 封裝。不熟悉Typesafe配置的開發者可以移步 configuration文件的語

原创 【二 HTTP編程】5. Body parsers 原

何爲Body parser? 一個HTTP請求由請求頭和請求體組成。header部分通常很小 —— 因此可以在內存中被安全的緩存,在Play中對應着RequestHeader模型。相對而言,body部分可能會非常大,這時它不會直接緩存在內