URGE Vuelta de HTML al Servlet Java

Estoy trabajando con J2EE y me ha surgido un problema URGENTE.
He creado un Servlet que conecta con un HTML (me debe devolver dos variables) pero la vuelta del HTML se hace cuando se cumpla un condición if (condición), no hay botón ENVIAR.
Me explico un poco mejor:
El servlet realiza un cálculo con dos variables que son TOTAL y ACIERTOS.
Estas variables se obtiene de un "ejercicio.html", que se calcula al interactuar en la página.
Cuestión IMPORTANTE:
El envío del HTML hacia el Servlet se debería hacer con un botón tipo ENVÍO
<form action="index.jsp" method="post">
    <input type="submit" value="ENVIO"/>
Pero por la limitación del HTML, esto no se puede hacer, y la vuelta al Servlet se debe hacer si se cumple la condición:
if (TOTAL==ACIERTO){
    VOLVER AL SERVLET CON LOS DOS VALORES
}
Gracias de antemano y estas páginas son las que hacen grande la informática y sus gentes.

1 respuesta

Respuesta
1
No he entendido la dinámica de tu aplicación. ¿Podrías numerar de uno en uno los pasos que sigues, es decir, quién llama a quién? No le veo ningún sentido que un servlet invoque a una página HTML. El flujo correcto es más bien al contrario. Por favor, intenta explicar un poco mejor lo que quieres hacer porque no lo entiendo.
Hola Expertos, estoy trabajando con J2EE y me ha surgido un problema URGENTE.
He creado un Servlet que conecta con un HTML (me debe devolver dos variables) pero la vuelta del HTML se hace cuando se cumpla un condición if (condición), no hay botón ENVIAR.
Me explico un poco mejor:
El servlet realiza un cálculo con dos variables que son TOTAL y ACIERTOS.
Estas variables se obtiene de un "ejercicio.html", que se calcula al interactuar en la página.
Cuestión IMPORTANTE:
El envío del HTML hacia el Servlet se debería hacer con un botón tipo ENVÍO
<form action="index.jsp" method="post">
    <input type="submit" value="ENVIO"/>
Pero por la limitación del HTML, esto no se puede hacer, y la vuelta al Servlet se debe hacer si se cumple la condición:
if (TOTAL==ACIERTO){
    VOLVER AL SERVLET CON LOS DOS VALORES
}
Gracias de antemano y estas páginas son las que hacen grande la informática y sus gentes.
Gracias por tu interés Carlos. LLevo poco tiempo trabajando con Servlet, y te comento mejor lo que necesito a ver si se puede hacer y me pueden ayudar.
La aplicación es un tutoríal de matemáticas para niños con problemas de aprendizaje
Te comento como funciona:
Index.html (llama a otra página html) Página de presentación
Enducar.html (llama al servlet) Esta contiene la opción de educar a un alumno (ID)
        Servlet_Educar.java Carga los datos del alumno y le asigna un ejercicio
              ejercicio_1_5.html Es el ejercicio asignado, al alumno
Además ejercicio_1_5.html tiene que devolver dos variables internas. "Número de aciertos" tenidos y otra variable que se llama "total"
Hay 100 ejercicios y necesito que devuelva las dos variables para almacenarla en la base de datos MySQL.
Lo normal sería poner un BOTÓN para devolver el control a quien llamó a ejercicio_1_5.html en este caso es el Servlet_Educar.java que es quien recibe las variables "Número de aciertos" y "total".
Tengo la limitación, NO PUEDO PONER EL BOTÓN en el ejercicio_1_5.html, y tengo que devolver el control al Servlet_Educar cuando se cumpla la condición.
"Número de aciertos" = 4
¿Se puede hacer? ¿Cómo se puede hacer? ¿Hay otro forma mejor?
Espero haberme explicado mejor. A ver si me pueden ayudar
Un saludo y gracias.
De acuerdo, ya te he entendido. La opción que te propongo es la siguiente:
1) En la página ejercicio_1_5.html, crea un formulario con los cuatro campos ocultos que quieres mandar, entre ellos el código del ejercicio al que corresponde la página (en este caso el 5), y el código del alumno, que lo tendrás que meter dinámicamente dentro del servlet "Servlet_Educar", cuando generes la página con el ejercicio.
<form name="formularioAciertos" method="post" action="/servlet/Servlet_GuardaResultados">
<input type="hidden" name="CODIGO_EJERCICIO" value="5"></input>
<input type="hidden" name="CODIGO_ALUMNO" value="111"></input>
<input type="hidden" name="ACIERTOS"></input>
<input type="hidden" name="INTENTOS"></input>
</form>
2) En el
<head>
mete este script:

<script>

<span style="white-space: pre;"> </span>var numIntentos;
<span style="white-space: pre;"> </span>var numAciertos;
<span style="white-space: pre;"> </span>function testAciertos(){
<span style="white-space: pre;"> </span>//Aquí tu código para calcular los aciertos e intentos;
<span style="white-space: pre;"> </span>var formulario = document.forms.formAciertos;
<span style="white-space: pre;"> </span>if (numAciertos>=4){
<span style="white-space: pre;"> </span>formulario.ACIERTOS.value=numAciertos;
<span style="white-space: pre;"> </span>formulario.INTENTOS.value=numIntentos;
<span style="white-space: pre;"> </span>formulario.submit()
<span style="white-space: pre;"> </span>}
<span style="white-space: pre;"> </span>}
</script>

3) Cuando el alumno elija una respuesta, tendrás que llamar a testAciertos() para que se compruebe el número de aciertos y en el caso de que sean cuatro o más, se haga el submit del formulario.
4) Implementa el servlet "Servlet_GuardaResultados", para recibir los parámetros del formulario. Como ves, es un servlet diferente al que ya tenías, para que el código te quede más claro: Por una parte, el servlet que genera el ejercicio, y por otra el que procesa los resultados.
Si tienes más problemas o necesitas más apoyo no dudes en preguntarme, ya que la causa lo merece. Si vieras la de gente que me escribe para que le solucione los ejercicios de la universidad...
Una cosa: ignora los <span style="white-space: pre;"></span>. Los mete el editor de Todoexpertos cuando meto un tabulador.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas