gpt4 book ai didi

jsp - 一般 tomcat (v7) 404 重定向到外部 url

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

在测试了几个建议(比如 Redirect to external website on Tomcat )之后,我仍然无法为 tomcat 中不存在的 webapps 重定向到外部 url。

我的情况是这样的:

  • tomcat 在 url localhost 上运行
  • 在目录 webapps/app1, webapps/app2, ... 中运行了很多 webapps
  • 对 localhost/app1 的 url 调用将打开应用程序 app1
  • 对 localhost/app2 的 url 调用将打开应用程序 app2
  • 本地主机上的 url 调用将打开 app1(在 tomcat 中配置的自动重定向)

我的目标是实现重定向到外部网站,例如http://www.test.com/404.html当有人输入像 localhost/asdf 这样的 url 时。有没有一种方法可以在 tomcat 中全局实现这一点,比如在/conf/web.xml 中添加 errorpage 属性?

在这里回答: How to handle not available Tomcat 7 webapps

最佳答案

Tomcat 版本 = ?

你到底想要什么?

一个。如果您想将不存在的 Web 应用程序重定向到别处,请在 ROOT Web 应用程序(也称为默认 Web 应用程序)中配置 error-page

ROOT 网络应用程序处理所有未被其他网络应用程序处理的请求。

B.如果您想为所有 Web 应用程序的“错误 404”处理配置默认设置:

在 Web 应用程序 (YMMV) 之间共享 JSP 页面相当困难,但共享 servlet 却非常容易。

  • 准备执行重定向的 servlet。

    例如扩展 javax.servlet.http.HttpServlet 并覆盖其“服务”方法。像这样:

    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp)
    throws ServletException, IOException {

    // TODO: check that request.getMethod() is one of "GET", "HEAD", "POST"?

    response.sendRedirect("http://www.test.com/404.html");

    //// Or if you want better control over HTTP status code (302/307/...):
    // response.reset();
    // response.setStatus(302);
    // response.setHeader("Location", "http://www.test.com/404.html");
    }
  • 将您的代码放入 Tomcat 的 lib 目录中 — 作为 jar 或作为包/类文件树。

  • conf/web.xml 中配置您的 servlet,并将其映射到那里的某个 URL,例如/WEB-INF/404

    <servlet>
    <servlet-name>bar</servlet-name>
    <servlet-class>foo.Bar</servlet-class>
    </servlet>
    <servlet-mapping>
    <servlet-name>bar</servlet-name>
    <url-pattern>/WEB-INF/404</url-pattern>
    </servlet-mapping>
  • conf/web.xml 中使用该 servlet 提供的位置配置 error-page

    <error-page>
    <error-code>404</error-code>
    <location>/WEB-INF/404</location>
    </error-page>

如果这没有帮助,还可以扩展 ErrorReportValve 类。

关于jsp - 一般 tomcat (v7) 404 重定向到外部 url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29866504/

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