consulta servlet mediante textfield

Cesar Facev
29 de Septiembre del 2010
Hola, Quisiera saber como mi servlet, al hacer la consulta, podria arrojar los resultados de la base de datos, dentro de un textfield pero dentro de la misma html. Gracias!

Diego Perez
01 de Octubre del 2010
Hola Cesar:

Si no utilizas ningun framework como strutos, lo que puedes hacer es algo parecido a esto.

Primero el html (lo pongo sencillo)










Lo más importante que debes fijarte es que en el lugar donde tiene que aparecer el contenido del campo de texto he puesto una marca especial: ##nombre##

Lo que voy a hacer en mi servlet es ir a la base de datos y voy a meter el valor obtenido en el lugar de esa marca.

Vemos el código del servlet. Me centro sólo en lo importante.

//He ido a la base de datos y he obtenido el dato del cliente.

String nombre = rs.getString("nombre");
//Ahora voy a leer el fichero html desde el servlet
//Calculo la ruta donde está desplegado el proyecto en el servidor.
//supongo que el fichero anterior se llama datos.html y está en el
//directorio raiz WebRoot de tu proyecto
String ruta = this.getServletContext().getRealPath("/");

//Ahora leo todo el html en un String
File f = new File(ruta + "/datos.html");
FileReader fr = new FileReader(f);
BufferedReader br = new BufferedReader(fr);

String cadena = "";
String aux = "";
while ((aux = br.readLine()) != null)
{
cadena = cadena + aux;
}

//Ahora ya tengo en cadena todo el fichero html
//Lo que tengo que hacer es sustituir la marca ##nombre##
cadena = cadena.replaceAll("##nombre##", nombre);

//Ahora sólo falta mostrar esto en la pantalla del usuario.
PrintWriter out = response.getWriter();
out.setContetType("text/html");
out.println(cadena);
out.flush();
out.close();

Este es todo el código java necesario (faltaría lo de la base de datos, pero eso es cosa tuya).
Seguramente algún trozo de código te de error porque tenga que estar metido dentro de un try - catch

Espero que te sirva.

Saludos.

Filemute

Diego Perez
01 de Octubre del 2010
Hola de nuevo:

No ha salido bien el código html. Te lo vuelvo a poner










Saludos.

Filemute

Diego Perez
01 de Octubre del 2010
Hola de nuevo:

como no me deja poner el código html, porque luego no sale, lo voy a poner sin las marcas < y > esas las tendrás que poner tú.

html
body
form action="nombredelservlet" method="post"
input type="text" name="nombre" value="##nombre##"
input type="submit" value="enviar"
/form
/body
/html