我正在写一个小型网站,对于每个页面,我都会在其标题中放置一个服务器名称:
func httpSignUp(rw http.ResponseWriter, req *http.Request) { rw.Header().Set("Server", SERVER_NAME) }
我想知道是否有一种方法可以设置http.ResponseWriter的默认服务器名称,因此我不必一遍又一遍地使用同一行?
创建一个包装器以设置标题:
func wrap(h http.Handler) http.Handler { return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) ( w.Header().Set("Server", SERVER_NAME) h.ServeHTTP(w, r) }) }
包装单个处理程序
http.Handle("/path", wrap(aHandler)( http.Handle("/another/path", wrap(anotherHandler))
或传递给ListenAndServe的根处理程序:
log.Fatal(http.ListenAndServe(addr, wrap(rootHandler))