Подтвердить что ты не робот

Перенаправить страницы в JSP?

Мне нужно создать несколько страниц в jsp. После нажатия кнопки отправки на первой странице страница должна быть автоматически перенаправлена ​​на вторую страницу.

Можете ли вы помочь с быстрым примером или ссылкой на учебник, демонстрирующий, как это реализовать?

4b9b3361

Ответ 1

<%
    String redirectURL = "http://whatever.com/myJSPFile.jsp";
    response.sendRedirect(redirectURL);
%>

Ответ 2

Этот ответ также содержит стандартное решение, использующее только тег перенаправления jstl:

<c:redirect url="/home.html"/>

Ответ 3

Просто определите целевую страницу в атрибуте action <form>, содержащем кнопку отправки.

Итак, в page1.jsp:

<form action="page2.jsp">
    <input type="submit">
</form>

Не связанный с проблемой, JSP не лучшее место для ведения бизнеса, если вам нужно что-то делать. Рассмотрите возможность обучения servlets.

Ответ 4

Здравствуйте,. Если вам нужно больше контроля над тем, куда должна быть перенаправлена ​​ссылка, вы можете использовать это решение.

Т.е. Если пользователь нажимает ссылку CHECKOUT, но вы хотите отправить его/ее на страницу проверки, если ее зарегистрированная (зарегистрированная) или страница регистрации, если он/она не является.

Вы можете использовать JSTL core LIKE:

<!--include the library-->
<%@ taglib prefix="core" uri="http://java.sun.com/jsp/jstl/core" %>

<%--create a var to store link--%>
<core:set var="linkToRedirect">
  <%--test the condition you need--%>
  <core:choose>
    <core:when test="${USER IS REGISTER}">
      checkout.jsp
    </core:when>
    <core:otherwise>
      registration.jsp
    </core:otherwise>
  </core:choose>
</core:set>

РАЗРАБОТКА: это то же самое, что...

 //pseudo code
 if(condition == true)
   set linkToRedirect = checkout.jsp
 else
   set linkToRedirect = registration.jsp

THEN: в простом HTML...

<a href="your.domain.com/${linkToRedirect}">CHECKOUT</a>

Ответ 5

Расширение ответа @oopbase с помощью оператора return;.

Рассмотрим пример использования традиционной системы аутентификации, в которой мы храним информацию о регистрации в сеансе . На каждой странице мы проверяем активный сеанс, например

/* Some Import Statements here. */

if(null == session || !session.getAttribute("is_login").equals("1")) {
    response.sendRedirect("http://domain.com/login");
}

// ....

session.getAttribute("user_id");

// ....
/* Some More JSP+Java+HTML code here */

Однако на первый взгляд это выглядит хорошо. У него есть одна проблема. Если ваш сервер истек из-за ограничения по времени, и пользователь пытается получить доступ к странице, он может получить ошибку, если вы не написали свой код в блоке try..catch или обрабатывали if(null != session.getAttribute("attr_name")) каждый раз.

Итак, поместив оператор return;, я остановил дальнейшее выполнение и заставил перенаправить страницу в определенное место.

if(null == session || !session.getAttribute("is_login").equals("1")) {
    response.sendRedirect("http://domain.com/login");
    return;
}

Обратите внимание, что использование перенаправления может варьироваться в зависимости от требований. В настоящее время люди не используют такую ​​систему аутентификации. (Современный подход - Аутентификация на основе токенов) Это просто простой пример, чтобы понять, где и как размещать перенаправления (-ы).