gpt4 book ai didi

tomcat 5.0.9 在无法访问服务器的情况下覆盖 404 错误页面声明 - 需要自定义 404 消息

转载 作者:行者123 更新时间:2023-11-28 21:52:22 25 4
gpt4 key购买 nike

首先,我不是 Java 程序员,也不熟悉 Tomcat,所以请多多包涵 :) 我正在使用运行在 Apache Tomcat 5.0.9 上的 SaaS 应用程序。我无权访问服务器配置文件,也无法添加 .jsp 文件。

我所处的情况是我有一个在 Mozilla Rhino 环境中运行的脚本并且我可以访问以下两个对象:

org.apache.coyote.tomcat5.CoyoteRequestFacade org.apache.coyote.tomcat5.CoyoteResponseFacade

我需要将状态设置为 SC_NOT_FOUND (404) 并提供自定义消息。问题是,无论我做什么,如果状态为 404,我都会收到供应商设置的“难看”的 404 错误消息。我试过使用“sendError”、“setStatus”,我试过获取调度程序并重定向到另一个页面,同时也将状态设置为 404,我试过一个包装器但不确定我在做什么,我我看过有关过滤器的信息,但不知道如何在这种情况下应用它,甚至不知道这是正确的方法。

同样,似乎只要设置了 404,网络服务器就会提供它自己的页面。我假设这是一个我无法覆盖的“错误页面声明”。我已经阅读了这个问题 How to get the message in a custom error page (Tomcat)? (和许多其他人)但我对这一点的理解还不足以将信息转化为我的特定情况。

那么,是否有可能以编程方式“覆盖”错误页面声明?或者,鉴于我所处环境的限制,如何返回 404 错误自定义错误页面?在这一点上,我会满足于纯文本——不必花哨。我只需要一些方法来使用 404 状态显示“用户友好”消息。

如有任何帮助,我们将不胜感激!

附言我应该提一下,采用这种方法的原因是相关页面将(可能)被搜索引擎和人类使用。我需要 404 以便搜索引擎从其缓存中删除该页面,并且我需要“漂亮”消息来告诉访问者由于页面不再可用而需要采取哪些步骤。

最佳答案

Tomcat 正在解释您的 404 状态并显示带有错误消息或堆栈跟踪的标准错误页面。

如果使用 response.sendError(404, "Your error message here") 对您不起作用,那么您需要查看使用自定义错误页面 - http://wiki.apache.org/tomcat/FAQ/Miscellaneous#Q6 ,但这取决于您可以修改 web.xml 的事实 - 您说您无法执行的操作。

现在您可以返回一个 ok 的 HTTP 状态代码 (200),并显示格式漂亮的错误内容

如果使用响应的客户端只是一个附有人类的浏览器,那么他们将一无所知。

另一方面,如果使用它的客户端是某种机器(脚本、另一个程序等)并且它们正在根据响应代码执行逻辑,那么这对您来说不是一个好的解决方案,因为返回 200状态代码,您是说一切正常(而不是错误代码 - 4xx 或 5xx)

关于tomcat 5.0.9 在无法访问服务器的情况下覆盖 404 错误页面声明 - 需要自定义 404 消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9861702/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com