2012-09-20 71 views
0

我使用Java創建一個Web應用程序。我很新的這一點,我有以下問題:初學者查詢有關的Java Web應用程序

  1. jsp文件前端。現在,無論何時我必須做一個龐大的後端函數,我都可以創建一個servlet並從jsp獲取請求,或者我可以創建一個簡單的java對象,在jsp中實例化它並將其用於支持的函數。 哪一個更好?爲什麼?

  2. 每個後端功能需要連接到數據庫。我想只爲整個會話的用戶和所有jsp頁面執行一次。它是如何完成的?

+0

我不知道是否有人能給出一個明確的前面回答了這個問題。這兩點比編程問題更像軟件架構問題,每個架構都有其優點和缺點。 「連接到數據庫」還取決於您使用的數據庫,通常該應用程序只連接一次數據庫,而不是用戶本身。我會建議編寫一些示例應用程序,以瞭解您認爲哪種方式最好。當你有更具體的問題時,我們能夠更好地幫助你。 – Uooo

回答

0

問題1:

如果不需要的servlet爲什麼要用它?只需在一個普通的Java類中完成笨重的工作。通過這種方式,您將在您的工作流程中擁有更少的依賴性。

問題2:

大多數應用服務器現在已經建立了連接池的支持。強烈建議您使用此功能。現在,你有很多方法可以繼續前進。最簡單的和IMO最好的方法是創建一個數據庫相關的對象,它將處理連接打開/關閉,執行更新/刪除/選擇功能,並通過你的應用程序使用這個

2
  1. 這兩個的都不是。閱讀關於MVC模式。使來自瀏覽器的每個請求都轉到servlet。使這個servlet調用服務的後端,並填充存儲在請求屬性中的Java Bean。然後將請求分派給JSP。 JSP的唯一職責應該是從請求中的bean中獲取數據並生成頁面的HTML標記(藉助JSTL和自定義標記,無腳本)。

  2. 數據庫連接不應被保留給單個用戶。如果您有1000個併發用戶每30秒執行一次請求,則您需要1000個連接,大部分時間保持空閒狀態。這不僅僅是數據庫可以支持的,而且這些連接可能會超時或失敗。閱讀關於連接池的信息,然後使用一個:每個需要連接的請求都從池中獲取一個請求,完成它的工作,然後關閉連接,實際上將連接返回到它所來自的池中,以準備爲另一個請求提供服務。

+0

用於術語數據庫連接,我實際上使用用戶憑據連接到web服務,所以我需要爲每個用戶執行一次 – vishesh

0

我認爲,如果你選擇框架,比如Spring(你可以找到一個教程列表here),你最終將得到更乾淨的JSP文件和更結構化的項目。春天也應該阻止你重新發明輪子,並從頭開始一切。

至於你的第二個問題,我不明白你的問題。如果你想爲每個用戶打開一個連接,那麼你將會消耗可用於其他更有用的事物的資源。這樣一個系統也將不是放大。爲此,我建議另一個框架,Hibernate你可以在你的數據訪問層使用(閱讀更多有關MVC(模型 - 視圖 - 控制器)設計模式here)來管理數據庫事務。