package main
import (
"fmt"
"net/http"
)
//创建处理器函数
func handler(w http.ResponseWriter, r *http.Request) {
fmt.Fprintln(w, "hello", r.URL.Path)
}
func main() {
//HandlerFunc是一个适配器,通过类型转换让我们可以将普通的函数作为HTTP处理器使用
//如果f是一个具有适当签名的函数,HandlerFunc通过调用实现了Handler接口
http.HandleFunc("/", handler)
//传入网络地址,以及负责处理请求的处理器handler,如果处理器参数为nil,则使用默认的多路复用器DefaultServeMux
http.ListenAndServe(":8080", nil)
}
package main
import (
"fmt"
"net/http"
)
type MyHandler struct {}
//只要某个结构体实现了Handler接口中的ServeHTTP方法,那么它就是一个处理器
func (h *MyHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
fmt.Fprintln(w, "通过处理器处理请求")
}
func main() {
myHandler := MyHandler{}
//调用处理器,实现了Handler接口的对象可以注册到HTTP服务端,为特定的路径及其子树提供服务
http.Handle("/", &myHandler)
http.ListenAndServe(":8080&#