J'ai un problème de communication entre ma servlet java et une requête ajax. plus à ce sujet:Servlets et communication AJAX
chemin absolu du index.html (y compris javascript/ajax demande): http://localhost:9080/chat/index.html
Dans le même dossier servlet: MyChat.class
Et la demande travaille comme ceci:
var url = "http://localhost:9080/chat";
var nom = document.getElementById ("nom d'utilisateur"). GetAttribute ("valeur"); var message = document.getElementById ("message"). GetAttribute ("valeur");
var tosend = nom + "," + message;
request.open ('GET', url, true); request.send (tosend); request.onreadystatechange = interpretRequest;
J'ai un formulaire où un utilisateur tape simplement le nom et le message et "nom d'utilisateur" et "message" sont des balises dans mon fichier html. La requête ajax fonctionne, c'est sûr, mais elle ne communique pas avec le servlet. Je n'ai pas non plus une idée de la sortie de System.out.println(). Aucun fichier journal n'est rempli ... Et la servlet ressemble à ceci:
Classe publique MyChat extends HttpServlet { private static final long 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);
}
}
Essayez d'appeler le servlet depuis la barre d'adresse pour savoir si le problème est dans le JavaScript ou le servlet. (Quelque chose comme localhost: 9080/chat/index.html? Nom d'utilisateur = Lenni) –
ne fonctionnera pas parce que je reçois le nom d'utilisateur à partir d'un tag d'entrée. ressemble à: – Andre
Eh bien, alors il suffit de l'abaisser un peu et de retourner un Hello World et essayer cela. –