模块:go mod init webDemo
设置web服务器
方法一:
http.ListenAndServe("localhost:8080", nil)
方法二:
server := http.Server{
Addr: "localhost:8080",
Handler: nil,
}
server.ListenAndServe()
例
package main
import "net/http"
func main() {
//设置web服务器
http.ListenAndServe("localhost:8080", nil)
//第一种路由, HandleFunc是一个适配器,将func转化为handler
http.HandleFunc("/home", func(w http.ResponseWriter, r *http.Request) {
w.Write([]byte("home!"))
fmt.Fprintln(w, "home!!!")
})
//第二种路由
mh := helloHandler{}
http.Handle("/hello", &mh)
}
type helloHandler struct{}
func (m *helloHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
w.Write([]byte("hello word 2"))
}
GO提供共Server结构体,我们可以创建一个Server的实例,去配置Server中的一些配置。
package main
import (
"fmt"
"net/http"
)
type MyHandler2 struct{}
func (this *MyHandler2) ServeHTTP(w http.ResponseWriter, r *http.Request) {
fmt.Fprintln(w, "小王子")
}
func main() {
myHandler := MyHandler2{}
//注:这里没有HanlderFunc函数可以调用了,要在定义server时指定
server := http.Server{
Addr: ":9090",
Handler: &myHandler,
}
server.ListenAndServe()
}