review 4.1

This commit is contained in:
hongruiqi
2012-09-06 17:19:49 +08:00
parent ea6305c5ba
commit e10aba6869
2 changed files with 5 additions and 5 deletions

4
3.4.md
View File

@@ -39,7 +39,7 @@ Go在等待客户端请求里面是这样写的
ServeHTTP(ResponseWriter, *Request) // 路由实现器
}
handler是一个接口但是前一小节中的`sayhelloName`函数并没有实现ServeHTTP这个接口为什么能添加呢原来在http包里面还定义了一个类型`HandlerFunc`,我们定义的函数`sayhelloName`就是这个handlerFunc调用之后的结果这个类型默认就实现了ServeHTTP这个接口即我们调用了HandlerFunc(f),类似强制类型转换f成为handlerFunc类型这样f就拥有了ServHTTP方法。
handler是一个接口但是前一小节中的`sayhelloName`函数并没有实现ServeHTTP这个接口为什么能添加呢原来在http包里面还定义了一个类型`HandlerFunc`,我们定义的函数`sayhelloName`就是这个HandlerFunc调用之后的结果这个类型默认就实现了ServeHTTP这个接口即我们调用了HandlerFunc(f),类似强制类型转换f成为handlerFunc类型这样f就拥有了ServHTTP方法。
type HandlerFunc func(ResponseWriter, *Request)
@@ -157,4 +157,4 @@ handler是一个接口但是前一小节中的`sayhelloName`函数并没有
* 下一节: [小节](<3.5.md>)
## LastModified
* $Id$
* $Id$

6
4.1.md
View File

@@ -77,7 +77,7 @@ login函数中我们根据`r.Method`来判断是显示登录界面还是处理
`r.Form`里面包含了所有请求的URL中query-string、POST的数据、PUT的数据所有当你在URL的query-string字段和POST冲突时会保存成一个slice里面存储了多个值Go官方文档中说在接下来的版本里面将会把POST、GET这些数据分离开来。
现在我们修改一下login.gtpl里面form的action值`http://127.0.0.1:9090/login`修改为`http://127.0.0.1:9090/login?username=astaxie`再次测试服务器的输出username是不是一个slice。服务器端的输出如下:
现在我们修改一下login.gtpl里面form的action值`http://127.0.0.1:9090/login`修改为`http://127.0.0.1:9090/login?username=astaxie`再次测试服务器的输出username是不是一个slice。s服务器端的输出如下:
![](images/4.1.slice.png?raw=true)
@@ -93,7 +93,7 @@ login函数中我们根据`r.Method`来判断是显示登录界面还是处理
fmt.Println(v.Get("friend"))
fmt.Println(v["friend"])
Tips: Request请求也提供了FormValue()函数来获取用户提交的参数。如r.Form["username"]也可写成r.FormValue("username")。调用r.FormValue时会自动调用r.ParseForm所以不必提前调用。r.FormValue只会返回同名参数中的第一个若参数不存在则返回空字符串。
## links
* [目录](<preface.md>)
@@ -101,4 +101,4 @@ login函数中我们根据`r.Method`来判断是显示登录界面还是处理
* 下一节: [验证表单的输入](<4.2.md>)
## LastModified
* $Id$
* $Id$