fixed again and again= =||

This commit is contained in:
Oling Cat
2012-11-01 16:43:02 +08:00
parent ec5e4f75e1
commit d641d4f5ff
2 changed files with 18 additions and 18 deletions

34
3.4.md
View File

@@ -111,45 +111,45 @@ handler是一个接口但是前一小节中的`sayhelloName`函数并没有
按顺序做了几件事:
1. 调用了DefaultServerMux的HandleFunc
1. 调用了DefaultServerMux的HandleFunc
2. 调用了DefaultServerMux的Handle
2. 调用了DefaultServerMux的Handle
3. 往DefaultServeMux的map[string]muxEntry中增加对应的handler和路由规则
3. 往DefaultServeMux的map[string]muxEntry中增加对应的handler和路由规则
- 其次调用http.ListenAndServe(":9090", nil)
按顺序做了几件事情:
1. 实例化Server
1. 实例化Server
2. 调用Server的ListenAndServe()
2. 调用Server的ListenAndServe()
3. 调用net.Listen("tcp", addr)监听端口
3. 调用net.Listen("tcp", addr)监听端口
4. 启动一个for循环在循环体中Accept请求
4. 启动一个for循环在循环体中Accept请求
5. 对每个请求实例化一个Conn并且开启一个goroutine为这个请求进行服务go c.serve()
5. 对每个请求实例化一个Conn并且开启一个goroutine为这个请求进行服务go c.serve()
6. 读取每个请求的内容w, err := c.readRequest()
6. 读取每个请求的内容w, err := c.readRequest()
7. 判断handler是否为空如果没有设置handler这个例子就没有设置handlerhandler就设置为DefaultServeMux
7. 判断handler是否为空如果没有设置handler这个例子就没有设置handlerhandler就设置为DefaultServeMux
8. 调用handler的ServeHttp
8. 调用handler的ServeHttp
9. 在这个例子中下面就进入到DefaultServerMux.ServeHttp
9. 在这个例子中下面就进入到DefaultServerMux.ServeHttp
10. 根据request选择handler并且进入到这个handler的ServeHTTP
10. 根据request选择handler并且进入到这个handler的ServeHTTP
mux.handler(r).ServeHTTP(w, r)
11 选择handler
11 选择handler
A. 判断是否有路由能满足这个request循环遍历ServerMux的muxEntry
A. 判断是否有路由能满足这个request循环遍历ServerMux的muxEntry
B. 如果有路由满足调用这个路由handler的ServeHttp
B. 如果有路由满足调用这个路由handler的ServeHttp
C. 如果没有路由满足调用NotFoundHandler的ServeHttp
C. 如果没有路由满足调用NotFoundHandler的ServeHttp
## links
* [目录](<preface.md>)

2
5.1.md
View File

@@ -1,4 +1,4 @@
h# 5.1 database/sql接口
# 5.1 database/sql接口
Go和PHP不同的地方是他没有官方提供数据库驱动而是为开发数据库驱动定义了一些标准接口第三方用户可以根据定义的接口来开发相应的数据库驱动这样做有一个好处我们按照标准接口开发的代码 在需要迁移数据库时不需要任何修改。那么Go都定义了那些标准接口呢让我们来详细的分析一下
## sql.Register