From e10aba6869a831888ee869e51c386bf4766d0be1 Mon Sep 17 00:00:00 2001 From: hongruiqi Date: Thu, 6 Sep 2012 17:19:49 +0800 Subject: [PATCH 1/2] review 4.1 --- 3.4.md | 4 ++-- 4.1.md | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/3.4.md b/3.4.md index defde378..1946483e 100644 --- a/3.4.md +++ b/3.4.md @@ -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$ \ No newline at end of file + * $Id$ diff --git a/4.1.md b/4.1.md index 2ab7b5f1..1742a634 100644 --- a/4.1.md +++ b/4.1.md @@ -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 * [目录]() @@ -101,4 +101,4 @@ login函数中我们根据`r.Method`来判断是显示登录界面还是处理 * 下一节: [验证表单的输入](<4.2.md>) ## LastModified - * $Id$ \ No newline at end of file + * $Id$ From 3410f54d8d11b44620b291c5100724f8f8298ae4 Mon Sep 17 00:00:00 2001 From: hongruiqi Date: Thu, 6 Sep 2012 17:22:29 +0800 Subject: [PATCH 2/2] fix typo --- 4.1.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/4.1.md b/4.1.md index 1742a634..5a0efcd6 100644 --- a/4.1.md +++ b/4.1.md @@ -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。s服务器端的输出如下: +现在我们修改一下login.gtpl里面form的action值`http://127.0.0.1:9090/login`修改为`http://127.0.0.1:9090/login?username=astaxie`,再次测试,服务器的输出username是不是一个slice。服务器端的输出如下: ![](images/4.1.slice.png?raw=true)