2013-05-08 17 views
0

我在使用ajax追加內容div時遇到了問題。該servlet的響應將打印兩次。來自servlet的Ajax響應正在打印兩次

這是兩個頁面的代碼。

demo.jsp

<html> 
<head> 
    <script> 
     function run() 
     { 
      var content = document.getElementById("output"); 
      var xhr = new XMLHttpRequest(); 
      xhr.onreadystatechange = function() { 
        content.innerHTML += xhr.responseText; 
       } 
       xhr.open("POST", "demo", true); 
       xhr.send(null); 
     } 

    </script> 
</head> 
<body> 
    <input type="submit" value="Add Content" onclick="run();"/> 
    <div id="output">This is Static Text.</span><br> 
    </div> 
</body> 

DemoServlet

import java.io.IOException; 
import java.io.PrintWriter; 
import javax.servlet.ServletException; 
import javax.servlet.annotation.WebServlet; 
import javax.servlet.http.HttpServlet; 
import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 

@WebServlet(urlPatterns = {"/demo"}) 
public class Demo extends HttpServlet { 

    protected void processRequest(HttpServletRequest request, HttpServletResponse response) 
      throws ServletException, IOException { 
     response.setContentType("text/html;charset=UTF-8"); 
     PrintWriter out = response.getWriter(); 
     try { 
      /* TODO output your page here. You may use following sample code. */ 
      out.println("This is Dynamic Text<br>"); 
     } finally {    
      out.close(); 
     } 
    } 
} 

輸出 div的最終含量是:

這是靜態文本。

這是動態文本。

這是動態文本。

我無法理解動態文本爲什麼要打印兩次。

在此先感謝。

+0

如果你究竟瞭解如何使用'XMLHttpRequest'?我建議重新閱讀該資源或尋找更好的資源。 – BalusC 2013-05-08 19:39:10

回答