思路:大部分购物网站都会实现购物车的功能,基于session对象的购物车应用可以实现一个用户会话有效期内,用户所选多个商品的存储。

要求: 编写三个JSP页面login.jsp、main.jsp和shoppingCart.jsp,login.jsp页面提供一个表单,要求用户输入用户名称,表单提交给主页面main.jsp。

 

session:在session对象的生命周期内,它可以保存用户的信息,实现项目中多个页面之间信息的传递。

购物车实现逻辑redis 购物车可以采用session实现_javaweb

  

login.jsp

1 <%@ page language="java" contentType="text/html; charset=UTF-8"
 2     pageEncoding="UTF-8"%>
 3 <!DOCTYPE html>
 4 <html>
 5 <head>
 6 <meta charset="UTF-8">
 7 <title>用户登录</title>
 8 </head>
 9 <body>
10 欢迎,请输入你的姓名:
11 <form action="main.jsp" method="get">
12   <input type="text" name="id"><br/>
13   <input type="submit" value="登录">
14 </form>
15 </body>
16 </html>

 

main.jsp

1 <%@ page language="java" contentType="text/html; charset=UTF-8"
 2     pageEncoding="UTF-8"%>
 3 <!DOCTYPE html>
 4 <html>
 5 <head>
 6 <meta charset="UTF-8">
 7 <title>主页面</title>
 8 </head>
 9 <body>
10 <% 
11   String userName=(String) session.getAttribute("userName");//获取session对象的用户名称
12 if(userName==null)//如果没有名称,就获取提交的用户名
13 {
14     String userName1=request.getParameter("id");//获取提交的用户名
15     if(userName1==null)//如果没有提交用户名,返回登录页面
16    {
17     response.sendRedirect("login.jsp");
18    }
19    else//提交了用户名,却没有存进session
20    {
21        session.setAttribute("userName", userName1);//如果已经提交用户名,就将用户名存储进session对象
22        out.println(userName1+"欢迎登录,请选择你想要的商品");    
23    }
24 }
25 else//已经存进session
26 {
27     out.println(userName+"欢迎登录,请选择你想要的商品");
28 }
29 %>
30 <form action="shoppingCart.jsp" method="get">
31  <input type="checkbox" name="goods" value="铅笔">铅笔<br/>
32  <input type="checkbox" name="goods" value="橡皮">橡皮<br/>
33  <input type="checkbox" name="goods" value="尺子">尺子<br/>
34  <input type="checkbox" name="goods" value="纸巾">纸巾<br/>
35  <input type="checkbox" name="goods" value="可乐">可乐<br/>
36  <input type="checkbox" name="goods" value="耳机">耳机<br/>
37  <input type="submit" value="添加到购物车">
38 </form>
39 </body>
40 </html>

 

shoppingCart.jsp

1 <%@ page language="java" contentType="text/html; charset=UTF-8"
 2     pageEncoding="UTF-8" import="java.util.Vector" %>
 3 <!DOCTYPE html>
 4 <html>
 5 <head>
 6 <meta charset="UTF-8">
 7 <title>购物页面</title>
 8 </head>
 9 <body>
10  <% String userName=(String) session.getAttribute("userName");//获取当前session对象的用户
11     Vector goods=(Vector) session.getAttribute("shoppingCart");//获取session对象的购物车
12     if(userName==null)
13     {
14         response.sendRedirect("main.jsp");
15     }
16     if(goods==null)//如果购物车为空,新建
17   goods=new Vector();
18     String []g=request.getParameterValues("goods");
19     if(g!=null)//不为空,添加进goods
20     {
21         for(int i=0;i<g.length;i++)
22         goods.add(g[i]);
23     }
24     session.setAttribute("shoppingCart",goods);//设置session对象的购物车,将goods加入
25     out.println("您的用户名为:"+userName);
26     out.println("<br/>购物车中的商品有:<br>");
27     for(int j=0;j<goods.size();j++)//输出goods
28     {
29         out.println(goods.get(j)+"<br/>");
30     }
31  %>
32 </body>
33 </html>

 

 

总结:简单的运用了session对象的特性,运用了session的getAttribute、setAttribute方法,运用了vector存储购物车中的商品。