目录

  1. 页面重定向的工作原理
  2. 实现页面重定向的方法
  1. 示例代码
  2. 参考资料

页面重定向的工作原理

在 JSP 中,页面重定向用于将请求导航到另一个页面。重定向可以通过客户端方式(response.sendRedirect(),发送 302 状态码)或服务器端方式(<jsp:forward>,直接转发)实现。客户端重定向会发起新请求,而服务器端转发在同一请求内完成。


实现页面重定向的方法

2.1 使用 response.sendRedirect()

  • 作用:发送 HTTP 重定向响应,客户端浏览器发起新请求。
  • 特点:URL 会变化,请求数据不会自动传递。
  • 示例
  <% 
      response.sendRedirect("target.jsp"); 
  %>

2.2 使用

  • 作用:在服务器端将请求转发到另一页面。
  • 特点:URL 不变,请求数据可通过 request 对象传递。
  • 示例
  <jsp:forward page="target.jsp" />

2.3 区别与选择

  • sendRedirect()
  • 客户端行为,适合跳转到外部页面或完成操作后刷新。
  • 示例场景:登录成功后跳转到主页。
  • <jsp:forward>
  • 服务器端行为,适合在同一应用内分发请求。
  • 示例场景:根据条件转发到不同页面。

示例代码

  • 重定向示例(redirect.jsp):
  <%@ page contentType="text/html;charset=UTF-8" %>
  <%
      String role = request.getParameter("role");
      if ("admin".equals(role)) {
          response.sendRedirect("admin.jsp");
      } else {
          response.sendRedirect("user.jsp");
      }
  %>
  • 调用:redirect.jsp?role=admin
  • 转发示例(forward.jsp):
  <%@ page contentType="text/html;charset=UTF-8" %>
  <%
      String role = request.getParameter("role");
      if ("admin".equals(role)) {
  %>
      <jsp:forward page="admin.jsp" />
  <%
      } else {
  %>
      <jsp:forward page="user.jsp" />
  <%
      }
  %>
  • 目标页面(admin.jsp):
    jsp <%@ page contentType="text/html;charset=UTF-8" %> ¨K14K ¨K15K

参考资料

  1. Oracle 官方文档
  1. JavaTpoint JSP 教程
  1. TutorialsPoint JSP 重定向

如果需要更复杂的重定向逻辑或有其他问题,请告诉我!