/**
方法和函数的区别是?
方法前面有括号
*/
// 自己实现一个 服务器
type MyHandle struct {
}
func (myHandle *MyHandle) ServeHTTP (w http.ResponseWriter, r *http.Request) {
//log.Fatal("通过自己创建处理器处理请求")
fmt.Fprintln(w,"通过详细配置处理器处理请求")
}
func main() {
/* // 方法一实现
myHandle := MyHandle{}
http.Handle("/myHandle",&myHandle)
http.ListenAndServe(":8080",nil)*/
// 方法二实现
myHandle:=MyHandle{}
server:=http.Server{
Addr:":8080",
Handler:&myHandle,
ReadHeaderTimeout:2*time.Second,
}
server.ListenAndServe()
}
创建多路复用器
// 创建处理器函数
func handler2(w http.ResponseWriter , r *http.Request) {
fmt.Fprintln(w,"通过自己创建多路复用器创建的处理器",r.URL.Path)
}
func main() {
// 创建多路复用器
mux:=http.NewServeMux()
mux.HandleFunc("/",handler2)
//http.ListenAndServe(":8080",nil)u
http.ListenAndServe(":8080",mux)
}