Tengo el diseño de varias páginas jsp.
Después de hacer clic en el botón de enviar en la primera página, la página debe ser redirigido automáticamente a la segunda página.

Puedes ayudar con un ejemplo rápido o un enlace a un tutorial que muestra cómo implementar esto?

  • Por qué usted necesita una redirección? La forma habitual de hacerlo es enviar a un servlet que reenvía (no redirige) a un jsp.
  • Enviar la página como una forma, a través de la acción de parámetro.
InformationsquelleAutor PROXY | 2011-02-11

5 Comentarios

  1. 101
    <%
        String redirectURL = "http://whatever.com/myJSPFile.jsp";
        response.sendRedirect(redirectURL);
    %>
    • Scriplet es una muy mala decisión.
    • Es más útil decir lo bueno que decir lo que es malo. Lo que se debe utilizar en lugar de un scriptlet?
    • Este fue mi primer resultado en google para «redirigir jsp». Esta es la respuesta correcta para aquellos que buscan cómo siempre redirigir una página a otra (ex. a la mapa /index.jsp -> /myapp/index.jsp, poner esto en a /el índice.jsp y hacer redirectURL = «/myapp/index.jsp»). Constantino es correcto que esta es una mala manera de redirigir el botón de enviar. La manera adecuada para que un botón es para cualquiera que use un <form> etiqueta o javascript, dependiendo de su arquitectura.
    • Sólo las cabezas para arriba – esto funcionó para mí, pero tuve que eliminar cualquier saltos de línea después de return;. Se terminó el aspecto como este: response.sendRedirect(redirectURL);%> (ni siquiera un salto de línea después de %>)
    • De hecho, hablé demasiado pronto. Tener response.sendRedirect(redirectURL);\nreturn;\n%> funciona para mí también.
    • El administrador, en whatever.com deben estar pensando que «¿a dónde van todos estos myJSPFile.jsp llamadas provienen de?»
    • Verdadero. Y todavía me pregunto por qué a la gente a encontrar este post en el 2017 :-).

  2. 25

    Esta respuesta también contiene una solución estándar utilizando sólo el jstl redirigir etiqueta:

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

    Acaba de definir la página de destino en el action atributo de la <form> que contiene el botón de enviar.

    Así, en page1.jsp:

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

    No relacionados con el problema, un JSP es no el mejor lugar para hacer cosas de negocios, si usted necesita hacer nada. Consideran que el aprendizaje de los servlets..

  4. 2

    Hola: Si necesita más control en donde el enlace de redirección, puede usar esta solución.

    Ie. Si el usuario hace clic en el CHECKOUT enlace, pero desea enviar a él/ella para checkout página si su domicilio(conectado) o registro página si él/ella no está.

    Usted podría utilizar JSTL básicos COMO:

    <!--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>

    EXPLICAR: es el mismo…

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

    A CONTINUACIÓN: en simple HTML…

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

    Extender @oopbase la respuesta con return; declaración.

    Vamos a considerar un caso de uso tradicional sistema de autenticación en los que almacenamos información de inicio de sesión en el sesión. En cada página nos echa para sesión activa como,

    /* 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 */

    Se ve bien a primera vista; sin embargo, tiene un problema. Si su servidor ha caducado la sesión debido al límite de tiempo y el usuario está tratando de acceder a la página se puede obtener el error si no se ha escrito el código en try..catch bloque o manipulados if(null != session.getAttribute("attr_name")) cada vez.

    Así poniendo un return; declaración yo dejado de seguir la ejecución y obligados a redirigir a la página de a cierto lugar.

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

    Nota de que el Uso de la redirección puede variar dependiendo de los requisitos. Hoy en día las personas no utilizan este tipo de autenticación del sistema. (Enfoque moderno – Basada En Token De Autenticación) Es sólo un ejemplo sencillo para entender dónde y cómo colocar la redirección(s).

Dejar respuesta

Please enter your comment!
Please enter your name here