Web应用简介
日常使用的各个应用程序,要么是Web应用,要么是移动App这类Web应用的变种。无论哪一种编程语言,只要它能够开发出与人类交互的软件,它就必然会支持Web应用开发。对一门崭新的编程语言来说,它的开发者首先要做的一件事,就是构建与互联网(Internet)和万维网(World Wide Web)交互的库(library)和框架
go是一门新的语言,它是为了让人们能够简单而高效地编写后端系统而创建的。这门语言拥有众多的先进特性,如函数式编程方面的特性、内置了对并发编程的支持、现代化的包管理系统、垃圾收集特性、以及一些包罗万象威力强大的标准库,而且如果需要还可以引入第三方开源库
Web应用的工作原理
Hello World
- type HandlerFunc
type HandlerFunc func(ResponseWriter, *Request)
HandlerFunc type是一个适配器,通过类型转换让我们可以将普通的函数作为HTTP处理器使用。如果f是一个具有适当签名的函数,HandlerFunc(f)通过调用f实现了Handler接口
- func (*ServeMux) HandleFunc
func (mux *ServeMux) HandleFunc(pattern string, handler func(ResponseWriter, *Request))
HandleFunc注册一个处理器函数handler和对应的模式pattern
- func ListenAndServe
func ListenAndServe(addr string, handler Handler) error
ListenAndServe监听TCP地址addr,并且会使用handler参数调用Serve函数处理接收到的连接。handler参数一般会设为nil,此时会使用DefaultServeMux
go语言创建一个简单地web应用
- 在GOPATH/src/目录下创建一个webapp目录,并在该目录下创建一个main.go
package main
import (
"fmt"
"net/http"
)
//创建处理器函数
func handler(w http.ResponseWriter, r *http.Request) {
fmt.Fprintln(w, "Hello World!", r.URL.Path)
}
func main() {
http.HandleFunc("/", handler)
//创建路由
http.ListenAndServe(":8080", nil)
}
方式1(建议使用)
go build main.go
生成 main.exe 二进制文件
方式2
D:\goproject\src
go install webapp
在$GOPATH/bin目录下生成 webapp.exe 二进制文件
- 浏览器访问
http://localhost:8080/
显示
Hello World! /
http://localhost:8080/hello
显示
Hello World! /hello