① 急求一個用java web編寫的購物車程序,期末考試要用。
查詢的資料,找到三種方法:
1.用cookie實現購物車;
2.用session實現購物車;
3.用cookie和資料庫(購物車信息持久化)實現購物車;
=========================================================================
分析一下這三種方法的優缺點:
1.單純有cookie實現購物車,這樣的購物車不是很理想,設想一下,如果客戶端的瀏覽器把cookie給禁用了,
這種方法就會在這里流產...
2.session中保存購物車的信息,這個只是在一個會話中可用,如果用戶沒有登錄,或者說登錄了以後,添加購物車,在關閉瀏覽器
或者登出後,之前所添加的購物車通通都流產啦...
其實每次遇到不會的都來求助是很不方便的
如果你想了解和學習更多的JAVA編程,成為一名真正的JAVA高手,你可以來這個裙,前面三個數是四二六 中間是三九六 後面是二八四
把這串數字連起來就可以了,這是一個高手的學習裙,在這里你可以學習到書上學不到的知識,還有大牛相互討論並指導你解答哦!
3.我這里要說就是這種方法啦.....
主要的流程:
A.用戶登錄前的數據流:用戶在沒有登錄系統的時候,對喜歡的商品進行添加購物車,那麼這個時候,我們可以把購物車信息保存
到cookie中,這里會涉及到cookie的添加,修改操作;也即如果之前在cookie中不存對應的cookie,則就對cookie進行添加操作。
如果在cookie中存在對應的cookie,那麼,這時候,就要對cookie進行修改操作了(這里涉及到用戶對同一個商品進行多次添加購物車的情況)。
B.用戶登錄後的數據流:用戶在登錄後,系統首先做的第一件事就是去獲取對應的cookies,如果存在相關的購物車cookies,那麼就對該購物車
信息進行相應用戶User的持久化操作,要麼添加,要麼修改。(添加操作:該用戶所對應的購物車如果沒有相應的信息進行添加操作;修改操作:類似的,
如果存在對應用戶的購物車信息,就進行修改操作)。用戶登錄後,也可以進行購物車的添加操作,不過,這里不是添加到cookie中,而是直接持久化到
資料庫中。註:用戶登錄後的數據都是和資料庫打交道。
===========================================
以上就是我的見解 如果有什麼不懂可以問我 想學習的童鞋秒懂 供參考 滿意請採納
② java web 項目,DAO層應該如何設計
DAO層一般有介面和該介面的實現類!
介面用於規范實現類!
實現類一般用於用於操作資料庫!用於對資料庫的增刪改查。
DAO層的實現類中一般操作
資料庫操作
的步驟很相似,可以抽取一個公共模版,封裝成一個公共DAO類
,進行資料庫操作時,直接傳遞參數來調用公共類DAO類!
③ java web開發時和model層里寫什麼內容
model 翻譯成中文叫模型層也叫實體層 是.net里使用的三層架構中的與資料庫中表對應的類
java中一般叫entity
里邊主要是實體類 也就是對應資料庫表中的類 每個表對應一個實體類 每個欄位對應實體類中的一個屬性
數據訪問層 Mvc 結構編程中訪問資料庫的層 一般連接資料庫 的代碼都寫在這里邊
④ javaweb中的DAO層怎麼寫
DAO層一般有介面和該介面的實現類! 介面用於規范實現類! 實現類一般用於用於操作資料庫! 一般操作修改,添加,刪除資料庫操作的步驟很相似,就寫了一個公共類DAO類 ,修改,添加,刪除資料庫操作時 直接調用公共類DAO類!
⑤ 我用Dreamweaver寫的html網頁放到MyEclipse裡面怎麼用java寫購物車的後台
後台就是一個javaweb程序
當你會javaweb了就會寫了
實現步驟應該是,
Action層處理請求
service層處理業務邏輯
層處理持久化(資料庫)
html或者JSP處理界面顯示
⑥ 購物車只顯示一次商鋪,然後在顯示該商鋪所有加入購物車的商品。 java邏輯怎麼寫 java邏輯怎麼寫
問題不太完整,首先購物車有很多種實現方法.常見的有cookie保存和資料庫保存.
其實不管是哪種保存方式,你的問題的本質解決方案其實就是一個數據聚合的過程.我們假設你是用的資料庫來保存購物車.你可以把購物車的展示拆解為兩個ajax介面.(我只寫偽代碼).
假設你的購物車表結構如下:
publicclassShopCartInfo{
privateShopInfoshopInfo;
privateList<ProctInfo>proctList;
//...getterandsetter
}
⑦ web應用 中的實現類在整個應用中可以只用一個實例么
的實現類一般不配置成單例模式,可以假設的想,如果把配置成單例,在web的生存周期它都存在,那麼在用的資源會太大,因為不只一兩個。一般,的實現類在需要的時候才生成調用。實現類是邏輯操作,不是存放數據的類,所以不會不安全。
單例模式的優點:
1。實例控制:單例模式防止其它對象對自己的實例化,確保所有的對象都訪問一個實例。
2。伸縮性:因為由類自己來控制實例化進程,類就在改變實例化進程上有相應的伸縮性。
根據它的優點:做成單例的一般是存放數據,而且是設計一系列操作的一個實體類或者其他類。比如:購物車;
⑧ 求商城購物車具體代碼,HTML5+CSS+php的,有沒有大神具體給一下或者思路
packagecom.xxx.service.impl;
importjava.sql.SQLException;
importjava.util.ArrayList;
importjava.util.List;
importcom.xxx..CartDAO;
importcom.xxx..impl.JdbcCartDAO;
importcom.xxx.entity.CartItem;
importcom.xxx.entity.Proct;
importcom.xxx.service.CartService;
{
List<CartItem>items=newArrayList<CartItem>();
//增加商品
publicbooleanadd(intid)throwsSQLException{
for(CartItemitem:items){
if(item.getPro().getId()==id){
//判斷是否購買過
if(item.isBuy()){
item.setQty(item.getQty()+1);
returntrue;
}
}
returnfalse;//資料庫出現錯誤,沒有該商品
}
CartItemitem=newCartItem();
CartDAO=newJdbcCartDAO();
Proctpro=.findById(id);
item.setPro(pro);
item.setQty(1);
item.setBuy(true);
returntrue;
}
//刪除商品
publicvoiddelete(intid)throwsSQLException{
for(CartItemitem:items){
if(item.getPro().getId()==id){
item.setBuy(false);
}
}
}
//恢復刪除的商品
publicvoidrecovery(intid)throwsSQLException{
for(CartItemitem:items){
if(item.getPro().getId()==id){
item.setBuy(true);
}
}
}
//更新商品數量
publicvoipdate(intid,intpnum)throwsSQLException{
for(CartItemitem:items){
if(item.getPro().getId()==id){
if(item.getQty()==0){
delete(id);
}else{
item.setQty(pnum);
}
}
}
}
//獲取購買過的商品
publicList<CartItem>getBuyPros()throwsSQLException{
List<CartItem>list=newArrayList<CartItem>();
for(CartItemitem:items){
if(item.isBuy()){
list.add(item);
}
}
if(list.size()>0){
returnlist;
}
returnnull;
}
//獲取已經刪除的商品(可以恢復)
publicList<CartItem>getDelPros()throwsSQLException{
List<CartItem>list=newArrayList<CartItem>();
for(CartItemitem:items){
if(!item.isBuy()){
list.add(item);
}
}
if(list.size()>0){
returnlist;
}
returnnull;
}
//商品消費總額
publicdoublecost()throwsSQLException{
doubletotal=0;
for(CartItemitem:items){
if(item.isBuy()){
total+=item.getQty()*item.getPro().getPrice();
}
}
returntotal;
}
//清空購物車
publicvoidclear()throwsException{
items.clear();
}
}
⑨ java購物車怎麼寫
用Vector 或者是HashMap去裝
<下面有部分代碼你去看吧>
package com.aptech.restrant.DAO;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.sql.Connection;
import com.aptech.restrant.bean.CartItemBean;
import com.aptech.restrant.bean.FoodBean;
public class CartModel {
private Connection conn;
public CartModel(Connection conn) {
this.conn=conn;
}
/**
* 得到訂餐列表
*
* @return
*/
public List changeToList(Map carts) {
// 將Set中元素轉換成數組,以便使用循環進行遍歷
Object[] foodItems = carts.keySet().toArray();
// 定義double變數total,用於存放購物車內餐品總價格
double total = 0;
List list = new ArrayList();
// 循環遍歷購物車內餐品,並顯示各個餐品的餐品名稱,價格,數量
for (int i = 0; i < foodItems.length; i++) {
// 從Map對象cart中取出第i個餐品,放入cartItem中
CartItemBean cartItem = (CartItemBean) carts
.get((String) foodItems[i]);
// 從cartItem中取出FoodBean對象
FoodBean food1 = cartItem.getFoodBean();
// 定義int類型變數quantity,用於表示購物車中單個餐品的數量
int quantity = cartItem.getQuantity();
// 定義double變數price,表示餐品單價
double price = food1.getFoodPrice();
// 定義double變數,subtotal表示單個餐品總價
double subtotal = quantity * price;
// // 計算購物車內餐品總價格
total += subtotal;
cartItem.setSubtotal(subtotal);
cartItem.setTotal(total);
list.add(cartItem);
}
return list;
}
/**
* 增加訂餐
*/
public Map add(Map cart, String foodID) {
// 購物車為空
if (cart == null) {
cart = new HashMap();
}
FoodModel fd = new FoodModel(conn);
FoodBean food = fd.findFoodById(foodID);
// 判斷購物車是否放東西(第一次點餐)
if (cart.isEmpty()) {
CartItemBean cartBean = new CartItemBean(food, 1);
cart.put(foodID, cartBean);
} else {
// 判斷當前菜是否在購物車中,false表示當前菜沒有被點過。。
boolean flag = false;
// 得到鍵的集合
Set set = cart.keySet();
// 遍歷集合
Object[] obj = set.toArray();
for (int i = 0; i < obj.length; i++) {
Object object = obj[i];
// 如果購物車已經存在當前菜,數量+1
if (object.equals(foodID)) {
int quantity = ((CartItemBean) cart.get(object))
.getQuantity();
quantity += 1;
System.out.println(quantity);
((CartItemBean) cart.get(object)).setQuantity(quantity);
flag = true;
break;
}
}
if (flag == false) {
// 把當前菜放到購物車裡面
CartItemBean cartBean = new CartItemBean(food, 1);
cart.put(foodID, cartBean);
}
}
return cart;
}
/**
* 取消訂餐
*/
public Map remove(Map cart, String foodID) {
cart.remove(foodID);
return cart;
}
/**
* 更新購物車信息
*
* @param cart
* @param foodID
* @return
*/
public Map<String, CartItemBean> update(Map cart, String foodID,
boolean isAddorRemove) {
Map map;
if (isAddorRemove) {
map = add(cart, foodID);
} else {
map = remove(cart, foodID);
}
return map;
}
}
⑩ 這段代碼是什麼意思 有關於購物車的
DAO你知道是什麼吧,就是進行資料庫操作的類對象(增刪改查),
ShopingCartDAO就是購物車相關的資料庫操專作類對象(或介面屬),
代碼的意思就是從頁面的session(會話)里取出這個對象,如果會話里不存在就創建一個。
這是誰寫的代碼哦,雖然從程序運行上沒問題,但是從業務邏輯上問題很大。
DAO對象說什麼也不應該放到session里,session是保存在伺服器端的一個共享內存,一般用於同一用戶不同頁面之間關鍵信息存儲,這個對伺服器內存是有消耗的,不應該存一些無用的東西。
所以你這里session應該存的是購物車ShoppingCart本身,而不是DAO對象。
另外,再說一句,購物車英文拼錯了,是ShoppingCart,不是ShopingCart