Obtener datos en jsp


16 de Agosto del 2017

Hola que tal, estoy desarrollando un sistema que consiste en registrar las visitas a "x" lugar, al momento de llenar en mi formulario el nombre y apellidos del visitante el sistema debe consultar a la base de datos si es que este ciudadano ya tiene registros anteriores, esto es necesario pues posteriormente carga los registros de acuerdo a su "id", mi problema es como hago para mandar la informacion de esos input's  para consultar el "id"???

Lo puedo hacer mediante un boton tipo submit pero que al presionarlo no salga del formulario? es decir, que al momento de presionarlo lo que haga es solo retornarme el id del ciudadano si es que existen registros???

Por su atención muchas gracias...


Alvaro
12 de Agosto del 2026

Hola,

Para pasar el resultado de esa consulta (si el visitante ya existe y su id) desde donde haces la comprobación hasta donde necesitas usarlo después, la forma más directa dentro de la misma petición es request.setAttribute() combinado con un forward, no una redirección:

// En el servlet que consulta si el visitante existe
Visitante visitante = buscarPorNombreYApellidos(nombre, apellidos);

if (visitante != null) {
    request.setAttribute("visitante", visitante);
    request.getRequestDispatcher("registros.jsp").forward(request, response);
} else {
    request.getRequestDispatcher("nuevoVisitante.jsp").forward(request, response);
}

Y en el JSP de destino, accedes al objeto directamente porque el forward mantiene el mismo request:

<p>ID del visitante: ${visitante.id}</p>

La diferencia clave frente a un redirect (response.sendRedirect(...)): el forward ocurre enteramente en el servidor, dentro de la misma petición HTTP, así que todo lo que hayas puesto en request sigue disponible en la página de destino. Un redirect en cambio le dice al navegador «pide esta otra URL», lo que genera una petición HTTP completamente nueva, y ahí el request original (y sus atributos) se pierde.

Si en cambio necesitas que ese dato sobreviva a varias páginas distintas, no solo a la siguiente (por ejemplo, mantener el visitante activo mientras navega por varias pantallas de tu sistema), entonces request.setAttribute no te sirve porque no sobrevive a un redirect, ahí te hace falta session.setAttribute("visitante", visitante), que persiste mientras dure la sesión del usuario.

Alvaro