栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

同一台电脑同一个浏览器上,实现不同的用户登录,完成不同的购物车的功能

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

同一台电脑同一个浏览器上,实现不同的用户登录,完成不同的购物车的功能

1.zhangsan登录,选购自己的商品,添加到购物车

2.zhangsan退出登录,lisi登录选购自己的商品,添加到购物车

3.两个用户不断退出重登时,对应的购物车仍然存在

项目结构:简单web项目




    
    Title



注:本项目名为/exercise2
准备的两个用户有:zhangsan lisi
姓名

 web.xml



    
        index.html
    


    
        List
        com.exercise.servlet.ListServlet
    
    
        List
        /ListBookServlet
    
    
        Purchase
        com.exercise.servlet.PurchaseServlet
    
    
        Purchase
        /Purchase
    
    
        Cart
        com.exercise.servlet.CartServlet
    
    
        Cart
        /CartServlet
    

实体类 

package com.exercise.pojo;

import java.io.Serializable;

public class Book implements Serializable {
    private static final long serial=1L;
    private String id;
    private String name;

    public Book() {
    }

    public Book(String id, String name) {
        this.id = id;
        this.name = name;
    }

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}

模拟数据库

package com.exercise.pojo;

import java.util.Collection;
import java.util.HashMap;
import java.util.Map;

public class BookDB {
    private static Mapbooks=new HashMap<>();
    static{
        books.put("1",new Book("1","javaweb开发"));
        books.put("2",new Book("2","jdbc开发"));
        books.put("3",new Book("3","java开发"));
        books.put("4",new Book("4","struts开发"));
        books.put("5",new Book("5","spring开发"));
    }
    public static CollectiongetAll(){
        return books.values();
    }
    public static Book getBook(String id){
        return books.get(id);
    }
}

展示商品购买链接 

package com.exercise.servlet;

import com.exercise.pojo.Book;
import com.exercise.pojo.BookDB;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Collection;


public class ListServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //设置字符编码方式
        response.setContentType("text/html;charset=utf-8");
        String name=request.getParameter("name");
        PrintWriter out=response.getWriter();
        Collectionbooks= BookDB.getAll();
        out.write("本站提供的图书有:
"); for(Book book:books){ String url="/exercise2/Purchase?name="+name+"&id="+book.getId(); out.write(book.getName()+"点击链接即可购买
"); } } }

 进行购买处理

package com.exercise.servlet;

import com.exercise.pojo.Book;
import com.exercise.pojo.BookDB;

import javax.servlet.ServletException;
import javax.servlet.http.*;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;


public class PurchaseServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //设置字符编码方式
        response.setContentType("text/html;charset=utf-8");
        String name=request.getParameter("name");
        String id=request.getParameter("id");
        if(id==null){
            String url="/exercise2/ListBookServlet";
            response.sendRedirect(url);
            return;
        }
        Book book_Purchase=BookDB.getBook(id);
        HttpSession session=request.getSession();

        

        // 创建cart集合
        Listcart=(List)session.getAttribute("cart_"+name);
        if(cart==null) {
            cart = new ArrayList();
            if (name.equals("zhangsan")) {
                session.setAttribute("cart_zhangsan", cart);
            }else if(name.equals("lisi")){
                session.setAttribute("cart_lisi", cart);
            }
        }
        cart.add(book_Purchase);
        cookie cookie=new cookie("JSESSIONID",session.getId());
        // 当前的cookie的name: JSESSIonID
        // 当前的cookie的value:E59279BD40565B94731D7E1EFF449092(session的id)
        // 设置过期时间为3分钟,时间超过3分钟,cookie过期,对应的session也会变化
        cookie.setMaxAge(3*60);
        cookie.setPath("/exercise2");
        response.addcookie(cookie);
        String url="/exercise2/CartServlet?name="+name+"";
        response.sendRedirect(url);

    }
    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    }
}

显示购买结果,并给出链接,供用户进行下一步操作 

package com.exercise.servlet;

import com.exercise.pojo.Book;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.List;

public class CartServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        resp.setContentType("text/html;charset=utf-8");
        String name=req.getParameter("name");
       PrintWriter out= resp.getWriter();
       List cart=null;
       Boolean flag=true;
       HttpSession session=req.getSession(false);
       if(session==null){
           flag=false;
       }else {
           cart=(List)session.getAttribute("cart_"+name);
           if(cart==null){
               flag=false;
           }
       }
       if(!flag){
           out.write("对不起!你还没有购买任何商品!
"); }else { // 购物车里面有商品 out.write("您购买的图书有:
"); for(Book book:cart){ out.write(book.getName()+"
"); } String url1="/exercise2/ListBookServlet?name="+name+""; out.write("继续购买其它商品
"); String url2="/exercise2/index.html"; out.write("退出登录,更换用户
"); } } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { } }

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/333050.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号