Revel 常見問題

2022-07-28 14:13 更新

如何將已有的http.Handlers整合到Revel中?

概念圖中, http.Handler 用于處理用戶的請(qǐng)求。Revel的處理是非常簡單的,它只是創(chuàng)建控制器實(shí)例,并將請(qǐng)求傳遞給過濾器鏈。

應(yīng)用程序可以通過重寫默認(rèn)的處理程序整合現(xiàn)有http.Handlers:

func installHandlers() {
    var (
        serveMux     = http.NewServeMux()
        revelHandler = revel.Server.Handler
    )
    serveMux.Handle("/",     revelHandler)
    serveMux.Handle("/path", myHandler)
    revel.Server.Handler = serveMux
}

func init() {
    revel.OnAppStart(installHandlers)
}

攔截器、過濾器和模塊之間是什么關(guān)系?

  1. 模塊是可以插入到程序中的包。他們可以在多個(gè)Revel程序(或第三方源)中共享控制器、視圖、資源和其他代碼。

  2. 過濾器是可掛接到請(qǐng)求處理管道的函數(shù)。他們一般作為一個(gè)整體處理技術(shù)在應(yīng)用程序中使用,來垂直分隔應(yīng)用程序邏輯。

  3. 攔截器是封裝數(shù)據(jù)和行為一種方便的方式,因?yàn)榍度腩愋蛯?dǎo)入它的攔截器和字段。這使得攔截器可以很好的處理一些事情,比如驗(yàn)證登錄cookie并保存這些信息到一個(gè)字段。攔截器可以應(yīng)用到一個(gè)或多個(gè)控制器。
以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)