当前位置: 首页 > 面试题库 >

显示带有标准http包的自定义404错误页面

习高格
2023-03-14
问题内容

假设我们有:

http.HandleFunc("/smth", smthPage)
http.HandleFunc("/", homePage)

尝试输入错误的URL时,用户会看到一个普通的“找不到404页”。如何为这种情况返回自定义页面?

有关大猩猩/木糖的更新

对于使用纯net / http软件包的用户,可以接受答案。

如果您使用大猩猩/多路复用器,则应使用以下内容:

func main() {
    r := mux.NewRouter()
    r.NotFoundHandler = http.HandlerFunc(notFound)
}

func notFound(w http.ResponseWriter, r *http.Request)根据需要实施。


问题答案:

我通常这样做:

package main

import (
    "fmt"
    "net/http"
)

func main() {
    http.HandleFunc("/", homeHandler)
    http.HandleFunc("/smth/", smthHandler)
    http.ListenAndServe(":12345", nil)
}

func homeHandler(w http.ResponseWriter, r *http.Request) {
    if r.URL.Path != "/" {
        errorHandler(w, r, http.StatusNotFound)
        return
    }
    fmt.Fprint(w, "welcome home")
}

func smthHandler(w http.ResponseWriter, r *http.Request) {
    if r.URL.Path != "/smth/" {
        errorHandler(w, r, http.StatusNotFound)
        return
    }
    fmt.Fprint(w, "welcome smth")
}

func errorHandler(w http.ResponseWriter, r *http.Request, status int) {
    w.WriteHeader(status)
    if status == http.StatusNotFound {
        fmt.Fprint(w, "custom 404")
    }
}

在这里,我将代码简化为仅显示自定义404,但实际上使用此设置可以做更多的事情:我使用来处理所有HTTP错误errorHandler,在其中记录有用的信息并向自己发送电子邮件。



 类似资料:
  • 问题内容: 在我的Spring Boot应用程序中,我试图配置自定义错误页面,例如404,我在应用程序配置中添加了以下Bean: 此外,我还创建了以下简单的Thymeleaf模板: 并将其添加到文件夹中。现在,在404错误上,我只能看到白屏。 我在做什么错以及如何正确设置404页面?此外,是否可以将模板而不是仅将静态页面用于自定义错误页面? 问题答案: 在Spring Boot 1.4.x中,你可

  • 在我的Spring Boot应用程序中,我试图配置自定义错误页,例如,对于404,我在应用程序配置中添加了以下Bean: 此外,我还创建了以下简单的Thymeleaf模板: 并将其添加到文件夹中。现在关于404错误,我只能看到白色屏幕。 我做错了什么?如何正确设置404页面?另外,是否可以使用模板而不仅仅是静态页面来定制错误页面?

  • 本文向大家介绍在ASP.NET Core中显示自定义的错误页面,包括了在ASP.NET Core中显示自定义的错误页面的使用技巧和注意事项,需要的朋友参考一下 前言 相信每位程序员们应该都知道在 ASP.NET Core 中,默认情况下当发生500或404错误时,只返回http状态码,不返回任何内容,页面一片空白。 如果在 Startup.cs 的 Configure() 中加上 app.UseS

  • 我目前正在使用Spring Kafka来使用topic中的消息以及Spring的@Retry。因此,基本上,我正在尝试处理消费者消息以防出现错误。但在这样做时,我希望避免KafkaMessageListenerContainer抛出的异常消息。相反,我想显示一条自定义消息。我尝试在ConcurrentKafkAlisterContainerFactory中添加错误处理程序,但这样做时,我的重试没有

  • 问题内容: 完全按照此处找到的教程进行操作,我无法创建自定义500或404错误页面。如果我确实输入了错误的网址,则该页面会显示默认的错误页面。有什么我应该检查的内容,以防止显示自定义页面? 文件目录: 在mysite / settings.py中,我启用了以下功能: 在mysite / polls / urls.py中: 我可以发布任何其他必要的代码,但是如果我使用了错误的网址,应该如何更改以获得

  • 我正在进行Spring Security集成,我的内置安全页面的应用程序运行良好。但是对于自定义登录页面,它给出了错误 以下是我的代码供参考 在spring-security.xml 在login.jsp 在控制器中: 当我使用内置表单pulgin运行项目时,url是 登录后,如果我手动点击网址 它向我显示了登录页面,但我没有看到。如果这次显示了该页面,那么为什么它没有在自定义配置中显示。请帮帮忙