我的 Java servlet 和 Ajax 请求之间确实存在通信问题。更多关于它:
index.html 的绝对路径(包括 JavaScript/Ajax 请求):http://localhost:9080/chat/index.html
在同一文件夹中的 servlet:
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 = interpretRequest;
我有一个公式,用户只需输入名称和消息,username
并且message
是<input>
我的 HTML 文件中的标签。Ajax 请求有效,这是肯定的,但它不与 servlet 通信。我也不知道输出的System.out.println()
去向。没有日志文件被填充... servlet 看起来像这样:
public class 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);
}
}