Ich habe hier ein Kommunikationsproblem zwischen meinem Java-Servlet und einer Ajax-Anfrage. weitere Informationen:Servlets und AJAX-Kommunikation
Absoluter Pfad zum index.html (einschließlich Javascript/Ajax-Request): http://localhost:9080/chat/index.html
im selben Ordner die Servlet: MyChat.class
und die Anforderung funktioniert wie dies:
var url = "http://localhost:9080/chat";
var name = document.getElementById ("Benutzername"). GetAttribute ("Wert"); var message = document.getElementById ("Nachricht"). GetAttribute ("Wert");
var tosend = Name + "," + Nachricht;
request.open ('GET', url, true); Anfrage.send (Tosend); request.onreadystatechange = interpretRequest;
Ich habe ein Formular, wo ein Benutzer nur den Namen und die Nachricht eingibt und "Benutzername" und "Nachricht" sind Tags in meiner HTML-Datei. Die Ajax-Anfrage funktioniert, das ist sicher, aber sie kommuniziert nicht mit dem Servlet. Ich habe auch keine Idee, wo die Ausgabe von System.out.println() geht. Keine Protokolldatei ist gefüllt ... Und das Servlet sieht so aus:
öffentliche Klasse MyChat erweitert HttpServlet { private statische endgültige lange serialVersionUID = 1L;
private ArrayList<String> myMessages = new ArrayList<String>();
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException
{
BufferedReader r = request.getReader();
while(r.readLine() != null)
{
// split the words at the ','
String[] tmp = r.readLine().split(".\\s");
myMessages.add(tmp[0]+" "+tmp[1]);
}
//response.setContentType("text/html");
PrintWriter out = response.getWriter();
Iterator<String> it = myMessages.iterator();
while(it.hasNext())
{
out.println(it.next());
System.out.println(it.next());
}
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException
{
doGet(request, response);
}
}
Versuchen Sie, das Servlet über die Adressleiste aufzurufen, um herauszufinden, ob das Problem im JavaScript oder Servlet liegt. (Etwas wie localhost: 9080/chat/index.html? Benutzername = Lenni) –
wird nicht funktionieren, weil ich den Benutzernamen von einem Eingabe-Tag bekomme. sieht so aus: – Andre
Nun, dann dumpfer es ein wenig und gib eine Hello World zurück und probiere das aus. –