2011-03-28 110 views
-1

首先,我想知道我的方法是否正確。 我有存儲在xml文件中的產品。我將閱讀這個文件,並存儲產品,以便我可以將它傳遞給JSP頁面。這裏是我的Product.xml文件從servlet類讀取XML文件並在JSP頁面上顯示

我也想知道,我應該使用什麼樣的數據結構。由於在產品頁面上,我將爲每個產品都有一個ADD TO CART按鈕。

<inventory> 
<product> 
    <name>Dictionairy</name> 
    <description>Words from the English language</description> 
    <price>400</price> 

</product> 
<product> 
    <name>Calculator</name> 
    <description>solving numbers</description> 
    <price>1000</price> 

</product> 
<product> 
    <name>LCD</name> 
    <description>displaying output from computer</description> 
    <price>8000</price> 
</product> 
</inventory> 
+0

首先,使用XML文件作爲數據庫已經很糟糕。這是效率低下和內存佔用。有什麼特別的原因讓你無法使用SQL數據庫嗎? – BalusC 2011-03-28 13:25:49

回答

0

那麼,作爲一個快速射擊我會去含Product類代表所有可能的產品的集合類Inventory。然後有一個類Cart其中還可以包含產品(對產品的參考)以及數量(這可能實際上是一個CartPositionCart持有職位)。

請注意,Inventory應存儲在應用程序範圍內,因爲它似乎是爲每個客戶相同。請記住,對廣告資源的訪問權限可能需要進行同步,或者應至少鎖定/隱藏,直到完全閱讀。另一方面,Cart可能存儲在會話中。

另請注意,這是一個非常簡單的方法。做一個真正的商店涉及更多。

+0

是的,你是對的,我有一個類產品,CartItem持有的產品,和一個shoppingCart類contians從購物車添加/刪除項目的方法。我沒有庫存課。購物車需要嗎?我需要這個類來填充xml文件中的所有產品嗎?其次,我應該如何去閱讀xml文件中的產品,並在產品jsp頁面上顯示htem。我應該使用invetory類來填充產品或使用x:out並遍歷每個項目,或者使用其他方法。 – user478636 2011-03-28 09:33:14

+0

庫存本身不是強制性的,但我會推薦它作爲可用產品的中央存儲。它可以提供方法來查找產品,持有每個產品的庫存等。至於讀取XML:我不會那樣做每個請求或會話,因爲正如斯蒂芬指出的,這是相當重的。您應該在啓動時或者在它更改時讀取XML,並將結果對象存儲在應用程序範圍中(這是Inventory類的用途)。 – Thomas 2011-03-28 10:40:34

3

解析servlet中的XML並將其轉換爲JSP可以使用的內存數據結構聽起來相當沉重。

將XML傳遞給JSP然後解析並遍歷它聽起來更糟糕。

如果servlet正在提取猶太教的XML,並且渲染代碼的任務僅僅是過濾和渲染內容爲HTML,那麼您可能應該查看XSLT處理器而不是JSP來進行渲染。

的確,您甚至可以通過嵌入式處理指令在HTML響應中發送XML,以告訴客戶端使用哪些XSL ......如果需要的話。