2012-12-04 40 views
1

我想讓java servlet根據輸入做一些類似於while-do的情況。假設我讓它接收名爲UserInput的輸入並連續發佈名爲ProgramOutput的輸出,就像與程序聊天一樣。這是我的doPost代碼:java servlet重複發佈

 protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
    response.setContentType("text/html;charset=UTF-8"); 
    PrintWriter out=response.getWriter(); 
    String UserInput= request.getParameter("UserInput").toString(); 

    out.println("<html>"); 
    out.println("<head>"); 
    out.println("<title></title>"); 
    out.println("</head>"); 
    out.println("<body>"); 
    while (true){ 
    out.println(UserInput+ "<br>"); //this is the place where user type his/her words 
    out.println("<input type='submit' value='submit'>"); 
    request.getParameter("UserInput").toString(); 
     if ("stop".equals(UserInput)) //unless user type 'stop', program will keep printing the answer 
     break; 
    String ProgramOutput= engine.answer(UserInput); //from engine.java 
    out.println(ProgramOutput+"<br>");} 
    out.println("</body>"); 
    out.println("</html>"); 
    out.close(); 

當我試圖運行它,它從未停止打印相同的輸入和輸出,甚至沒有給用戶鍵入另一個詞,並檢查它。我該怎麼辦?

對不起,這是我第一次製作servlet,如果可能我想要一個容易理解的答案。提前致謝。

回答

0

您將VIEW和CONTROLLER混合在相同的代碼中。這不是一個好方法。 理想情況下,您應該有一個用於提供用戶輸入的jsp(VIEW),並在提交該頁時調用一個servlet(CONTROLLER),它將處理請求並將控制返回給jsp,以便用戶可以提供輸入。

會建議你閱讀MVC框架。