您的位置 首页 golang

Go语言Web编程,http.Handler 与 http.HandleFunc

上一节学习了怎么创建web server、handler是什么,我们也了解了DefaultServeMux是一个Multiplexer,也称多路复用器,同时也是handler,可以把DefaultServeMux看做是一个总入口handler,那么怎么使用多个handler呢?

使用多个handler有2个方法,

(1)设置http.Server结构体的Handler字段为nil

(2)手动设置http.Handler,并将该Handler添加到DefaultServeMux中

http.Handler的参数:

通过源码可以看到,handler函数有2个参数,第一个参数是pattern,类型是字符串,表示URL路径,比如“/、/index、/home等”。第二个参数是Handler,Handler的类型是接口类型。

下面进行一个示例,将之前的示例进行下修改就可以完成演示

红色箭头是需要关注的地方

执行结果

6行:自定义了一个结构体,名字为IndexHandler

7行:重写了ServeHTTP方法,接受者是IndexHandler

再增加一个/home路径,怎么办?

执行结果

这样就增加了2个handler,分别完成了不同的任务

这样好像还有点麻烦,有没有别的方法呢?

这就用到了另外一个函数http.HandleFunc

再修改下上面的代码,通过函数http.HandleFunc实现“/admin”功能。

执行结果

可以看出功能上是一样的。

代码解析

18行:Student 函数,作用是输出”这里是 :/student”

43行:使用http.HandleFunc的第一种方法,采用了匿名函数。

48行:使用http.HandleFunc的第二种方法,采用了函数参数

可以看出,这两种方法实现起来更简单。

文章来源:智云一二三科技

文章标题:Go语言Web编程,http.Handler 与 http.HandleFunc

文章地址:https://www.zhihuclub.com/86444.shtml

关于作者: 智云科技

热门文章

网站地图