服务计算Homework07
项目地址
文件说明
- main.go为启动程序
- server/server.go实现创建服务器和router
- handle/handlers.go主要实现提交表单输出表格相应的handle
- assets/testjs.html为支持简单js访问对应的展示界面
- assets/testjs.js为支持简单js访问对应的js
- assets/login.html为提交表单对应的展示界面
- templates/sheet.html为输出表格对应的页面
使用说明
- 下载项目后直接输入命令
go run "hw07\main.go"
即可启动服务器,启动服务器后访问对应网址即可查看对应结果- 访问
localhost:2125
到达hw/07
目录- 访问
localhost:2125/static/
查看静态文件服务
结果,点击文件即可查看- 访问
localhost:2125/assets/testjs.html
查看简单js访问
结果- 访问
localhost:2125/login
查看提交表单,并输出一个表格
结果
课程任务
开发简单 web 服务程序 cloudgo,了解 web 服务器工作原理。
1. 任务目标
- 熟悉 go 服务器工作原理
- 基于现有 web 库,编写一个简单 web 应用类似 cloudgo。
- 使用 curl 工具访问 web 程序
- 对 web 执行压力测试
2. 基本要求
- 编程 web 服务程序 类似 cloudgo 应用
- 支持静态文件服务
- 支持简单 js 访问
- 提交表单,并输出一个表格(必须使用模板)
- 使用 curl 测试,将测试结果写入 README.md
- 使用 ab 测试,将测试结果写入 README.md。并解释重要参数
实现过程
先下载所需要用到的包
- go get github.com/unrolled/render
- go get github.com/codegangsta/negroni
- go get github.com/gorilla/mux
-
main.go实现监听端口并打开服务器
func main() { port := os.Getenv("PORT") // 默认port为2125 if len(port) == 0 { port = "2125" } // 解析port currentPort := pflag.StringP("port", "p", "2125", "Port for http listening") pflag.Parse() if len(*currentPort) != 0 { port = *currentPort } // 启动服务器 m := server.NewServer() m.Run(":" + port) }
-
server.go实现了服务器和router的创建
func NewServer() *negroni.Negroni { router := mux.NewRouter() router.PathPrefix("/static/").Handler(http.StripPrefix("/static/", http.FileServer(http.Dir("d:/goworks/src/hw07/assets/")))) router.HandleFunc("/json", handle.JsonHandler) router.HandleFunc("/login", handle.LoginHandler) router.PathPrefix("/").Handler(http.StripPrefix("/", http.FileServer(http.Dir("d:/goworks/src/hw07/"