Web--Go语言学习笔记
Posted 旧时星空
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Web--Go语言学习笔记相关的知识,希望对你有一定的参考价值。
Web–Go语言学习笔记
HTTP
Http:无状态协议,是互联网中使用Http实现计算机和计算机之间的请求与响应
- Http使用纯文本方式发送和接受协议数据,不需要专门工具进行分析就可以知道协议中数据
- 组成
- 请求头
- 请求行
- 请求体
- 响应头
- 响应体
模型
- B/S结构,客户端/服务器端,客户端运行在浏览器中
- C/S结构,客户端/服务器端,客户端是独立的软件
func HandFunc(pattern string,handler func(ResponseWriter,*Rwquest)){
//调用函数对应访问时输入的地址
}
func ListenAndServe(addr string,handler Handler)error{
Server:=&Server{Addr:addr,Handler:handler}
reutrn server.ListenAndServe()
}//监听访问地址
func welcome(res http.ResponseWriter,req *http.Request){
res.Header().Set("Content-Type","text/html;charset=utf-8")//实现go中的html代码可以被浏览器解析
fmt.Fprintln(res,"Hello World GoLang Web")
}
func main(){
http.HandleFunc("/",welcome)//浏览器打印Hello World GoLang Web
http.ListenAndServe("localhost:8090",nil)
fmt.Println("服务已启动")
}
单处理器-处理所有的地址的响应
type MyHander struct{
}
func (m *MyHander) ServeHTTP(w http.ResponseWriter,r *http.Request){
w.Write([]byte("返回的数据"))
}
func main(){
h:=MyHander{}
server:=http.Server{Addr:"localhost:8091",Handler: &h}
server.ListenAndServe()
}
多处理器-单一地址对应单一处理器
import "net/http"
type MyHander struct{
}
type MyHandle struct{
}
func (m *MyHander) ServeHTTP(w http.ResponseWriter,r *http.Request){
w.Write([]byte("Hander返回的数据"))
}
func (m *MyHandle) ServeHTTP(w http.ResponseWriter,r *http.Request){
w.Write([]byte("Handle返回的数据"))
}
func main(){
h:=MyHander{}
h1:=MyHandle{}
server:=http.Server{Addr:"localhost:8091"}
http.Handle("/first",&h)
http.Handle("/second",&h1)
server.ListenAndServe()
}
多处理函数
func first(w http.ResponseWriter, r*http.Request) {
fmt.Println(w, "多函数first")
}
func second(w http.ResponseWriter,r*http.Request){
fmt.Println("多函数second")
}
func main(){
sever:=http.Server{Addr:"localhost:8090"}
http.HandleFunc("/first",first)
http.HandleFunc("/second",second)
sever.ListenAndServe()
}
以上是关于Web--Go语言学习笔记的主要内容,如果未能解决你的问题,请参考以下文章
[原创]java WEB学习笔记61:Struts2学习之路--通用标签 property,uri,param,set,push,if-else,itertor,sort,date,a标签等(代码片段