Go web表单
package main
import (
"fmt"
"html/template"
"log"
"net/http"
"strings"
)
func sayhelloName(w http.ResponseWriter,r *http.Request){ //访问主体回应
r.ParseForm() //解析url传递的参数,对于POST则解析响应包的主体
//如果没有调用ParseForm方法则无法获取表单的数据.
fmt.Println(r.Form)//输出url的参数,到服务器上
fmt.Println(r.URL.Path)//输出url的路径
fmt.Println(r.URL.Scheme)//输出方案
for k,v :=range r.Form{
fmt.Println(k)
fmt.Println(strings.Join(v,""))//加入字符串输出看效果
}
fmt.Fprintf(w,"hello world")//回应内容
}
func login(w http.ResponseWriter,r *http.Request){
fmt.Println(r.Method)//输出客户端请求的方法
if r.Method=="GET"{
t,_:=template.ParseFiles("login.html") //解析html代码,就是那个表单
log.Println(t.Execute(w,nil))
}else{
r.ParseForm()
fmt.Println(r.Form["username"]) //字典获取username的值
fmt.Println(r.Form["password"])
}
}
func main(){
http.HandleFunc("/",sayhelloName) //设置访问的路由
http.HandleFunc("/login",login)
err:=http.ListenAndServe(":9999",nil)//设置监听端口
if err !=nil{
log.Fatal("listenandserver",err)//报错则输出错误并退出
}
}
<html> <head> <title></title> </head> <body> <form action="/login" method="post"> 用户名:<input type="text" name="username"> 密码:<input type="password" name="password"> <input type="submit" value="登录"> </form> </body> </html>

浙公网安备 33010602011771号