之前没了解过go,两年前听别人分享据说是很牛逼,研究了两天,刚入门已被折服,展示一下用Go写一个web有多简单。
1.Go语言里提供了很完善的net/http包,通过http包可以很方便的编写一个可运行的web服务。非常便捷的设置路由url、静态文件等
2.Go内置的天然支持高并发特性,让该web无需进行额外并发控制。内部使用goroutines来处理Conn的读写事件, 这样每个请求都能保持独立,相互不会阻塞,可以高效的响应网络事件,提高高并发和高性能。
一、用Go编写第一个web工程
package main
import (
"fmt"
"log"
"net/http"
_ "strings"
)
func sayHelloName(w http.ResponseWriter, r *http.Request) {
r.ParseForm() //解析参数
fmt.Println("form表单:",r.Form)
fmt.Println("url", r.URL.Path)
fmt.Println("scheme", r.URL.Scheme)
fmt.Println(r.Form["url_long"])
fmt.Println("表单入参打印:")
for k, v := range r.Form {
fmt.Println("key", k)
fmt.Println("val", v)
}
fmt.Fprintf(w, "Hello This is Simple web.")
}
func main() {
http.HandleFunc("/", sayHelloName) //设置路由
err := http.ListenAndServe(":9091", nil) //设置监听端口
if err != nil {
log.Fatal("ListenAndServe", err)
}
}
运行后,浏览器访问