Go Web --- 搭建服务器

server_1.go  单处理器(多路复用器)

package main

import (
	"fmt"
	"net/http"
)

type DefaultHandler struct{}

func (dh *DefaultHandler) ServeHTTP(response http.ResponseWriter, request *http.Request) {
	fmt.Fprintf(response, "welcome")
}
func main() {
	dh := DefaultHandler{}
	server := http.Server{
		Addr:    "127.0.0.1:8081",
		Handler: &dh,//单处理器,所有请求都会使用这个处理器 
	}
	server.ListenAndServe()
}

  

server_2.go  使用多处理器

package main

import (
	"fmt"
	"net/http"
)

type IndexHandler struct{}
type ListHandler struct{}

func (ih *IndexHandler) ServeHTTP(response http.ResponseWriter, request *http.Request) {
	fmt.Fprintf(response, "this is index")
}
func (lh *ListHandler) ServeHTTP(response http.ResponseWriter, request *http.Request) {
	fmt.Fprintf(response, "this is list")
}

func main() {
	ih := IndexHandler{}
	lh := ListHandler{}
	server := http.Server{
		Addr: "127.0.0.1:8081",
	}
	http.Handle("/index", &ih)
	http.Handle("/list", &lh)
	server.ListenAndServe()
}

  

server_3.go  使用处理器函数

package main

import (
	"fmt"
	"net/http"
)

func index(response http.ResponseWriter, request *http.Request) {
	fmt.Fprintf(response, "this is index page")
}

func list(response http.ResponseWriter, request *http.Request) {
	fmt.Fprintf(response, "this is list page")
}

func main() {
	server := http.Server{
		Addr: "127.0.0.1:8081",
	}
	http.HandleFunc("/index", index)
	http.HandleFunc("/list", list)
	server.ListenAndServe()
}

  

  注意,在绑定路由的时候,假设监听localhost:80,下面的case对于Handle和HandleFunc同样适用。

  前提:假设都只绑定了代码中的那些处理器。

case 1

http.HandleFunc("/index",index) 
访问localhost/index   调用的是index控制器。
访问localhost/index/   404
访问localhost/index/aaa  404

  

case 2

http.HandleFunc("/index/",index)

使用index控制器的情况: 访问localhost/index 访问localhost/index/ 访问localhost/index/aaa

  

case 3

http.HandleFunc("/index/",index)
http.HandleFunc("/index/list",list)

使用index控制器的情况:
1、访问localhost/index 
2、访问localhost/index/
3、访问localhost/index/aaa
4、访问localhost/index/aaa/
5、访问localhost/index/list/

使用list控制器的情况:
1、访问localhost/index/list

  

posted @ 2018-06-11 16:33  寻觅beyond  阅读(376)  评论(0)    收藏  举报
返回顶部