向每个处理程序添加响应标头,而不重复同一行

2024-03-03

我正在编写一个小型网站,对于每个页面,我都将服务器名称添加到其标题中:

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))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

向每个处理程序添加响应标头,而不重复同一行 的相关文章

随机推荐

  • 使用curl和php自动填写表单

    我正在尝试编写一个自动填写表单然后自动按下提交按钮的脚本 我读过您可以使用curl来发布HTTP请求 但是当表单使用JavaScript处理post请求时 您会做什么 就像下面的代码一样
  • 使 DIV 覆盖 100% 的视口而不是 100% 的主体

    我的帖子是关于http www thepostboard net http www thepostboard net 我需要让当前覆盖 100 视口的黑框覆盖整个页面 只有当您的屏幕需要滚动条才能查看网站时 您才会注意到这一点 否则它看起来
  • 您能否将具有更严格内存排序的原子加载存储拆分为单独的宽松加载存储以及内存屏障指令?

    下面是用于跨线程数据同步的获取 释放语义的简单示例 thread 1 thread 2 data 100 flag store true std memory order release while flag load std memory
  • 查找调用可执行文件时命令行使用的路径

    我遇到以下问题 我想跑步ecd exe从命令行 我已将其完整路径添加到 路径 环境变量中 打电话时ecd exe从命令行 我得到以下输出 Error ecd exe should be located under the Eclipse h
  • 在Python中模拟“局部静态”变量

    考虑以下代码 def CalcSomething a if CalcSomething cache has key a return CalcSomething cache a CalcSomething cache a ReallyCal
  • 来自实体框架的 WCF 合同?

    我在这个问题上遇到了很多死胡同 据称 NET 3 5 SP1 支持 WCF 合约中的 ADO NET 实体框架实体 但当我寻找有关它的可靠信息时 我没有得到很多答案 我在 MSDN 线程上找到了这个片段 有人对这个有经验么 DataCont
  • MVC 中的 IoC Castle Windsor 路由问题

    我已经在我的 mvc 应用程序中设置了温莎城堡 一切都很好 除了它还捕获链接或图像类型的路由 问题是 在退出控制器并生成视图之前 GetControllerInstance 是以 null 类型执行的 只要页面上有如下链接 就会发生这种情况
  • Spark 的 StreamingLinearRegressionWithSGD 是如何工作的?

    我正在研究StreamingLinearRegressionWithSGD https spark apache org docs 1 6 3 api java org apache spark mllib regression Strea
  • 获取 Android 设备的方向

    您可能会认为会有一个直接的解决方案 Android 文档指出 Android 2 2 API 级别 8 中已弃用方向传感器 我们建议不要使用来自方向传感器的原始数据 您将 getRotationMatrix 方法与 getOrientati
  • 从 Angular 2 组件中的 CDN 加载 css

    正如标题所说 我想在 Angular 2 组件中包含外部 css 我现在是这样做的 import Component OnInit from angular core Component selector app auth template
  • 将绘图保存在对象中

    In ggplot2 可以轻松地将图形保存到 R 对象中 p ggplot geom point does not display the graph p displays the graph 标准功能plot将图形生成为 void 函数并
  • Web API 在几次成功请求后突然返回 403 禁止

    我一直致力于与 ASP NET Web API 结合使用的离子应用程序 我正在使用该 API 进行所有数据传输 我遇到了一个问题 在几次成功的请求之后 API突然返回403禁止 看起来 API 有一个限制或者其他什么 因为当我在很短的时间内
  • Python + Sqlite 的字符串相似度(Levenshtein 距离/编辑距离)

    Python Sqlite 中是否有可用的字符串相似性度量 例如使用sqlite3模块 用例示例 import sqlite3 conn sqlite3 connect memory c conn cursor c execute CREA
  • 占位符在 select2 中不起作用

    我在工作Select2选择框 Problem 占位符未显示在select2 它始终显示在中选择的第一个选项select2 它会自动选择我想显示占位符而不是它的第一个选项 My Code Script
  • Zend URL 参数 - 隐藏键和显示值

    使用 Zend 的默认路由 URL 如下所示 www domain com controller action key1 value1 key2 value2 key3 value3 每个键和值都作为一对存储在返回的数组中getParams
  • ReactJS-下载pdf文件“失败-无文件”

    我编写了一个 React 组件来使用文件的锚标记下载 pdf 文件 我收到错误Failed No file import React from react const Links gt div a href https github com
  • vscode - 将一个分支合并到另一个分支

    是否可以使用 vscode 界面而不是终端将一个分支合并到另一个分支 或者是否有任何扩展可以实现这一点 使用 vscode v1 13 0提前致谢 我创建了一个扩展 其名称如下 git合并 https marketplace visuals
  • 在 OpenShift(红帽云)上每 5 分钟运行一次 CRON 作业

    我试图每 5 分钟运行一次这个脚本 在 OpenShift 上运行 CRON 作业的唯一方法似乎是使用他们的 CRON 插件 而且CRON插件只允许每分钟 每小时和每天的脚本 通过将脚本放在相应的文件夹中 我尝试每 5 分钟运行一次此脚本
  • UINT_MAX 是否将所有位设置为 1?

    这个问题以前被问过 但我仍然很困惑 我知道 unsigned int a 1 将会UINT MAX 但这并不是因为所有 1 位都已设置 C11 说 如果新类型是无符号的 则通过重复添加或来转换该值 比新类型可以表示的最大值减一 直到该值在新
  • 向每个处理程序添加响应标头,而不重复同一行

    我正在编写一个小型网站 对于每个页面 我都将服务器名称添加到其标题中 func httpSignUp rw http ResponseWriter req http Request rw Header Set Server SERVER N