package main

import (
"encoding/json"
"fmt"
"log"
"net/http"
)
//<link rel="stylesheet" href="media/index.css">
func indexHandler(w http.ResponseWriter, r *http.Request) {
http.ServeFile(w,r,"index.html") }
//http://127.0.0.1:8000/submit
func submitHandler(w http.ResponseWriter, r *http.Request) {
//获取post json请求转换为map
err := r.ParseForm()
if err != nil {
log.Fatal("parse form error ", err)
}
// 初始化请求变量结构
formData := make(map[string]interface{})
// 调用json包的解析,解析请求body
json.NewDecoder(r.Body).Decode(&formData) //log.Println("req form: ", formData)
for key, value := range formData {
log.Println("key:", key, " => value :", value)
}
fmt.Fprintf(w, "submitHandler") }
func main() {
http.HandleFunc("/", indexHandler)
http.HandleFunc("/submit", submitHandler)
http.Handle("/media/",http.StripPrefix("/media/",http.FileServer(http.Dir("./media"))))
println("web server started sucess")
http.ListenAndServe(":8000", nil) }

  


 //media/index.css
body {
background-color:#d0e4fe;
}
h1 {
color:orange;
text-align:center;
}
p {
font-family:"Times New Roman";
font-size:20px;
}

  

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>菜鸟教程(runoob.com)</title>
<link rel="stylesheet" href="media/index.css">
</head> <body> <h1>CSS 实例!</h1>
<p>这是一个段落。</p> </body>
</html>

  

package main

import (
"encoding/json"
"fmt"
"log"
"net/http"
"text/template"
)
//<link rel="stylesheet" href="media/index.css">
func indexHandler(w http.ResponseWriter, r *http.Request) {
// 加载html模板
t, _ := template.ParseFiles("index.html")
// 准备模板数据
// data := map[string]interface{}{"userName": "irene", "count": 123}
// 渲染模板数据并相应页面
t.Execute(w, nil)
//http.ServeFile(w,r,"index.html") }
//http://127.0.0.1:8000/submit
func submitHandler(w http.ResponseWriter, r *http.Request) {
//获取post json请求转换为map
err := r.ParseForm()
if err != nil {
log.Fatal("parse form error ", err)
}
// 初始化请求变量结构
formData := make(map[string]interface{})
// 调用json包的解析,解析请求body
json.NewDecoder(r.Body).Decode(&formData) //log.Println("req form: ", formData)
for key, value := range formData {
log.Println("key:", key, " => value :", value)
}
fmt.Fprintf(w, "submitHandler") }
func main() {
http.HandleFunc("/", indexHandler)
http.HandleFunc("/submit", submitHandler)
http.Handle("/media/",http.StripPrefix("/media/",http.FileServer(http.Dir("./media"))))
println("web server started sucess")
http.ListenAndServe(":8000", nil) }

  

golang_nethttp的更多相关文章

随机推荐

  1. Vue基础 · 父子组件之间的交互(5)

    1.父子组件交互 <body> <div id="app"> <!--子组件接收到"change"方法,绑定父组件的方法--> ...

  2. WSL2安装nvm并配置npm镜像源

    1.下载安装脚本并执行 curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash 2.关闭命令行后 ...

  3. antd切换主题

    { "name": "my-react-app", "version": "0.1.0", "private& ...

  4. 虚拟机中 Linux 提示“设备上没有空间”,扩容磁盘

    查看一下磁盘空间使用情况 #df -hl 已使用100% ls /dev/sd*  先查看一下现有sd系统硬盘 关机,存个快照(存不存无所谓),然后在虚拟机设置里添加扩展磁盘容量,选择SCSI类型 重 ...

  5. Mac OS X 下安装Tableau Desktop Pro for Mac 10.2.0

    ​ 安装步骤 1.断网安装tableau 2.双击Tableau Desktop.pkg ​编辑 3.安装后到应用程序里把tableau这个单独文件从tableau文件夹里直接放到应用程序根目录 4. ...

  6. Mybatis 中传入List实现 批量插入、批量更新、批量删除

    1. 批量插入: Mapper层: int insertList(List<UsersModel> list); 对应的mapper.xml: <!--批量插入信息--> &l ...

  7. windows文件夹被占用的解除办法

    1.第一步,按下快捷键组合 ctrl alt del,打开任务管理器窗口,点击上方菜单栏中的性能选项. 2. 第二步,在性能页面下找到打开资源监视器按钮并点击. 3. 第三步,进入资源监视器页面,点击 ...

  8. Chrome禁用开发者工具

    在一次工作中,所做的项目要求页面中不能右击,不能打开F12.一般来说可以禁用F12的按键,但是可以通过开发者工具进入.经过个人实验,以下方法适用于谷歌浏览器.火狐浏览器,以及使用谷歌内核的浏览器(如Q ...

  9. webpack5 与webpack4 之间差别

    1.terserPlugin webpack4 上需要下载安装 terser-webpack-plugin 插件,并且需要配置,webpack5 上生产模式下默认开启压缩,开发环境也可以按如下配置 / ...

  10. Java编写1到100质数之和

    int sum = 0; int k = 2; // 找出1-100的质数之和 for (int i = 2; i <= 100; i++) { // i值为2,质数为除去1和自身整除的数 j初 ...