package main
import (
"fmt"
"net/http"
)
type MyHandler struct{}
func (h *MyHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
fmt.Fprintf(w, "Hello Internet,Goodbye Local")
}
func main() {
handler := MyHandler{}
server := http.Server{
Addr: "127.0.0.1:8080",
Handler: &handler,
}
server.ListenAndServe()
}
对于我写的东西(func(h *MyHandler)...)?我不明白如果我不从 func main 调用他,这个片段如何影响代码?谢谢
http 服务器以对handler
的引用开头,该引用的类型为MyHandler
。MyHandler
是一个带有方法ServeHTTP(ResponseWriter,*Request)
的类型,因此它实现了http.Handler
接口。因此,每当服务器调用Handler.ServeHTTP
时,都会调用MyHandler.ServeHTTP
方法。