Сервлеты и связь AJAX - PullRequest
       15

Сервлеты и связь AJAX

0 голосов
/ 26 июня 2009

У меня есть проблема со связью между моим Java-сервлетом и запросом AJAX. Подробнее об этом:

Абсолютный путь к index.html (включая запрос javascript / ajax): http://localhost:9080/chat/index.html

В этой же папке сервлет: MyChat.class

И запрос работает так:

var url = "http://localhost:9080/chat";

var name = document.getElementById ("имя пользователя"). GetAttribute ("значение"); var message = document.getElementById ("message"). getAttribute ("value");

var tosend = name + "," + message;

request.open ('GET', url, true); request.send (ToSend); request.onreadystatechange = interpretRequest;

У меня есть формула, где пользователь просто вводит имя и сообщение, а "username" и "message" - это теги в моем html-файле. Несомненно, запрос ajax работает, но он не взаимодействует с сервлетом. У меня также нет идеи, куда идет вывод из System.out.println (). Файл журнала не заполнен ... И сервлет выглядит так:

открытый класс MyChat расширяет HttpServlet { приватный статический финал 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);
}

}

1 Ответ

2 голосов
/ 26 июня 2009

Указанный вами URL не относится к вашему сервлету.

Так же, как URL-адрес страницы индекса равен http://<server>:<port>/<webapp name>/<resource> URL-адресу вашего сервлета требуется сопоставление в файле web.xml, которое соответствует части <resource> URL-адреса.

Например, если у вас есть сервлет контроллера, вы должны ожидать что-то вроде следующего в вашем файле web.xml:

<servlet>
  <servlet-name>controller</servlet-name>
  <servlet-class>ControllerServlet</servlet-class>
</servlet>

<servlet-mapping>
  <servlet-name>controller</servlet-name>
  <url-pattern>/*.do</url-pattern>
</servlet-mapping>

URL-адреса, которые будут вызывать сервлет 'controller', будут затем иметь вид http://<server>:<port>/<webapp name>/<anything>.do.

...