go http的三种实现---2

package main

import (
	"io"
	"log"
	"net/http"
	"os"
)

func main() {
	//声明一个新的handler
	mux := http.NewServeMux()
	//注册路由
	mux.Handle("/", &handler{})
	//注册路由
	mux.HandleFunc("/index", index)

	//获取当前文件路径,进行静态文件输出
	wd, err := os.Getwd()
	if err != nil {
		log.Fatal(err)
	}
	mux.Handle("/static/", http.StripPrefix("/static/", http.FileServer(http.Dir(wd))))

	//监听端口,并输出mux
	err = http.ListenAndServe(":8080", mux)
	if err != nil {
		log.Fatal(err)
	}
}

type handler struct{}

//必须实现的一个方法
func (*handler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
	io.WriteString(w, "URL:"+r.URL.String())
}
func index(w http.ResponseWriter, r *http.Request) {
	io.WriteString(w, "你好!")
}
posted @   郑闯  阅读(379)  评论(0编辑  收藏  举报
(评论功能已被禁用)
编辑推荐:
· 从问题排查到源码分析:ActiveMQ消费端频繁日志刷屏的秘密
· 一次Java后端服务间歇性响应慢的问题排查记录
· dotnet 源代码生成器分析器入门
· ASP.NET Core 模型验证消息的本地化新姿势
· 对象命名为何需要避免'-er'和'-or'后缀
阅读排行:
· “你见过凌晨四点的洛杉矶吗?”--《我们为什么要睡觉》
· 编程神器Trae:当我用上后,才知道自己的创造力被低估了多少
· C# 从零开始使用Layui.Wpf库开发WPF客户端
· 开发的设计和重构,为开发效率服务
· 从零开始开发一个 MCP Server!
点击右上角即可分享
微信分享提示