Java - HttpServlet ¿Que estoy haciento mal?

 
Vista:

HttpServlet ¿Que estoy haciento mal?

Publicado por Jordi (135 intervenciones) el 02/02/2018 21:52:52
Llevo dos dias leyendo sobre el funcionamiento de los Servlets y hoy me he decidido a hacer uno para practicar.
Hasta aquí todo perfecto, en los foros explicaban que con un script que use un objeto XMLHttpRequest y un HttpServlet Java que sobreescriba el método doGet se hace un feedback cliente-servidor.
Pues nada, que hago la clase Java que sobreescribe el método, hago un pequeño código HTML con su script de JavaScript siguiendo al pie de la letra los pasos que recomiendan en los foros y por ahora empiezo peor de lo que me imaginaba.
Mi método main crea el HttpServlet y en vez de esperar a recibir la "request" directamente el programa se termina.
He intentado hacerle esperar unos segundos por si de cuestiones de tiempo se tratara pero nada. Pulso el botón en la pagina web y no recibo nada por parte del Servlet.
No sé que estoy haciendo mal, he buscado pero Google solo me lleva a más tutoriales sobre como hacer Servlets: sobreescribir doGet :(

Me estoy dejando algo? Lo único que se me ocurre es que haga falta algún tipo de socket que redirija la petición al Servlet, pero como digo, no he encontrado información.
Os adjunto el código que tengo no sea que haya algún error tonto:

HTML y JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Servlet Comunication</title>
</head>
<body>
<button id="Displayer" onclick="comunicate()">Push me to talk</button>
<p id="DisplayZone"></p>
<script>
function comunicate() {
	var xhr = new XMLHttpRequest();
	var dz = document.getElementById("DisplayZone");
	dz.innerHTML="Recived text: ";
	if(xhr.readyState == XMLHttpRequest.DONE) {
		xhr.onreadystatechange = function() {
			dz.innerHTML=xhr.responsetext;
		}
	}
	xhr.open('GET', 'localhost', true);
	xhr.send(null);
}
</script>
</body>
</html>

Código Java que crea el objeto HttpServlet y lo inicia.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
package SvDevelopment;
 
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
 
public class SvGenerator {
	public static void main(String[] args) {
		HttpServlet sv = new TestConnection();
		try {
			sv.init();
		} catch (ServletException e) {
			e.printStackTrace();
		}
		Thread wait = new Thread() {
			@Override
			public void run() {
				try {
					System.out.println("Esperando...");
					Thread.sleep(100000);
					System.out.println("Tiempo de espera agotado");
				} catch (InterruptedException e) {
					e.printStackTrace();
				}
			}
		};
		wait.start();
	}
}
class TestConnection extends HttpServlet {
	private static final long serialVersionUID = 1L;
	@Override
	protected void doPost(HttpServletRequest request, HttpServletResponse response) {
		response.setContentType("text/html");
		try {
			response.getWriter().println("Hello HTML World from a Java Servlet!");
		} catch (IOException e) {
			e.printStackTrace();
		}
		System.out.println("Trabajo del servlet finalizado");
	}
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

HttpServlet ¿Que estoy haciento mal?

Publicado por Jordi (135 intervenciones) el 05/02/2018 15:32:13
Muchas gracias, resulta que hace falta tener el servidor instalado y yo estaba tratando de ejecutar el código sin el servidor.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar