处理器
一个处理器就是实现了Handler这个接口:
type Handler interface {
ServeHTTP(ResponseWriter, *Request)
}
实现一个处理器:
//定义一个处理器
type MyHandler struct{}
//实现Handler接口
func (h *MyHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
fmt.Fprintln(w, "hi")
}
func main() {
handler := MyHandler{}
//将处理器绑定在服务器上
server := http.Server{
Addr: "127.0.0.1:8000",
Handler: &handler,
}
server.ListenAndServe()
}
多路复用器DefaultServeMux是一个特殊的处理器,它的任务是根据请求的URL将请求重定向到不同的处理器。DefaultServeMux是http包默认提供的一个多路复用器:
//定义多个处理器
type h1 struct{}
func (h1 *h1) ServeHTTP(w http.ResponseWriter, r *http.Req