基於session對象實現簡單的購物車應用


大部分購物網站都會實現購物車的功能,基於session對象的購物車應用可以實現一個用戶會話有效期內,用戶所選多個商品的存儲。

 

為了實現這樣的功能需要編寫三個JSP頁面,分別是login.jsp、main.jsp和shoppingCart.jsp,login.jsp頁面提供一個表單,要求用戶輸入用戶名稱,表單提交給主頁面main.jsp。具體如下:

 

Login.jsp代碼如下:

<%@ page language="java" contentType="text/html; charset=UTF-8"

    pageEncoding="UTF-8"%>

<!DOCTYPE html>

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

<title>網上購物登陸界面</title>

</head>

<body bgcolor="CCCFFF">

<form action="main.jsp" method="get">

<table>

<tr>

<td>輸入用戶名:</td>

<td><input type="text" name="UserName" size="16"></td>

</tr>

<tr>

<td>輸入密碼:</td>

<td><input type="password" name="password" size="16"></td>

</tr>

<tr>

<td><input type="submit" value="登錄"></td>

</tr>

</table>

</form>

</body>

</html>

 

沒有什么好說的,就是一個簡單的登錄界面,其中登錄請求提交到main.jsp界面,運行情況如下圖所示:

 

main.jsp界面代碼如下:

 

<%@ page language="java" contentType="text/html; charset=UTF-8"

    pageEncoding="UTF-8"%>

<!DOCTYPE html>

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

<title>網上購物主界面</title>

</head>

<body bgcolor="CCCFFF">

<%

request.setCharacterEncoding("UTF-8");

String c=request.getParameter("UserName");

String d=request.getParameter("password");

String a=(String)session.getAttribute("UserName1");

if(a==null){

if(c.equals("???")&&d.equals("???")){

if(a==null){

String b=request.getParameter("UserName");

if(b==null){

response.sendRedirect("bookShopLogin.jsp");

}

else{

session.setAttribute("UserName1",b);

out.println(b+"! 歡迎您來到主界面,請選擇您要購買的商品:");

}

}

else{

out.println(a+"! 歡迎您來到主界面,請選擇您要購買的商品:");

}

}

else

response.sendRedirect("bookShopLogin.jsp");

}

else

out.println(a+"! 歡迎您來到主界面,請選擇您要購買的商品:");

%>

<form action="shoppingCart.jsp" method="post">

<p>商品信息</p>

<table border="1">

<tr>

<td><input type="checkbox" name="choice" value="U盤"></td>

<td>U盤</td>

</tr>

<tr>

<td><input type="checkbox" name="choice" value="移動硬盤"></td>

<td>移動硬盤</td>

</tr>

<tr>

<td><input type="checkbox" name="choice" value="鼠標"></td>

<td>鼠標</td>

</tr>

<tr>

<td><input type="checkbox" name="choice" value="鍵盤"></td>

<td>鍵盤</td>

</tr>

</table>

<input type="submit" value="加入購物車">

</form>

</body>

</html>

 

之里面有一條輸出語句是沒有意義的,因為對運行不會產生任何影響,因此我懶的去刪了,可以看出main界面收到請求后,對用戶輸入的密碼和用戶名進行驗證,具體用戶名和密碼我不寫了,可以自己修改,即帶?的那一串,然后用form表單創建一個簡單的購物界面,選好想要購買的物品后,點擊加入購物車按鈕,將請求提交到shoppingCart.jsp界面

 

利用session對象的getAttribute方法獲取用戶名,並將其輸出,圖中用戶名已做馬賽克處理

 

shoppingCart.jsp界面代碼如下:

 

<%@ page language="java" contentType="text/html; charset=UTF-8"

    pageEncoding="UTF-8"%>

<%@ page import="java.util.*" %>

<!DOCTYPE html>

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

<title>購物車界面</title>

</head>

<body>

<%

request.setCharacterEncoding("UTF-8");

String username=(String)session.getAttribute("UserName1");

Vector b=(Vector)session.getAttribute("bookShop");

if(b==null)

b=new Vector();

String[] g=request.getParameterValues("choice");

if(g!=null){

for(int i=0;i<g.length;i++)

b.add(g[i]);

}

session.setAttribute("bookShop",b);

out.println("<br>您的姓名:"+username);

out.println("<br>購物車中的商品:<br>");

for(int j=0;j<b.size();j++)

out.println(b.get(j)+"<br>");

%>

<p><a href="bookShopLoginCheck.jsp">返回主界面繼續購物</a></p>

</body>

</html>

最后運行結果如下圖,當然如果顧客還想繼續選購商品時,可以通過點擊“返回主界面繼續購物”來返回購物界面

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM