如何在Java应用程序引擎上实现自定义404错误页?
嗨,我正在尝试为应用程序引擎上的404未找到错误设置一个静态错误页面 根据:它说404不能定制 根据:它似乎也不支持404如何在Java应用程序引擎上实现自定义404错误页?,java,google-app-engine,http-status-code-404,Java,Google App Engine,Http Status Code 404,嗨,我正在尝试为应用程序引擎上的404未找到错误设置一个静态错误页面 根据:它说404不能定制 根据:它似乎也不支持404 然而,似乎表明404错误页面可以定制。我现在很困惑。你是对的,这在应用程序引擎上的Java中目前不可用。但是,Python有一个变通方法。关于这个例子,你可以看看 希望这有帮助。为什么不使用JavaEE条目来实现这些目的 在web.xml中: <error-page> <error-code>404</error-code>
然而,似乎表明404错误页面可以定制。我现在很困惑。你是对的,这在应用程序引擎上的Java中目前不可用。但是,Python有一个变通方法。关于这个例子,你可以看看
希望这有帮助。为什么不使用JavaEE条目来实现这些目的 在web.xml中:
<error-page>
<error-code>404</error-code>
<location>/app/error/404</location>
</error-page>
....
<error-page>
<error-code>500</error-code>
<location>/app/error/500</location>
</error-page>
以及类似jsp的文件:
<h2>Error!!!</h2>
....
<h3>Status code: #{param.statusCode}</h3>
错误!!!
....
状态代码:#{param.statusCode}
希望这有帮助。我意识到在本地开发服务器上运行应用程序时会出现此问题。但是,当我将应用程序部署到应用程序引擎时。我可以看到使用web.xml配置的404错误页面。感谢您的帮助。我已经能够在本地开发服务器上的App Engine SDK 1.6.1版和更早版本中成功重定向404错误。但是,在更新到GAE SDK 1.7.5之后,我无法让它在本地工作。我后来了解到,如上所述,404目前不支持它。在app engine 1.9.48版上,这在云上运行: [web.xml]
<web-app>
...
<error-page>
<error-code>404</error-code>
<location>/static-error.html</location>
</error-page>
</web-app>
...
404
/static-error.html
它的官方文件。。以下情况将不受支持:
来自谷歌应用程序引擎标准环境文档(2018年8月19日): 简言之,您必须具有此URL的servlet映射,如下所示:
<web-app>
<servlet>
<servlet-name>404</servlet-name>
<jsp-file>/404.jsp</jsp-file>
</servlet>
<servlet-mapping>
<servlet-name>404</servlet-name>
<url-pattern>/404</url-pattern>
</servlet-mapping>
...
<error-page>
<error-code>404</error-code>
<location>/404</location>
</error-page>
</web-app>
404
/404.jsp
404
/404
...
404
/404
此配置按预期工作。尝试获取不存在的页面(例如www.domain.com/unknownPage)时会显示错误页面 我不熟悉App Engine,但根据您找到的文档,目前无法自定义404 File not found页面。我意识到这个问题仅在本地开发服务器上不起作用。但是,当我将应用程序部署到应用程序引擎时。我可以看到使用web.xml配置的404错误页面。谢谢你的帮助。我尝试使用
,但我仍然收到默认的错误404
消息。我提出了一个错误,很遗憾,我在app.yaml中没有看到任何404处理,因此很难判断您指的是什么。
<web-app>
<servlet>
<servlet-name>404</servlet-name>
<jsp-file>/404.jsp</jsp-file>
</servlet>
<servlet-mapping>
<servlet-name>404</servlet-name>
<url-pattern>/404</url-pattern>
</servlet-mapping>
...
<error-page>
<error-code>404</error-code>
<location>/404</location>
</error-page>
</web-app>