热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

goweb学习,学习到表单处理表单的输入的时胡,和书上写的一样,但是运行却报错

goweb学习,学习到表单-处理表单的输入的时胡,和书上写的一样,但是运行却报错.下面是代码和报错信息。

go web 学习,学习到表单-处理表单的输入的时胡,和书上写的一样,但是运行却报错.
下面是代码和报错信息。



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
package main



import (

    "fmt"

    "html/template"

    "log"

    "net/http"

    "strings"

)



func sayHelloName(w http.ResponseWriter, r *http.Request){

    r.ParseForm()

    fmt.Println(r.Form)

    fmt.Println("path", r.URL.Path)

    fmt.Println("scheme", r.URL.Scheme)

    fmt.Println(r.Form["url_long"])

    for k,v := range r.Form {

        fmt.Println("key: ", k)

        fmt.Println("val: ", strings.Join(v, ""))

    }

    fmt.Fprintf(w, "hello astaxie!")

}



func login(w http.ResponseWriter, r *http.Request) {

    fmt.Println("method:", r.Method) //获取请求的方法

    if r.Method == "GET" {

        t, _ := template.ParseFiles("login.gtpl")

        t.Execute(w, nil)

    } else {

        //请求的是登陆数据,那么执行登陆的逻辑判断

        fmt.Println("username:", r.Form["username"])

        fmt.Println("password:", r.Form["password"])

    }

}



func main() {

    http.HandleFunc("/", sayHelloName)

    http.HandleFunc("/login", login)

    err := http.ListenAndServe(":9090", nil)

    if err != nil{

        log.Fatal("ListenAddServer: ", err)

    }

}

login.gtpl

1
2
3
4
5
6
7
8
9
10
11
12


   

       

   

   

       

            用户名:

            密码:

           

       

   


目录结构:



1
2
3
demo1

    main.go

    login.gtpl

错误信息

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
method: GET

2019/10/22 15:19:22 http: panic serving 127.0.0.1:64117: runtime error: invalid memory address or nil pointer dereference

goroutine 6 [running]:

net/http.(*conn).serve.func1(0xc0000650e0)

    D:/golang/src/net/http/server.go:1767 +0x140

panic(0x780880, 0xabfe80)

    D:/golang/src/runtime/panic.go:679 +0x1c0

html/template.(*Template).escape(0x0, 0x0, 0x0)

    D:/golang/src/html/template/template.go:95 +0x49

html/template.(*Template).Execute(0x0, 0x869920, 0xc000102000, 0x0, 0x0, 0x869a60, 0xc0000ca150)

    D:/golang/src/html/template/template.go:119 +0x36

main.login(0x86f5e0, 0xc000102000, 0xc0000ee000)

    E:/go_code/src/demo1/main/main.go:28 +0x34d

net/http.HandlerFunc.ServeHTTP(0x807338, 0x86f5e0, 0xc000102000, 0xc0000ee000)

    D:/golang/src/net/http/server.go:2007 +0x4b

net/http.(*ServeMux).ServeHTTP(0xacfa00, 0x86f5e0, 0xc000102000, 0xc0000ee000)

    D:/golang/src/net/http/server.go:2387 +0x1c4

net/http.serverHandler.ServeHTTP(0xc0000c4000, 0x86f5e0, 0xc000102000, 0xc0000ee000)

    D:/golang/src/net/http/server.go:2802 +0xab

net/http.(*conn).serve(0xc0000650e0, 0x86fba0, 0xc0000cc000)

    D:/golang/src/net/http/server.go:1890 +0x87c

created by net/http.(*Server).Serve

    D:/golang/src/net/http/server.go:2927 +0x395



   



推荐阅读
  • 知识图谱——机器大脑中的知识库
    本文介绍了知识图谱在机器大脑中的应用,以及搜索引擎在知识图谱方面的发展。以谷歌知识图谱为例,说明了知识图谱的智能化特点。通过搜索引擎用户可以获取更加智能化的答案,如搜索关键词"Marie Curie",会得到居里夫人的详细信息以及与之相关的历史人物。知识图谱的出现引起了搜索引擎行业的变革,不仅美国的微软必应,中国的百度、搜狗等搜索引擎公司也纷纷推出了自己的知识图谱。 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • 微软头条实习生分享深度学习自学指南
    本文介绍了一位微软头条实习生自学深度学习的经验分享,包括学习资源推荐、重要基础知识的学习要点等。作者强调了学好Python和数学基础的重要性,并提供了一些建议。 ... [详细]
  • Nginx使用(server参数配置)
    本文介绍了Nginx的使用,重点讲解了server参数配置,包括端口号、主机名、根目录等内容。同时,还介绍了Nginx的反向代理功能。 ... [详细]
  • Mac OS 升级到11.2.2 Eclipse打不开了,报错Failed to create the Java Virtual Machine
    本文介绍了在Mac OS升级到11.2.2版本后,使用Eclipse打开时出现报错Failed to create the Java Virtual Machine的问题,并提供了解决方法。 ... [详细]
  • Python瓦片图下载、合并、绘图、标记的代码示例
    本文提供了Python瓦片图下载、合并、绘图、标记的代码示例,包括下载代码、多线程下载、图像处理等功能。通过参考geoserver,使用PIL、cv2、numpy、gdal、osr等库实现了瓦片图的下载、合并、绘图和标记功能。代码示例详细介绍了各个功能的实现方法,供读者参考使用。 ... [详细]
  • 本文介绍了在Windows环境下如何配置php+apache环境,包括下载php7和apache2.4、安装vc2015运行时环境、启动php7和apache2.4等步骤。希望对需要搭建php7环境的读者有一定的参考价值。摘要长度为169字。 ... [详细]
  • ASP.NET2.0数据教程之十四:使用FormView的模板
    本文介绍了在ASP.NET 2.0中使用FormView控件来实现自定义的显示外观,与GridView和DetailsView不同,FormView使用模板来呈现,可以实现不规则的外观呈现。同时还介绍了TemplateField的用法和FormView与DetailsView的区别。 ... [详细]
  • WebSocket与Socket.io的理解
    WebSocketprotocol是HTML5一种新的协议。它的最大特点就是,服务器可以主动向客户端推送信息,客户端也可以主动向服务器发送信息,是真正的双向平等对话,属于服务器推送 ... [详细]
  • 怎么在PHP项目中实现一个HTTP断点续传功能发布时间:2021-01-1916:26:06来源:亿速云阅读:96作者:Le ... [详细]
  • 如何使用Java获取服务器硬件信息和磁盘负载率
    本文介绍了使用Java编程语言获取服务器硬件信息和磁盘负载率的方法。首先在远程服务器上搭建一个支持服务端语言的HTTP服务,并获取服务器的磁盘信息,并将结果输出。然后在本地使用JS编写一个AJAX脚本,远程请求服务端的程序,得到结果并展示给用户。其中还介绍了如何提取硬盘序列号的方法。 ... [详细]
  • 本文介绍了使用postman进行接口测试的方法,以测试用户管理模块为例。首先需要下载并安装postman,然后创建基本的请求并填写用户名密码进行登录测试。接下来可以进行用户查询和新增的测试。在新增时,可以进行异常测试,包括用户名超长和输入特殊字符的情况。通过测试发现后台没有对参数长度和特殊字符进行检查和过滤。 ... [详细]
  • http:my.oschina.netleejun2005blog136820刚看到群里又有同学在说HTTP协议下的Get请求参数长度是有大小限制的,最大不能超过XX ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • 在重复造轮子的情况下用ProxyServlet反向代理来减少工作量
    像不少公司内部不同团队都会自己研发自己工具产品,当各个产品逐渐成熟,到达了一定的发展瓶颈,同时每个产品都有着自己的入口,用户 ... [详细]
author-avatar
Arthur小熊
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有