Foros del Web » Programación para mayores de 30 ;) » Java »

Aplicacion JSP no funciona en servidor pero si en local

Estas en el tema de Aplicacion JSP no funciona en servidor pero si en local en el foro de Java en Foros del Web. Estoy haciendo una pequeña aplicacion de gestion. La he subido a un servidor de JSP pero una de las paginas (NuevoCliente.jsp) no funciona al ejecutar ...
  #1 (permalink)  
Antiguo 15/11/2010, 09:15
Dr0gNan
Invitado
 
Mensajes: n/a
Puntos:
Aplicacion JSP no funciona en servidor pero si en local

Estoy haciendo una pequeña aplicacion de gestion. La he subido a un servidor de JSP pero una de las paginas (NuevoCliente.jsp) no funciona al ejecutar el evento del boton Guardar. Se queda con el parametro del servlet en la URL y con la pagina en blanco.

Os pongo el codigo a continuacion y la direccion de la pagina para que lo veais vosotros mismos:

Codigo servlet:

Código HTML:
package servlets;
 
import java.io.IOException;
import java.sql.ResultSet;
import java.sql.SQLException;
 
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
 
import classes.Conexion;
 
/**
 * Servlet implementation class NuevoClienteServlet
 */
public class NuevoClienteServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;
 
    /**
     * @see HttpServlet#HttpServlet()
     */
    public NuevoClienteServlet() {
        super();
        // TODO Auto-generated constructor stub
    }
 
    /**
     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
    }
 
    /**
     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        
        Conexion.Inicializar();
        Conexion.Conectar();
 
        //Carga de campos de la pagina JSP
        String nombreCliente = request.getParameter("txtNombre").trim();
        String apellidosCliente = request.getParameter("txtApellidos");
        String direccionCliente = request.getParameter("txtDireccion");
        String telefonoCliente = request.getParameter("txtTelefono").trim();
        String emailCliente = request.getParameter("txtEmail").trim();
 
        if (!nombreCliente.isEmpty() || 
                !apellidosCliente.isEmpty() ||
                !direccionCliente.isEmpty() ||
                !telefonoCliente.isEmpty() ||
                !emailCliente.isEmpty())
        {
            String sqlSentencia = "INSERT INTO cliente (nomcli, apecli, dircli, telcli, emailcli) VALUES ('" + 
            nombreCliente + "' , '" +
            apellidosCliente + "' , '" +
            direccionCliente  + "' , '" +
            telefonoCliente  + "' , '" +
            emailCliente  + "')";
 
            //System.out.println(sqlSentencia);
 
            int errorSQL = Conexion.Actualizacion(sqlSentencia);
 
            if (errorSQL != 1)
            {
                System.out.println("Error de SQL");
            }
            else
            {
                System.out.println("Registro insertado");
            }
        }
        else
        {
            System.out.println("Campos vacios");
        }
 
        if (request.getParameter("btnGuardarNuevo")!=null)
        {
            response.sendRedirect("NuevoCliente.jsp");
        }
        else if(request.getParameter("btnGuardar")!=null)
        {
            try {
                ResultSet tabla = Conexion.Consulta("select auto_increment from `information_schema`.tables where TABLE_SCHEMA = 'informatica' and TABLE_NAME = 'cliente'");
 
                while (tabla.next())
                {
                    //Restamos uno ya que el codigo que devuelve la consulta es el siguiente
                    int codigoCliente = tabla.getInt("auto_increment")-1;
                    
                    String URL = "DetalleCliente.jsp?codCliente=" + codigoCliente;
                    
                    response.sendRedirect(URL);
                }
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
        Conexion.Cerrar();
    }
}
La parte que no funciona en el servidor es la siguiente:

Código HTML:
        else if(request.getParameter("btnGuardar")!=null)
        {
            try {
                ResultSet tabla = Conexion.Consulta("select auto_increment from `information_schema`.tables where TABLE_SCHEMA = 'informatica' and TABLE_NAME = 'cliente'");
 
                while (tabla.next())
                {
                    //Restamos uno ya que el codigo que devuelve la consulta es el siguiente
                    int codigoCliente = tabla.getInt("auto_increment")-1;
                    
                    String URL = "DetalleCliente.jsp?codCliente=" + codigoCliente;
                    
                    response.sendRedirect(URL);
                }
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
La funcion que tiene que hacer la pagina es Guardar los datos en la BBDD (lo hace correctamente) y despues redireccionar a la pagina de detalle del registro que he creado. El redireccionamiento es lo que no hace.

Esta subido en esta direccion: http://dr0gnan.s23.eatj.com/NuevoCliente.jsp


Gracias, un saludo.
  #2 (permalink)  
Antiguo 15/11/2010, 16:28
Avatar de Xerelo  
Fecha de Ingreso: mayo-2009
Mensajes: 2.175
Antigüedad: 14 años, 11 meses
Puntos: 306
Respuesta: Aplicacion JSP no funciona en servidor pero si en local

Cita:
while (tabla.next())
{
//Restamos uno ya que el codigo que devuelve la consulta es el siguiente
int codigoCliente = tabla.getInt("auto_increment")-1;

String URL = "DetalleCliente.jsp?codCliente=" + codigoCliente;

response.sendRedirect(URL);
}
¿Para qué pones el redirect dentro de un while? Eso no tiene sentido.

Lo primero que tienes que hacer es ver si realmente el problema es de la redirección, prueba a meter directamente en el navegador DetalleCliente.jsp?codCliente=codigoCliente del último cliente creado.
__________________
Cada vez que solucionas los problemas de alguien que no se esfuerza, piensa en que el día de mañana puede llegar a ser tu compañero de trabajo, o peor, tu jefe.
  #3 (permalink)  
Antiguo 16/11/2010, 09:55
Dr0gNan
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Aplicacion JSP no funciona en servidor pero si en local

Gracias por la contestación. He hecho la prueba y la pagina de Detalle si procesa correctamente el codigo del request.

He sacado el redirect de dentro de while. En local sigue funcionando igual pero subido a Internet hace una redireccion al listado de clientes (es el que se carga por defecto al entrar en el dominio).

Es un comportamiento rarisimo, crea el cliente correctamente pero redirige mal, en el listado se puede ver correctamente el cliente y si se hace clic en el boton "D" se ve perfectamente el detalle asi como la URL con el parametro del codigo de cliente.

Un saludo.

Etiquetas: jsp, local, servidores, aplicaciones
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:07.