У меня есть проблема связи между моим сервлетом Java и запросом ajax. об этом подробнее:Сервлеты и связь AJAX
Абсолютный путь к index.html (включая запрос JavaScript/AJAX): http://localhost:9080/chat/index.html
В той же папке сервлета: MyChat.class
И запрос работает как это:
var url = "http://localhost:9080/chat";
var name = document.getElementById ("username"). GetAttribute ("value"); var message = document.getElementById ("message"). GetAttribute ("value");
var tosend = name + "," + message;
request.open ('GET', url, true); request.send (tosend); request.onreadystatechange = interpRequest;
У меня есть формуляр, в котором пользователь просто вводит имя, а сообщение и «имя пользователя» и «сообщение» - это теги в моем html-файле. Запрос ajax работает, это точно, но он не связывается с сервлетом. У меня также нет идеи, откуда идет вывод System.out.println(). Файл журнала не заполнен ... И сервлет выглядит так:
Публичный класс MyChat расширяет HttpServlet { приватный статический окончательный длинный 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);
}
}
Попробуйте вызвать сервлет из адресной строки, чтобы узнать, есть ли проблема в JavaScript или сервлете. (Что-то вроде localhost: 9080/chat/index.html? Username = Lenni) –
не будет работать, потому что я получаю имя пользователя из входного тега. выглядит следующим образом: – Andre
Ну, тогда просто немного опустите его и верните Hello World и попробуйте это. –