elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  Ayuda con Servlet
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Ayuda con Servlet  (Leído 3,654 veces)
pequezere

Desconectado Desconectado

Mensajes: 14



Ver Perfil
Ayuda con Servlet
« en: 12 Abril 2012, 14:49 pm »

Hola

El caso es que llevo un tiempo atascado con un ejercicio y no soy capaz de resolverlo, a ver si alguien me puede ayudar.

Tengo que crear un único servlet que cuando recibe una petición busca en la sesión un atributo llamado color y y, si existe, lo establece de color de fondo. Además, tiene que construir un formulario con un select de cuatro colores y un botón de submit. Al hacer el submit se reenvía la petición al mismo servlet que almacena el valor del select en la sesión.

Para el formulario tengo el siguiente html:
Código
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
  2.  <TITLE>Colores</TITLE>
  3. </HEAD>
  4.  
  5. <BODY BGCOLOR="#FDF5E6">
  6. <H1 ALIGN="CENTER">Colores</H1>
  7.  
  8. <FORM ACTION="color" METHOD="get">
  9.  
  10. <td>Elija un color de fondo:</td>
  11. <td><INPUT TYPE="RADIO" NAME="nombreColor" VALUE="Rojo">Rojo<BR>
  12.  <INPUT TYPE="RADIO" NAME="nombreColor" VALUE="Azul">Azul<BR>
  13.  <INPUT TYPE="RADIO" NAME="nombreColor" VALUE="Amarillo">Amarillo<BR>
  14.  <INPUT TYPE="RADIO" NAME="nombreColor" VALUE="Verde">Verde</td>
  15. <tr>
  16. </tr>
  17.  
  18.  <CENTER>
  19.    <INPUT TYPE="SUBMIT" VALUE="Aceptar">
  20.  </CENTER>
  21. </FORM>
  22.  
  23. </BODY>
  24. </HTML>

Y para el servlet en sí, esta estructura:
Código
  1. import java.io.*;
  2. import java.io.PrintWriter;
  3. import javax.servlet.*;
  4. import javax.servlet.http.*;
  5. import java.lang.*;
  6.  
  7.  
  8. public class Color extends HttpServlet implements Servlet {
  9.    public void doGet (HttpServletRequest request,
  10.                        HttpServletResponse response)
  11.    throws ServletException, IOException {
  12.  
  13.    response.setContentType("text/html");
  14.    PrintWriter out = response.getWriter();    
  15.  
  16.    out.println( "Color seleccionado" );
  17. out.println
  18.  }  
  19. }

El problema es que he leído sobre el tema en manuales y webs varios (incluyendo códigos de ejemplo) y no consigo entender como hacer lo que me pide el enunciado. Si alguien me lo pudiera explicar se lo agradecería muchísimo.


« Última modificación: 12 Abril 2012, 14:56 pm por pequezere » En línea

pequezere

Desconectado Desconectado

Mensajes: 14



Ver Perfil
Re: Ayuda con Servlet
« Respuesta #1 en: 13 Abril 2012, 10:47 am »

No sé si me expliqué bien. Creo que lo que debo hacer es reescribir la URL en función de lo seleccionado en el formulario del html, pero no se como hacerlo.


En línea

pequezere

Desconectado Desconectado

Mensajes: 14



Ver Perfil
Re: Ayuda con Servlet
« Respuesta #2 en: 14 Abril 2012, 12:25 pm »

Hola

He conseguido que me funcione con el siguiente código:
Código
  1. import java.io.*;
  2. import java.io.PrintWriter;
  3. import javax.servlet.*;
  4. import javax.servlet.http.*;
  5. import java.lang.*;
  6.  
  7. public class Color extends HttpServlet implements Servlet {
  8.    String color;
  9.    public void doGet (HttpServletRequest request,
  10.       HttpServletResponse response)
  11. throws ServletException, IOException {
  12.  
  13. color=request.getParameter ("nombreColor");
  14.  
  15. response.setContentType ("text/html");
  16. PrintWriter out = response.getWriter ();
  17.  
  18. out.println ("<html>");
  19. out.println ("<body bgcolor=/"+color+">");
  20. out.println ("<h1>");
  21. out.println ("Ha seleccionado el color "+color+"");
  22. out.println ("</h1>");
  23. out.println ("</body>");
  24. out.println ("</html>");
  25.    }
  26. }

Sin embargo, al cambiar el color de fondo no coincide con el seleccionado ¿alguien me podría explicar por qué me ocurre esto? (el formulario no lo he modificado.
Gracias
En línea

Gallu

Desconectado Desconectado

Mensajes: 247



Ver Perfil
Re: Ayuda con Servlet
« Respuesta #3 en: 15 Abril 2012, 18:39 pm »

Le estás pasando el color en castellano , creo que ese es el problema, mejor si le asignas los colores en inglés o en RGB ...

Por otro lado , el enunciado dice que debes mirar si existe el atributo en la session, no en la request , con lo cual entiendo que lo que debes de hacer es lo siguiente :

1.- Recoger el parámetro de la request.
2.- Buscar en la session por el atributo buscado, y si existe, cambiar el color basándose en lo que recibes en la request.

Espero haberte ayudado.
Saludos.
En línea

Nadie alcanza la meta con un solo intento, ni perfecciona la vida con una sola rectificación, ni alcanza altura con un solo vuelo.
pequezere

Desconectado Desconectado

Mensajes: 14



Ver Perfil
Re: Ayuda con Servlet
« Respuesta #4 en: 16 Abril 2012, 11:15 am »

Citar
Le estás pasando el color en castellano , creo que ese es el problema, mejor si le asignas los colores en inglés o en RGB ...
También probé y no funcionaba, al parecer el problema era la / de ("<body bgcolor=/"+color+">");

De todas formas muchas gracias por tu ayuda :)

Dejo el código corregido por si a alguien más le sirve:
Código
  1. import java.io.*;
  2. import java.io.PrintWriter;
  3. import javax.servlet.*;
  4. import javax.servlet.http.*;
  5. import java.lang.*;
  6.  
  7. public class Color extends HttpServlet implements Servlet {
  8.    public void doGet (HttpServletRequest request,
  9.       HttpServletResponse response)
  10. throws ServletException, IOException {
  11.  
  12. String color=request.getParameter ("nombreColor");
  13.  
  14.  
  15. response.setContentType ("text/html");
  16. PrintWriter out = response.getWriter ();
  17.  
  18. out.println ("<html>");
  19. out.println ("<head>");
  20.  
  21. out.println ("</head>");
  22. out.println ("<body bgcolor="+color+">");
  23. out.println ("<h1>");
  24. out.println ("Ha seleccionado color");
  25. out.println ("</h1>");
  26. out.println ("</body>");
  27. out.println ("</html>");
  28.    }
  29. }
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
modificar un html. (ServLet en Visual Basic).
Programación Visual Basic
al3 1 1,679 Último mensaje 7 Enero 2006, 10:17 am
por sch3m4
Servlet (Connection Timeout)
Java
BlaineMonkey 4 4,726 Último mensaje 17 Junio 2010, 10:32 am
por BlaineMonkey
Servlet - Sesiones
Java
Kerber0 4 3,289 Último mensaje 8 Marzo 2011, 18:48 pm
por Kerber0
[solucionado] Ayuda para ejecutar servlet sin IDE
Java
jhonatanAsm 1 4,561 Último mensaje 1 Junio 2013, 17:40 pm
por jhonatanAsm
ejecutar un servlet
Programación General
azarzad 0 1,001 Último mensaje 4 Mayo 2015, 08:30 am
por azarzad
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines