當前位置:首頁 » 購物大全 » session如何實現購物車

session如何實現購物車

發布時間: 2021-01-24 04:03:47

① php怎麼用session做購物

class cart
{
/**
* 函數名稱: addItem
* 函數功能: 添加商品
* 輸入參數: $data ------------- 商品數組
* 函數返回值: none
* 其它說明: 因為數據是記錄在session中,所以不用返回
*/
function addItem($data){
global $config_ke;
if(is_array($data)&&!empty($data)){
foreach($data as $key=>$val){
// 如果商品存在就加數量和價格
if($this->_isExists($key)){

$_SESSION['cart'][$key]["paddy_count"] += $val['paddy_count'];
$_SESSION['cart'][$key]["market_count"] += $val['market_count'];
$_SESSION['cart'][$key]["goodsnum"] += intval($val['goodsnum']);
$arr = $this->getItems($key);
// $_SESSION['cart'][$key]["count"] += $_SESSION['cart'][$key]["price"];
/* if(strlen($_SESSION['cart'][$key]["ke"])>0){//沒有刻字,加入刻字
$_SESSION['cart'][$key]["eng_price"]=0;
$_SESSION['cart'][$key]["eng_price"]=(int)$config_ke*intval($arr['num']);
}else{
//die("dd");
$_SESSION['cart'][$key]["eng_price"]=0;
}*/
//echo $arr['num'];
//die();

}
// 否則直接加入
else
{
$_SESSION['cart'][$key] = $data[$key];
// $_SESSION['cart'][$key]["name"] = $val['name'];
// $_SESSION['cart'][$key]["price"] = $val['price'];
// $_SESSION['cart'][$key]["count"] = round($val['price']*intval($val['num']),2);
// $_SESSION['cart'][$key]["num"] = intval($val['num']);
}
}
}
}

/**
* 函數名稱: _isExists
* 函數功能: 判斷此商品是否存在
* 輸入參數: $id ---------- 商品ID
* 函數返回值: bool
* 其他說明: 2004-8-19
*/
function _isExists($id)
{

if(isset($_SESSION['cart'][$id])&&!empty($_SESSION['cart'][$id])&&array_key_exists($id,$_SESSION['cart']))
{
Return true;
}
else
{
Return false;
}
}

/**
* 函數名稱: modItem
* 函數功能: 修改商品數量
* 輸入參數: $id -------------- 商品ID
* $num ------------- 商品數量
* 函數返回值: 返回值說明
* 其他說明: 說明
*/
function modItem($id,$num)
{
$arr = $this->getItems($id);
// 如果商品存在就加數量和價格
if($this->_isExists($id))
{
$_SESSION['cart'][$id]["goodsnum"] = intval($num);
if($arr['paddy_price_special'] > "0"){
$_SESSION['cart'][$id]["paddy_count"] = round($arr['paddy_price_special']*intval($num),2);
}elseif($arr['paddy_userprice'] > "0"){
$_SESSION['cart'][$id]["paddy_count"] = round($arr['paddy_userprice']*intval($num),2);
}elseif($arr['paddy_spreadprice'] > "0"){
$_SESSION['cart'][$id]["paddy_count"] = round($arr['paddy_spreadprice']*intval($num),2);
}else{
$_SESSION['cart'][$id]["paddy_count"] = round($arr['paddy_price']*intval($num),2);
}
$_SESSION['cart'][$id]["market_count"] = round($arr['market_price']*intval($num),2);
}
}

/**
* 函數名稱: modItem_wanwei
* 函數功能: 修改商品腕圍
* 輸入參數: $id -------------- 商品ID
* $num ------------- 商品腕圍
* 函數返回值: 返回值說明
* 其他說明: 說明
*/
function modItem_wanwei($id,$wanwei)
{
$arr = $this->getItems($id);
// 如果商品存在就加數量和價格
if($this->_isExists($id))
{
$_SESSION['cart'][$id]["wanwei"] = intval($wanwei);

///$_SESSION['cart'][$id]["count"] = round($arr['price']*intval($num),2);
}
}

// function modItem_ke($id,$ke)
// {
// global $config_ke;
// $arr = $this->getItems($id);
// // 如果商品存在就加數量和價格
// if($this->_isExists($id))
// {
// $_SESSION['cart'][$id]["ke"] = $ke;
// $_SESSION['cart'][$id]['price'] = $arr['price'] + $config_ke;
// $_SESSION['cart'][$id]['count'] = round($_SESSION['cart'][$id]['price']*intval($arr['num']),2);
// }
// }

function modItem_ke($id,$ke,$ke1="",$ke2="")
{
global $config_ke;
$arr = $this->getItems($id);
// 如果商品存在就加數量和價格
//var_mp($_SESSION['cart']);
// die();
if($this->_isExists($id))
{
if(strlen($_SESSION['cart'][$id]["ke"]) == 0 && strlen($ke) != 0){//沒有刻字,加入刻字
//$arr['price'] += $config_ke;
$_SESSION['cart'][$id]["eng_price"]=0;
$_SESSION['cart'][$id]["eng_price"]=(int)$config_ke*intval($arr['num']);
//$_SESSION['cart'][$id]["price"] = $arr['price'];
// $_SESSION['cart'][$id]["count"] = round($arr['price']*intval($arr['num']),2);
$_SESSION['cart'][$id]["ke"] = $ke;
$_SESSION['cart'][$id]["ke1"] = $ke1;
$_SESSION['cart'][$id]["ke2"] = $ke2;
///$_SESSION['cart'][$id]["count"] = round($arr['price']*intval($num),2);
}elseif(strlen($_SESSION['cart'][$id]["ke"]) != 0 && strlen($ke) == 0){//有刻字,去除刻字
$_SESSION['cart'][$id]["eng_price"]=0;
//$_SESSION['cart'][$id]["eng_price"]-=(int)$config_ke*intval($arr['num']);
// $_SESSION['cart'][$id]["eng_price"]-=$config_ke;
//$_SESSION['cart'][$id]["price"] = $arr['price'];
//$_SESSION['cart'][$id]["count"] = round($arr['price']*intval($arr['num']),2);
$_SESSION['cart'][$id]["ke"] = $ke;
$_SESSION['cart'][$id]["ke1"] = $ke1;
$_SESSION['cart'][$id]["ke2"] = $ke2;
}elseif(strlen($_SESSION['cart'][$id]["ke"]) != 0 && strlen($ke) != 0){//有刻字,更改刻字
//$_SESSION['cart'][$id]["count"] = round($arr['price']*intval($arr['num']),2);
//$_SESSION['cart'][$id]["eng_price"]=0;
$_SESSION['cart'][$id]["eng_price"]=(int)$config_ke*intval($arr['num']);

$_SESSION['cart'][$id]["ke"] = $ke;
$_SESSION['cart'][$id]["ke1"] = $ke1;
$_SESSION['cart'][$id]["ke2"] = $ke2;
}
}
}

/**
* 函數名稱: getItems
* 函數功能: 取得商品數組
* 輸入參數: $id --------------- 某商品的ID
* 函數返回值: array
* 其它說明: 2004-8-19
*/
function getItems($id=null)
{
if(isset($_SESSION['cart']))
{
if($id==null)
{
//print_r($_SESSION['cart']);exit;
Return $_SESSION['cart'];
}
else
{
Return $_SESSION['cart'][$id];
}
}
}

/**
* 函數名稱: emptyItem
* 函數功能: 刪除商品
* 輸入參數: $id ----------- 商品ID
* 函數返回值: bool
* 其它說明: 2004-8-19
*/
function emptyItem($id=null)
{
if($id==null)
{
unset($_SESSION['cart']);
}
else
{
unset($_SESSION['cart'][$id]);
}
}

/**
* 函數名稱: sum
* 函數功能: 統計總價
* 輸入參數: none
* 函數返回值: int
* 其它說明: 2004-8-19
*/
function sum()
{
$total = 0;
if(isset($_SESSION['cart'])&&!empty($_SESSION['cart']))
{
foreach($_SESSION['cart'] as $key=>$val)
{
$total += $val['count'];
}
}
Return $total;
}
}

② 關於spring mvc的session實現購物車問題

下單後把CART從session中移除啊

③ 購物車怎麼實現

下面分析一下它們的機制及作用。 1. cookiecookie是由伺服器產生,存儲在客戶端的一段信息。它定義了一種Web伺服器在客戶端存儲和返回信息的機制,cookie文件它包含域、路徑、生存期、和由伺服器設置的變數值等內容。當用戶以後訪問同一個Web伺服器時,瀏覽器會把cookie原樣發送給伺服器。通過讓伺服器讀取原先保存到客戶端的信息,網站能夠為瀏覽者提供一系列的方便,例如在線交易過程中標識用戶身份、安全要求不高的場合避免用戶重復輸入名字和密碼、門戶網站的主頁定製、有針對性地投放廣告等等。利用cookie的特性,大大擴展了WEB應用程序的功能,不僅可以建立伺服器與客戶機的聯系,因為cookie可以由伺服器定製,因此還可以將購物信息生成cookie值存放在客戶端,從而實現購物車的功能。用基於cookie的方式實現伺服器與瀏覽器之間的會話或購物車,有以下特點: n cookie存儲在客戶端,且佔用很少的資源,瀏覽器允許存放300個cookie,每個cookie的大小為4KB,足以滿足購物車的要求,同時也減輕了伺服器的負荷; n cookie為瀏覽器所內置,使用方便。即使用戶不小心關閉了瀏覽器窗口,只要在cookie定義的有效期內,購物車中的信息也不會丟失; n cookie不是可執行文件,所以不會以任何方式執行,因此也不會帶來病毒或攻擊用戶的系統; n 基於cookie的購物車要求用戶瀏覽器必須支持並設置為啟用cookie,否則購物車則失效; n 存在著關於cookie侵犯訪問者隱私權的爭論,因此有些用戶會禁止本機的cookie功能。 2. sessionsession是實現購物車的另一種方法。session提供了可以保存和跟蹤用戶的狀態信息的功能,使當前用戶在session中定義的變數和對象能在頁面之間共享,但是不能為應用中其他用戶所訪問,它與cookie最重大的區別是,session將用戶在會話期間的私有信息存儲在伺服器端,提高了安全性。在伺服器生成session後,客戶端會生成一個sessionid識別號保存在客戶端,以保持和伺服器的同步。這個sessionid是只讀的,如果客戶端禁止cookie功能,session會通過在URL中附加參數,或隱含在表單中提交等其他方式在頁面間傳送。因此利用session實施對用戶的管理則更為安全、有效。 同樣,利用session也能實現購物車,這種方式的特點是: n session用新的機制保持與客戶端的同步,不依賴於客戶端設置; n 與cookie相比,session是存儲在伺服器端的信息,因此顯得更為安全,因此可將身份標示,購物等信息存儲在session中; n session會佔用伺服器資源,加大伺服器端的負載,尤其當並發用戶很多時,會生成大量的session,影響伺服器的性能; n 因為session存儲的信息更敏感,而且是以文件形式保存在伺服器中,因此仍然存在著安全隱患。 3. 結合資料庫的方式 這也是目前較普遍的模式,在這種方式中,資料庫承擔著存儲購物信息的作用,session或cookie則用來跟蹤用戶。這種方式具有以下特點: n 資料庫與cookie分別負責記錄數據和維持會話,能發揮各自的優勢,使安全性和伺服器性能都得到了提高; n 每一個購物的行為,都要直接建立與資料庫的連接,直至對表的操作完成後,連接才釋放。當並發用戶很多時,會影響資料庫的性能,因此,這對資料庫的性能提出了更高的要求; n 使cookie維持會話有賴客戶端的支持。 各種方式的選擇: 雖然cookie可用來實現購物車,但必須獲得瀏覽器的支持,再加上它是存儲在客戶端的信息,極易被獲取,所以這也限制了它存儲更多,更重要的信息。所以一般cookie只用來維持與伺服器的會話,例如國內最大的當當網路書店就是用cookie保持與客戶的聯系,但是這種方式最大的缺點是如果客戶端不支持 cookie就會使購物車失效。 Session 能很好地與交易雙方保持會話,可以忽視客戶端的設置。在購物車技術中得到了廣泛的應用。但session的文件屬性使其仍然留有安全隱患。 結合資料庫的方式雖然在一定程度上解決了上述的問題,但從上面的例子可以看出:在這種購物流程中涉及到對資料庫表的頻繁操作,尤其是用戶每選購一次商品,都要與資料庫進行連接,當用戶很多的時候就加大了伺服器與資料庫的負荷 我們公司採用的是資料庫的方式 1、用戶瀏覽系統,獲取用戶機器的MAC地址 2、如果用戶購買物品,添加到資料庫裡面,同時插入機器的MAC地址,也是用戶的ID標示 3、如果用戶登錄系統,用用戶真實的ID,更新當前機器的MAC對應的記錄。

④ cookie怎麼實現實現購物車

目前購物車的實現主要是通過cookie、session或結合資料庫的方式。下面分析一下它們的機制及作用。

1. cookie

cookie是由伺服器產生,存儲在客戶端的一段信息。它定義了一種Web伺服器在客戶端存儲和返回信息的機制,cookie文件它包含域、路徑、生存期、和由伺服器設置的變數值等內容。當用戶以後訪問同一個Web伺服器時,瀏覽器會把cookie原樣發送給伺服器。通過讓伺服器讀取原先保存到客戶端的信息,網站能夠為瀏覽者提供一系列的方便,例如在線交易過程中標識用戶身份、安全要求不高的場合避免用戶重復輸入名字和密碼、門戶網站的主頁定製、有針對性地投放廣告等等。利用cookie的特性,大大擴展了WEB應用程序的功能,不僅可以建立伺服器與客戶機的聯系,因為cookie可以由伺服器定製,因此還可以將購物信息生成cookie值存放在客戶端,從而實現購物車的功能。用基於cookie的方式實現伺服器與瀏覽器之間的會話或購物車,有以下特點:

n cookie存儲在客戶端,且佔用很少的資源,瀏覽器允許存放300個cookie,每個cookie的大小為4KB,足以滿足購物車的要求,同時也減輕了伺服器的負荷;

n cookie為瀏覽器所內置,使用方便。即使用戶不小心關閉了瀏覽器窗口,只要在cookie定義的有效期內,購物車中的信息也不會丟失;

n cookie不是可執行文件,所以不會以任何方式執行,因此也不會帶來病毒或攻擊用戶的系統;

n 基於cookie的購物車要求用戶瀏覽器必須支持並設置為啟用cookie,否則購物車則失效;

n 存在著關於cookie侵犯訪問者隱私權的爭論,因此有些用戶會禁止本機的cookie功能。

2. session

session是實現購物車的另一種方法。session提供了可以保存和跟蹤用戶的狀態信息的功能,使當前用戶在session中定義的變數和對象能在頁面之間共享,但是不能為應用中其他用戶所訪問,它與cookie最重大的區別是,session將用戶在會話期間的私有信息存儲在伺服器端,提高了安全性。在伺服器生成session後,客戶端會生成一個sessionid識別號保存在客戶端,以保持和伺服器的同步。這個sessionid是只讀的,如果客戶端禁止cookie功能,session會通過在URL中附加參數,或隱含在表單中提交等其他方式在頁面間傳送。因此利用session實施對用戶的管理則更為安全、有效。

同樣,利用session也能實現購物車,這種方式的特點是:

n session用新的機制保持與客戶端的同步,不依賴於客戶端設置;

n 與cookie相比,session是存儲在伺服器端的信息,因此顯得更為安全,因此可將身份標示,購物等信息存儲在session中;

n session會佔用伺服器資源,加大伺服器端的負載,尤其當並發用戶很多時,會生成大量的session,影響伺服器的性能;

n 因為session存儲的信息更敏感,而且是以文件形式保存在伺服器中,因此仍然存在著安全隱患。

3. 結合資料庫的方式

這也是目前較普遍的模式,在這種方式中,資料庫承擔著存儲購物信息的作用,session或cookie則用來跟蹤用戶。這種方式具有以下特點:

n 資料庫與cookie分別負責記錄數據和維持會話,能發揮各自的優勢,使安全性和伺服器性能都得到了提高;

n 每一個購物的行為,都要直接建立與資料庫的連接,直至對表的操作完成後,連接才釋放。當並發用戶很多時,會影響資料庫的性能,因此,這對資料庫的性能提出了更高的要求;

n 使cookie維持會話有賴客戶端的支持。

各種方式的選擇:

雖然cookie可用來實現購物車,但必須獲得瀏覽器的支持,再加上它是存儲在客戶端的信息,極易被獲取,所以這也限制了它存儲更多,更重要的信息。所以一般cookie只用來維持與伺服器的會話,例如國內最大的當當網路書店就是用cookie保持與客戶的聯系,但是這種方式最大的缺點是如果客戶端不支持 cookie就會使購物車失效。

Session 能很好地與交易雙方保持會話,可以忽視客戶端的設置。在購物車技術中得到了廣泛的應用。但session的文件屬性使其仍然留有安全隱患。

結合資料庫的方式雖然在一定程度上解決了上述的問題,但從上面的例子可以看出:在這種購物流程中涉及到對資料庫表的頻繁操作,尤其是用戶每選購一次商品,都要與資料庫進行連接,當用戶很多的時候就加大了伺服器與資料庫的負荷

這裡面說的確實很詳細
我們公司採用的是資料庫的方式
1、用戶瀏覽系統,獲取用戶機器的MAC地址
2、如果用戶購買物品,添加到資料庫裡面,同時插入機器的MAC地址,也是用戶的ID標示
3、如果用戶登錄系統,用用戶真實的ID,更新當前機器的MAC對應的記錄。
4、如果結帳的話,更新用戶的id,刪除購物車裡面的東西
5、用戶沒有登錄,購物車記錄根據MAC讀取記錄,如果登錄系統根據用戶的ID,讀取記錄

⑤ 電子購物系統的 購物車 是如何實現的 是資料庫 還是cookie session 如何做 給個思路~

可以使用JavaBean建立一個商品類,用於保存商品的相關信息,再建立一個購物車,例如回可以用Collection保存商品,答用於保存所選擇的商品,然後可以使用form表單的select,將商品添加進去,提交後在結果頁面中獲取select選擇的結果,將所選的商品保存到購物車中,然後遍歷購物車,將商品保存到資料庫中

⑥ ASP.NET中如何用session來實現購物車的功能

Session 對象用於存儲用戶的信息。存儲於 session 對象中的變數持有單一用戶的信息,並且對於一個應用程序中的所有頁面都是可用的。
Session 對象
當您操作某個應用程序時,您打開它,做些改變,然後將它關閉。這很像一次對話(Session)。計算機知道您是誰。它清楚您在何時打開和關閉應用程序。但是在網際網路上有一個問題:由於 HTTP 地址無法存留狀態,web 伺服器並不知道您是誰以及您做了什麼。

ASP 通過為每位用戶創建一個唯一的 cookie 的方式解決了這個問題。cookie 被傳送至客戶端,它含有可識別用戶的信息。這種介面被稱作 Session 對象。

Session 對象用於存儲關於用戶的信息,或者為一個用戶的 session 更改設置。存儲於 session 對象中的變數存有單一用戶的信息,並且對於應用程序中的所有頁面都是可用的。存儲於 session 對象中的信息通常是 name、id 以及參數。伺服器會為每個新的用戶創建一個新的 Session,並在 session 到期時撤銷掉這個 Session 對象。
Session 何時開始?
Session 開始於:

•當某個新用戶請求了一個 ASP 文件,並且 Global.asa 文件引用了 Session_OnStart 子程序時;
•當某個值存儲在 Session 變數中時;
•當某個用戶請求了一個 ASP 文件,並且 Global.asa 使用 <object> 標簽通過 session 的 scope 來例示某個對象時;
Session 何時結束?
假如用戶沒有在規定的時間內在應用程序中請求或者刷新頁面,session 就會結束。默認值為 20 分鍾。

如果您希望將超時的時間間隔設置得更長或更短,可以設置 Timeout 屬性。

下面的例子設置了 5 分鍾的超時時間間隔:

<%
Session.Timeout=5
%>要立即結束 session,可使用 Abandon 方法:

<%
Session.Abandon
%>注意:使用 session 時主要的問題是它們該在何時結束。我們不會知道用戶最近的請求是否是最後的請求。因此我們不清楚該讓 session「 存活」多久。為某個空閑的 session 等待太久會耗盡伺服器的資源。然而假如 session 被過早地刪除,那麼用戶就不得不一遍又一遍地重新開始,這是因為伺服器已經刪除了所有的信息。尋找合適的超時間隔時間是很困難的。

提示:如果您正在使用 session 變數,請不要在其中存儲大量的數據。
存儲和取回 session 變數
Session 對象最大的優點是可在其中存儲變數,以供後續的網頁讀取,其應用范圍是很廣的。

下面的例子把 "Donald Duck" 賦值給名為 username 的 session 變數,並把 "50" 賦值給名為 age 的 session 變數:

<%
Session("username")="Donald Duck"
Session("age")=50
%>一旦值被存入 session 變數,它就能被 ASP 應用程序中的任何頁面使用:

Welcome <%Response.Write(Session("username"))%>上面這行程序返回的結果是: "Welcome Donald Duck"。

也可以在 session 對象中保存用戶參數,然後通過訪問這些參數來決定向用戶返回什麼頁面。

下面的例子規定,假如用戶使用低顯示器解析度,則返回純文本版本的頁面:

<%If Session("screenres")="low" Then%>
This is the text version of the page
<%Else%>
This is the multimedia version of the page
<%End If%>移除 session 變數
contents 集合包含所有的 session 變數。

可通過 remove 方法來移除 session 變數。

在下面的例子中,假如 session 變數 "age" 的值小於 18,則移除 session 變數 "sale":

<%
If Session.Contents("age")<18 then
Session.Contents.Remove("sale")
End If
%>如需移除 session 中的所有變數,請使用 RemoveAll 方法:

<%
Session.Contents.RemoveAll()
%>遍歷 contents 集合
contents 集合包含所有的 session 變數。可通過遍歷 contents 集合,來查看其中存儲的變數:

<%
Session("username")="Donald Duck"
Session("age")=50

dim i
For Each i in Session.Contents
Response.Write(i & "<br />")
Next
%>結果:

username
age如果需要了解 contents 集合中的項目數量,可使用 count 屬性:

<%
dim i
dim j
j=Session.Contents.Count
Response.Write("Session variables: " & j)
For i=1 to j
Response.Write(Session.Contents(i) & "<br />")
Next
%>結果:

Session variables: 2
Donald Duck
50遍歷 StaticObjects 集合
可通過循環 StaticObjects 集合,來查看存儲在 session 對象中所有對象的值:

<%
dim i
For Each i in Session.StaticObjects
Response.Write(i & "<br />")
Next
%>

提供一些方法。

⑦ 購物車用session怎麼實現的

publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)
throwsServletException,IOException{
response.setContentType("text/html;charset=utf-8");
PrintWriterout=response.getWriter();
//獲得session
request.getSession();//創建了一個session

//獲得所有商品
Map<String,Book>all=DB.getAll();

out.write("本站提供如下商品<br>");
for(Entry<String,Book>e:all.entrySet()){
Bookbook=e.getValue();
//超鏈接要url重寫
//url重寫做了兩件事情,第一,獲得session的id,第二,將id加到地址後面
Stringurl="/javaweb07/servlet/BuyServlet?id="+book.getId();
StringnewUrl=response.encodeURL(url);
out.write(book.getName()+"<ahref='"+newUrl+"'target='_blank'>購買</a><br>");
}
}

BuyServlet.java
publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)
throwsServletException,IOException{
//獲得id
Stringid=request.getParameter("id");

//找出書
Bookbook=DB.find(id);

//獲得購物車
HttpSessionsession=request.getSession();
Listcart=(List)session.getAttribute("cart");
if(cart==null){
//剛進超市,分配購物車
cart=newArrayList();
}

//加入購物車
cart.add(book);

//將購物車找個地方存起來,方便下次購買
session.setAttribute("cart",cart);

//第一次創建session的時候需要發Cookie,將sessionid帶給瀏覽器

//獲得sessionid
Stringsessionid=session.getId();
//發送cookie,Cookie的key是區分大小寫
Cookiecookie=newCookie("JSESSIONID",sessionid);
//設置有效時間
cookie.setMaxAge(60*60*5);
response.addCookie(cookie);

//請求重定向到購物車頁面
Stringurl="/javaweb07/servlet/ListCartServlet";
//url重寫
StringnewUrl=response.encodeRedirectURL(url);

response.sendRedirect(newUrl);
}

ListCarServlet
publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)
throwsServletException,IOException{
response.setContentType("text/html;charset=utf-8");
PrintWriterout=response.getWriter();

//獲取購物車
//getSession方法會拿著用戶的jsessionid去內存找session找不到才創建
HttpSessionsession=request.getSession();

List<Book>cart=(List<Book>)session.getAttribute("cart");

if(cart==null){
out.write("對不起!您還沒有購買商品!!!");
return;
}

//遍歷購物車中的商品顯示
out.write("您購買了如下商品:<br>");

for(Bookbook:cart){
out.write(book.getName()+","+book.getPrice()+"<br>");
}
//讓session立即失效
//session.invalidate();
out.write("<inputtype='button'value='進入結算中心'/>");
}

⑧ 怎麼刪除session裡面指定的值,這是一個購物車頁面,想刪除購物車里某個商品

Session.Remove("b");

⑨ session+cookies實現購物車功能,javaweb開發

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>My JSP 'shop2.jsp' starting page</title>

<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">

</head>

<body>

<%
request.setCharacterEncoding("UTF-8");
Map<String,Integer> itm=(Map<String,Integer>)session.getAttribute("item");
if(itm==null){
itm=new HashMap<String,Integer>();
itm.put("電視", 1);
itm.put("蘋果", 0);
itm.put("香蕉", 1);
itm.put("衣服", 0);
}
String [] buy=request.getParameterValues("c");
for(String b:buy){
if(b.equals("電視")){
int num=itm.get("電視");
itm.put(b, num+1);
}
if(b.equals("蘋果")){
int num=itm.get(b);
itm.put(b, num+1);
}
if(b.equals("香蕉")){
int num=itm.get(b);
itm.put(b, num+1);
}
if(b.equals("衣服")){
int num=itm.get(b);
itm.put(b, num+1);
}
}
session.setAttribute("item", itm);
%>
你所購買的物品<br>
電視:<%=itm.get("電視") %>本<br>
蘋果:<%=itm.get("蘋果") %>個<br>
香蕉:<%=itm.get("香蕉") %>個<br>
衣服:<%=itm.get("衣服") %>件<br>
<p><a href="shop.jsp">再次購買</a></p>
</body>
</html>

下面是購買頁面
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>

<title>My JSP 'shop.jsp' starting page</title>

<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>

<body>
歡迎光臨本店! <br>
<form action="shop2.jsp" method="post">
<input name="c" type="checkbox" value="電視" />電視
<input name="c" type="checkbox" value="蘋果" />蘋果
<input name="c" type="checkbox" value="香蕉" />香蕉
<input name="c" type="checkbox" value="衣服" />衣服
<img alt="dddd" src="<%=request.getAttribute("path")%>">
<p> <%=request.getAttribute("yy")%></p>
<input name="" type="submit" value="確認購買" />
</form>
</body>
</html>
下面是使用cookie的

添加Cookie
Cookie uname1=new Cookie("lname",username);
uname1.setMaxAge(24*3600);
Cookie upwd1=new Cookie("lpwd",pwd);
upwd1.setMaxAge(24*3600);
response.addCookie(uname1);
response.addCookie(upwd1);

添加session
session.setAttribute("log_name", username);
以下代碼是對cookie和session的數據操作!
<%
String uname="";
String upwd="";
Cookie[] cookies=request.getCookies(); //一request獲范圍獲取一個
cookie實例
if(cookies!=null){
for(Cookie c: cookies){
if("lname".equals(c.getName())){ //判斷cookie裡面的名字是否等於這

uname=c.getValue(); //如果等於就獲取它的值
}
if("lpwd".equals(c.getName())){
upwd=c.getValue();
}
}
String sql2="select * from member where username='"+uname+"'";
ResultSet rs2=null;
rs2=DBHelper.executeQuery(sql2);
boolean is=true;
while(rs2.next()){
String pp=rs2.getString("upwd");
if(pp.equals(upwd)){
is=false;
}
}
if(session.getAttribute("log_name")!=null){ //判斷是否有slog_name這
個session
uname=(String)session.getAttribute("log_name");
is=false;
}
if(is){
response.sendRedirect("index1.jsp");
}
}
%>
<%
application.setAttribute("log", uname);
%>

⑩ 實現購物車(保存到session和資料庫)

錯了。SESSION也是伺服器的,COOKIE才是客戶機上的。保存在資料庫上吧。安全些

熱點內容
斷背山有幾分鍾 發布:2024-08-19 08:31:17 瀏覽:253
日本電影 女老師和學生私奔 發布:2024-08-19 08:29:36 瀏覽:49
台灣電影 雙胞胎 發布:2024-08-19 08:02:18 瀏覽:134
2020最新電影在線觀看網站 發布:2024-08-19 07:56:06 瀏覽:641
男男電影虐 發布:2024-08-19 07:04:57 瀏覽:10
韓國電影李采潭主演的關於發廊的 發布:2024-08-19 07:01:57 瀏覽:2
每期都有做的動漫 發布:2024-08-19 06:44:33 瀏覽:778
東宮拍攝時間 發布:2024-08-19 06:44:12 瀏覽:5
林正英電影情節鬼抬轎 發布:2024-08-19 06:36:35 瀏覽:254
懂的都懂在線觀看網站 發布:2024-08-19 06:26:11 瀏覽:676