2015-11-16 28 views
0

我做了一個Hello World servlet,它工作正常的Java servlet不會受代碼變化

@WebServlet("/HelloWorld") 
public class HelloWorld extends HttpServlet { 
private static final long serialVersionUID = 1L; 

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
    // TODO Auto-generated method stub 
    response.setContentType("text/html"); 
    PrintWriter out = response.getWriter(); 
    out.print("<html><body>"); 
    out.print("<h3>Hello World</h3>"); 
    out.print("</body></html>"); 
} 

}

當我(在本地主機的Apache Tocmat 8.0)在服務器上運行它,我獲得所需的響應(一個html頁面顯示「Hello World」)。

這是什麼奇怪。之後,我在代碼中

out.print("<html><body>"); 
    out.print("<h3>Not a hello world servlet anymore!</h3>"); 
    out.print("</body></html>"); 

的變化,我保存在服務器上再次運行(重新啓動服務器),我不得到修改後的html頁面,仍然可以得到舊的(「Hello World」的頁面)。

通過關閉eclipse並重新啓動它可以解決此問題。之後,當我在服務器上運行我的servlet時,我得到了所需的響應(「不是一個hello world servlet了!」)。

我該如何做到這一點,所以我不必重新啓動eclipse以使我的更改生效?

+0

在重新啓動之前是否清除服務器?它可能會緩存您的信息,這是可能的原因之一 –

+0

@ m.aibin我已清理服務器,問題仍然存在 –

+0

請看上面的重複問題。 –

回答

0

當Eclipse構建您的項目時,它會覆蓋還是將.class文件移動到Web服務器的WEB-INF/classes目錄中? 這對於在運行的WebApp實例上執行代碼更改很有必要