首先创建项目结构并编写处理函数,接着在主程序中注册路由,最后运行服务器;通过HomeHandler返回HTML页面,ApiHandler返回JSON数据,静态资源由FileServer提供,使用StripPrefix正确映射路径,最终实现一个包含页面渲染、API响应和静态文件服务的完整Web服务器。

想快速上手 Golang 写一个简单的 Web 服务器?不需要复杂框架,用 Go 自带的 net/http 包就能轻松实现。本文带你从零开始搭建一个基础但完整的 Web 服务项目,适合初学者实战练习。
项目目标
创建一个支持以下功能的简单 Web 服务器:
访问首页返回 HTML 页面 提供静态资源(如 CSS、JS、图片) 处理 API 请求,返回 JSON 数据 使用路由区分不同路径
初始化项目结构
先创建项目目录并组织基本结构:
myweb/├── main.go├── handlers/│ └── handlers.go├── static/│ ├── style.css│ └── logo.png└── templates/ └── index.html
这个结构清晰分离了逻辑代码、静态文件和页面模板,便于维护。
立即学习“go语言免费学习笔记(深入)”;
编写处理函数
在 handlers/handlers.go 中定义请求处理逻辑:
package handlersimport ( "encoding/json" "net/http" "html/template")// 首页处理器func HomeHandler(w http.ResponseWriter, r *http.Request) { if r.URL.Path != "/" { http.NotFound(w, r) return } tmpl, err := template.ParseFiles("../templates/index.html") if err != nil { http.Error(w, err.Error(), http.StatusInternalServerError) return } tmpl.Execute(w, nil)}// API 接口:返回 JSONfunc ApiHandler(w http.ResponseWriter, r *http.Request) { data := map[string]string{ "message": "Hello from Go!", "status": "success", } w.Header().Set("Content-Type", "application/json") json.NewEncoder(w).Encode(data)}
HomeHandler 渲染 HTML 页面,ApiHandler 返回结构化数据,两者职责分明。
主程序启动服务器
在 main.go 中注册路由并启动服务:
php 简明教程
PHP程序设计简明教程 目 录 序 . 4 第一章 PHP简介 …. 6 第一节 PHP简介 .. 6 1.Web程序工作原理 … 6 2.PHP简介 …. 9 第二节 PHP的开发环境的搭建 … 9 1.程序编写,软件开发工具软件的选用 .. 9 2.服务器软件的安装和配置 10 第三节 实验一 PHP开发环境的搭建 . 11 0.实验
412 查看详情
package mainimport ( "log" "net/http" "myweb/handlers")func main() { // 设置静态文件路由 fs := http.FileServer(http.Dir("./static/")) http.Handle("/static/", http.StripPrefix("/static/", fs)) // 设置页面和 API 路由 http.HandleFunc("/", handlers.HomeHandler) http.HandleFunc("/api", handlers.ApiHandler) log.Println("服务器运行在 http://localhost:8080") log.Fatal(http.ListenAndServe(":8080", nil))}
使用 http.Handle 提供静态资源,http.HandleFunc 注册动态路由。注意 StripPrefix 的作用是去掉 URL 前缀,正确映射文件路径。
准备前端资源
在 templates/index.html 中写个简单页面:
Go Web 服务 欢迎使用 Golang Web 服务
这是首页内容。
static/style.css 可以加点样式让页面更美观:
body { font-family: Arial, sans-serif; text-align: center; margin-top: 50px;}h1 { color: #007bff;}
运行与测试
确保在项目根目录执行:
go mod init mywebgo run main.go
打开浏览器访问:
http://localhost:8080 – 查看主页 http://localhost:8080/static/style.css – 检查静态文件 http://localhost:8080/api – 获取 JSON 响应
如果看到页面加载成功、样式生效、API 返回 JSON,说明一切正常。
基本上就这些。这个小项目涵盖了 Web 服务的核心要素:路由、静态文件、动态响应和结构组织。你可以在此基础上添加表单处理、中间件、数据库连接等功能。不复杂但容易忽略细节,比如路径拼接和 Header 设置,动手试试就知道了。
以上就是Golang Web 简单 Web 服务器项目实战教程的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1158738.html
微信扫一扫
支付宝扫一扫