Go基础学习记录 - 编写Web应用程序 - 使用net/http包来构建Web应用

简介: 转载的地址Go基础学习记录 - 编写Web应用程序 - 使用net/http包来构建Web应用使用net/http来构建Web应用要使用net/http包,必须导入:import (    "fmt"    "io/ioutil"    "net/http" // 注意这里)让我们创建一个允许用户查看Wiki页面的处理程序viewHandler。

转载的地址

Go基础学习记录 - 编写Web应用程序 - 使用net/http包来构建Web应用

使用net/http来构建Web应用

要使用net/http包,必须导入:

import (
    "fmt"
    "io/ioutil"
    "net/http" // 注意这里
)

让我们创建一个允许用户查看Wiki页面的处理程序viewHandler。它将处理前缀为"/view/"的URL。

func viewHandler(w http.ResponseWriter, r *http.Request) {
    title := r.URL.Path[len("/view/"):]
    p, _ := loadPage(title)
    fmt.Fprintf(w, "<h1>%s</h1><div>%s</div>", p.Title, p.Body)
}

再次注意,使用`_`来忽略loadPage的错误返回值。
这样做是为了简单起见,通常被认为是不好的做法。
后面会讨论这个问题。
首先,此函数从r.URL.Path中提取页面标题,r.URL.Path是请求URL的路径组件。
使用[len("/view/"):]重新切片路径以删除请求路径的前导"/view/"组件。
这是因为路径总是以"/view/"开头,这不是页面标题的一部分。
然后,该函数加载页面数据,使用一串简单的HTML格式化页面,并将其写入w,即http.ResponseWriter。
要使用此处理程序,我们重写main函数以使用viewHandler初始化http以处理path /view/下的任何请求。

func main() {
    http.HandleFunc("/view/", viewHandler)
    log.Fatal(http.ListenAndServe(":8090", nil))
}

我们创建一些页面数据(作为test.txt),编译我们的代码,并尝试提供维基页面。
在编辑器中打开test.txt文件,并在其中保存字符串"I Like Gowhich"(不带引号)。

$ go build wiki.go
$ ./wiki

运行此Web服务器后,访问http://localhost:8090/view/test应显示一个标题为"test"的页面,其中包含"I Like Gowhich"字样。
但是访问其他页面的时候,则程序会报错。这个问题我们后面慢慢解决

目录
相关文章
|
4月前
|
存储 监控 安全
如何在Python Web开发中确保应用的安全性?
如何在Python Web开发中确保应用的安全性?
|
18天前
|
中间件 关系型数据库 数据库
docker快速部署OS web中间件 数据库 编程应用
通过Docker,可以轻松地部署操作系统、Web中间件、数据库和编程应用。本文详细介绍了使用Docker部署这些组件的基本步骤和命令,展示了如何通过Docker Compose编排多容器应用。希望本文能帮助开发者更高效地使用Docker进行应用部署和管理。
49 19
|
4月前
|
前端开发 JavaScript
探索现代Web应用的微前端架构
【10月更文挑战第40天】在数字时代的浪潮中,Web应用的发展日益复杂多变。微前端架构作为一种新兴的设计理念,正逐步改变着传统的单一前端开发模式。本文将深入探讨微前端的核心概念、实现原理及其在实际项目中的应用,同时通过一个简单的代码示例,揭示如何将一个庞大的前端工程拆分成小而美的模块,进而提升项目的可维护性、可扩展性和开发效率。
|
1月前
|
监控 Linux PHP
【02】客户端服务端C语言-go语言-web端PHP语言整合内容发布-优雅草网络设备监控系统-2月12日优雅草简化Centos stream8安装zabbix7教程-本搭建教程非docker搭建教程-优雅草solution
【02】客户端服务端C语言-go语言-web端PHP语言整合内容发布-优雅草网络设备监控系统-2月12日优雅草简化Centos stream8安装zabbix7教程-本搭建教程非docker搭建教程-优雅草solution
81 20
|
2月前
|
Web App开发 编解码 vr&ar
使用Web浏览器访问UE应用的最佳实践
在3D/XR应用开发中,尤其是基于UE(虚幻引擎)开发的高精度场景,传统终端因硬件局限难以流畅运行高帧率、复杂效果的三维应用。实时云渲染技术,将渲染任务转移至云端服务器,降低终端硬件要求,确保用户获得流畅体验。具备弹性扩展、优化传输协议、跨平台支持和安全性等优势,适用于多种终端和场景,特别集成像素流送技术,帮助UE开发者实现低代码上云操作,简化部署流程,保留UE引擎的强大开发能力,确保画面精美且终端轻量化。
129 17
使用Web浏览器访问UE应用的最佳实践
|
4月前
|
监控 安全 测试技术
如何在实际项目中应用Python Web开发的安全测试知识?
如何在实际项目中应用Python Web开发的安全测试知识?
123 61
|
1月前
|
监控 关系型数据库 MySQL
【01】客户端服务端C语言-go语言-web端PHP语言整合内容发布-优雅草网络设备监控系统-硬件设备实时监控系统运营版发布-本产品基于企业级开源项目Zabbix深度二开-分步骤实现预计10篇合集-自营版
【01】客户端服务端C语言-go语言-web端PHP语言整合内容发布-优雅草网络设备监控系统-硬件设备实时监控系统运营版发布-本产品基于企业级开源项目Zabbix深度二开-分步骤实现预计10篇合集-自营版
34 0
|
3月前
|
弹性计算 Java 关系型数据库
Web应用上云经典架构实践教学
Web应用上云经典架构实践教学
Web应用上云经典架构实践教学
|
3月前
|
Kubernetes 安全 Devops
有效抵御网络应用及API威胁,聊聊F5 BIG-IP Next Web应用防火墙
有效抵御网络应用及API威胁,聊聊F5 BIG-IP Next Web应用防火墙
110 10
有效抵御网络应用及API威胁,聊聊F5 BIG-IP Next Web应用防火墙
|
3月前
|
弹性计算 Java 数据库
Web应用上云经典架构实战
本课程详细介绍了Web应用上云的经典架构实战,涵盖前期准备、配置ALB、创建服务器组和监听、验证ECS公网能力、环境配置(JDK、Maven、Node、Git)、下载并运行若依框架、操作第二台ECS以及验证高可用性。通过具体步骤和命令,帮助学员快速掌握云上部署的全流程。