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. Oracle RAC单节点启停

    由于单节点操作系统需要重启维护,版本为12C 确认集群的db_unique_name,本初的db_unique_name为orcl SQL> show parameter name SQL> ...

  2. CSS滚动条样式修改::-webkit-scrollbar

    修改滚动条样式通过伪元素::-webkit-scrollbar:::-webkit-scrollbar - CSS(层叠样式表) | MDN (mozilla.org) :-webkit-scroll ...

  3. 【vite+pinia】

    vite 轻量快速热重载,开发环境中不需要打包操作,可以快速冷启动 按需编译,不需要等待整个应用编译完成 pinia 支持vue2和vue3,是vue专属的状态管理库,允许跨组件或者页面 共享状态 与 ...

  4. 2022-05-10内部群每日三题-清辉PMP

    1.项目经理管理的一个项目不断面临挑战.发起人经常无法做出决定,存在大量预算超支,团队成员不断从项目离职,高级管理层没有提供实际的支持.项目经理应该怎么做? A.与团队一起开会,以确定造成这些问题的原 ...

  5. RabbitMQ的使用介绍

    一.RabbitMQ是什么 RabbitMQ是一种常用的消息中间件,是基于AMQP协议,采用erlang语言开发的面向消息服务的中间件,是一个独立的系统应用程序,可以管理服务器计算资源和网络通信.一般 ...

  6. A调用B方法,@Transactional事务问题

    总结:方法A调用方法B:1.如果只有A加@Transactional注解:则AB在同一事务中,任意异常都回滚:2.如果只有B加@Transactional注解:AB方法为同一类,事务失效任意异常都不回 ...

  7. Java控制流程(复习)

    流程控制语句 流程控制语句包括:顺序结构,分支结构,循环结构 分支结构 if语句: 第一种: if(关系表达式){ 语句体 } else{ 语句体2 } 第二种: if (){ } else if ( ...

  8. Gitbook部署

    title: Gitbook部署 # 标题 date: 2020-06-14 08:00:00 借助Gitbook,写自己的第一本电子书 Gitbook部署 一.电脑环境 Git 环境,我的电脑上已经 ...

  9. Python的入门学习Day 25~27——form”夜曲编程“

    Day 27 time: 2021.8.24. ​ 时流轻快,转眼间就载着我到达了学习Python的第27个日子.一开始,我还以为本次学习的全程对我而言小菜一碟--但,当我亲自走过以后,发现这些进步, ...

  10. 14.java 中缀表达式转后缀表达式

    思路如下: 1.初始化两个栈,运算符栈和中间结果栈 2.从左至右扫描 3.遇到数时直接压入s2 4.遇到运算符时,比较其与s1栈顶的优先级,有如下几种情况: 1)s1为空或栈顶为"(&quo ...