2013-04-07 61 views
0

我在使用AJAX設計簡單的MVC(從頭開始)時遇到問題。我正在使用Servlets,HTML和JQuery。Ajax與MVC在Java設計問題?

根據架構和標準,我們應該使用request.forward()在處理後轉移到另一個頁面來顯示輸出/錯誤,我們也不應該在Servlet中使用System.out.println()。

  1. 我必須使用AJAX,所以我不能改變的頁面,這意味着request.forward()不能使用:

    我的問題。

  2. 我必須使用Servlet中的System.out.println()將數據從Servlet傳輸到AJAX調用,然後解析它。

問:

  1. 如何獲得數據和Servlet爲Javascript在我的方法?
  2. 我沒有關注MVC,因爲Servlet沒有使用request.forward()。我如何在我的情況下使用它?

注:

我知道JSP和Struts等其他方法,但能不能請幫助我與我的做法?

+0

我相信你可以在JSP中使用request.forward(),並且整個JSP內容(編譯並運行生成HTML)將返回到你的Ajax響應中的網頁。我經常使用它,它像一個魅力。糾正我,如果我誤解你的問題。 希望這有助於。 – Sid 2013-04-07 18:13:16

+0

感謝回覆, 我使用json進行數據傳輸,我想用這種方式,我的問題將得到解決 – Lovin 2013-04-08 16:52:35

回答

0

如果目標是將數據(例如JSON或XML)從servlet發送到JavaScript,那麼您不需要任何JSP。在這種情況下,視圖完全在客戶端處理。通常的方法是使用Java bean來存儲要發送的數據,將此bean編組爲JSON或XML,然後將JSON或XML發送給響應編寫器。

如果目標是將HTML發送到JavaScript(例如,發送頁面的一部分以進行刷新),那麼您可以將請求轉發到僅生成此HTML部分的JSP,而不是整個新一頁。

最後,它取決於AJAX回調函數從響應中獲取數據或HTML並更新HTML頁面。

+0

在這裏,我對第一種方法感到困惑。如果你說使用響應編寫器,意味着直接在servlet中生成輸出(意味着使用out.prinltn()),但根據我的理解,它不是按照MVC,並且它創造了通過例外視圖的機會。糾正我,如果我錯了。 – Lovin 2013-04-08 17:00:22