温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

tomcat如何重定向

发布时间:2026-10-07 15:50:45 来源:亿速云 阅读:88 作者:小樊 栏目:系统运维

在 Tomcat 中,“重定向”常见有几种场景,下面按使用频率给你系统讲一下。


一、HTTP 重定向(最常用)

1️⃣ 在 Java 代码中重定向(Servlet / Controller)

response.sendRedirect("/newPath/index.jsp");
  • 客户端跳转(浏览器地址栏会变)
  • 默认是 302 临时重定向
  • 可指定绝对或相对路径

✅ 适合:登录跳转、权限控制


2️⃣ 永久重定向(301)

response.setStatus(HttpServletResponse.SC_MOVED_PERMANENTLY);
response.setHeader("Location", "/newPath/");

二、通过 web.xml 配置重定向

1️⃣ 错误页面重定向

<error-page>
    <error-code>404</error-code>
    <location>/404.html</location>
</error-page>

2️⃣ 使用 Filter 做统一重定向

public void doFilter(...) {
    if (条件) {
        response.sendRedirect("/login.jsp");
    }
}

三、URL 重写(Tomcat 级别重定向)

使用 RewriteValve(Tomcat 8+ 推荐)

步骤:

1️⃣ 在 server.xml 或 context.xml 中启用:

<Valve className="org.apache.catalina.valves.rewrite.RewriteValve" />

2️⃣ 在 WEB-INF/rewrite.config 中写规则:

RewriteRule ^/old/(.*)$ /new/$1 [R=301,L]

✅ 适合:

  • 旧接口迁移
  • SEO 地址规范化
  • 域名或路径变更

四、ROOT 项目重定向(访问 / 跳转到其他应用)

方法 1:ROOT/index.jsp

<%
response.sendRedirect("/app/");
%>

方法 2:Nginx 层(更推荐)

location / {
    return 301 http://domain/app/;
}

五、AJP / 反向代理重定向注意点

如果你用 Nginx + Tomcat,重定向容易出问题:

❌ 错误现象:

  • 重定向后端口不对
  • 出现 http://localhost:8080

✅ 解决:

proxy_set_header Host $host;
proxy_set_header X-Forwarded-Proto $scheme;

Tomcat:

<Connector ... proxyName="www.xxx.com" proxyPort="80" />

六、常见对比

方式 是否改地址栏 是否服务端
sendRedirect ✅ ❌
RequestDispatcher.forward ❌ ✅
RewriteValve ✅ ✅

如果你愿意,可以告诉我:

  • Tomcat 版本
  • 是 页面跳转 / 接口迁移 / 域名变更 / HTTPS
  • 是否使用 Nginx

我可以直接给你可用的配置示例。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI
助
手