栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

go搭建服务器基础

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

go搭建服务器基础

goweb应用工作原理(用于个人学习)

​ 客户端发送请求给多路复用器,多路复用器根据请求------->处理器处理器-------->模型------->数据库

数据库找到相应的数据反馈给模型,模型将数据封装发给处理器 ,处理器给模板引擎然后生成模板

go里面有相应的http的包直接调用即可,这一点比java相对方便很多,下面有几种方式可以搭建服务器

hanglerFunc方式

package main    //声明包
 
import (      //导入包    
	"fmt"     //打印使用
	"net/http"  //  http服务使用
)
//处理器
func hangler(w http.ResponseWriter, r *http.Request) {     //名称可以随意命名   函数的参数不可随意命名
	fmt.Fprintln(w, "hello goweb", r.URL.Path)   //写到前台页面上去

}

func main() {
	http.HandleFunc("/", hangler)     //更具web原理  添加路径 添加处理器   将路径和处理器产生关联
	http.ListenAndServe(":8080", nil)  // 端口号   

}

Mux多路复用方式

package main

import (
	"fmt"
	"net/http"
)

func hangler(w http.ResponseWriter, r *http.Request) {
	fmt.Fprintln(w, "hello goweb", r.URL.Path)

}

func main() {
	mux := http.NewServeMux()  //多路服务器处理请求
	http.HandleFunc("/", hangler)
	http.ListenAndServe(":8080", mux)
}

handle

package main  //声明包

import (
	"fmt"     // 打印
	"net/http"// http
	"time"
)

type Myhangdler struct{}  //定义结构体

func (m *Myhangdler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
	fmt.Fprintln(w, "通过自己创建的处理器处理请求自定义hangler")
}

func main() {
	myhangdler := Myhangdler{}    //实例化接工体
	server := http.Server{
		Addr:        ":8080",   //声明端口
		Handler:     &myhangdler,  //声明处理器
		ReadTimeout: 2 * time.Second,  //读取时间设置
	}
	server.ListenAndServe()   // 应用到监听中去

	//http.Handle("/myhangler", &myhangdler)
	//http.ListenAndServe(":8080", nil)

}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/995064.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号