【问题标题】:Acess java servlet from an ajax request从 ajax 请求访问 javax servlet
【发布时间】:2013-07-03 20:56:49
【问题描述】:

我从未使用过 ajax,也不知道我是否做对了。我写了一些代码来测试我是否可以使用 ajax 访问 java servlet,但它不起作用。

在脚本中:

 var xmlhttp=new xmlHttpRequest();
     xmlhttp.onreadystatechange=function()
      {
      if (xmlhttp.readyState==4 && xmlhttp.status==200)
        {
        document.write=xmlhttp.responseText;
        }
      };
     xmlhttp.open("GET", "http://localhost:8080/timer/timer, true);
     xmlhttp.send();
 }

在我的 servlet 中:

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    //code
    PrintWriter out=response.getWriter();
    out.println("hi");

我在这里要做的就是写“嗨”。我做错了什么?
感谢您的帮助!

【问题讨论】:

  • 您在客户端收到任何错误吗?可能在 JS 控制台中
  • 你必须刷新并关闭 writer:
  • @Ilya 不,我不这么认为
  • @MarvinEmilBrach 你能解释一下吗?我不确定那是什么意思。
  • 这是直接复制粘贴的吗?您在 open 的第二个参数上缺少右引号。

标签: java ajax servlets


【解决方案1】:

写入java.io.Writer 后,您必须执行flush() 内部缓冲区才能执行IO 级别的操作。毕竟写一个流应该总是关闭,以释放资源:

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    //code
    PrintWriter out=response.getWriter();
    out.println("hi");
    out.flush(); 
    out.close();

}

http://docs.oracle.com/javase/6/docs/api/java/io/Writer.html#flush%28%29

【讨论】:

    猜你喜欢
    • 2012-04-11
    • 1970-01-01
    • 1970-01-01
    • 2012-07-25
    • 2021-07-10
    • 2012-02-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多