java中servlet的购物车程序是怎么样的流程?

java中servlet的购物车程序是怎么样的流程?,第1张

购买过程就是选择好物品放入购物车然后结账

import

java.util.Vector

public

class

gouwuche

{

/**

*

@param

args

*/

private

static

Vector

vec

=

new

Vector()

public

static

void

gw(String

name,int

price,int

sum)

{

gouwuchebean

bean

if(vec.size()>0)

{

//说明购物车内有物品

进来比对

看是否有一样的东西

有的话让数量+sum

bean

=

new

gouwuchebean()

int

j=0//用来计数

for(int

i=0i<vec.size()i++)

{

gouwuchebean

bean1

=

(gouwuchebean)vec.get(i)

if(bean1.getName().equals(name))

{

j++

bean.setName(name)

bean.setPrice(price)

bean.setSum(sum+bean1.getSum())

vec.remove(i)//去掉原来的数据

vec.add(bean)//放入新的数据

}

}

if(j==0)

{

bean.setName(name)

bean.setPrice(price)

bean.setSum(sum)

vec.add(bean)

}

}

else

{

//如果集合是空的说明购物车内没有重复的

直接放入即可

bean

=

new

gouwuchebean()

bean.setName(name)

bean.setPrice(price)

bean.setSum(sum)

vec.add(bean)

}

}

public

static

void

show()

{

System.out.println("=============购物车当前物品==============")

int

sum

=

0//用来计一共有几件物品

int

pric

=

0//用来计共消费金额

for(int

i=0i<vec.size()i++)

{

gouwuchebean

bean

=

(gouwuchebean)vec.get(i)

sum

=

sum+bean.getSum()

pric

=

pric+(bean.getPrice()*bean.getSum())

System.out.println("*第"+(i+1)+"种物品-----名称:"+bean.getName()+"---数量是:"+bean.getSum()+"---单价是:"+bean.getPrice()+"元----共计"+(bean.getSum()*bean.getPrice()+"元"))

}

System.out.println("物品共计"+sum+"件

共计金额是:"+pric+"元")

System.out.println("=============欢迎使用购物车==============")

}

public

static

void

main(String[]

args)

{

//

TODO

Auto-generated

method

stub

gw("电视机",100,1)//选择购买物品

价格和数量还有名字

gw("可口可乐",100,9)

gw("电视机",100,9)

gw("西瓜",10,5)

gw("电动车",3000,2)

gw("奥迪A6",4000000,2)

show()

}

}

测试结果

package Test

import java.util.LinkedHashMap

import java.util.Map

import java.util.Map.Entry

import java.util.Scanner

public class Test {

public static void main(String[] args) {

init()//初始化

Map<String,String> map = new LinkedHashMap<>()

while(true){

Scanner in= new Scanner(System.in)

map = buy(in,map)//选择

System.out.println()

System.out.println("还要继续购物吗?(Y/N)")

String jx = in.nextLine()

if(jx.equals("N")){

break

}

}

print(map)

}

public static void print(Map<String, String> m){

System.out.println("\n\n\n******************")

System.out.println("       购物车清单")

Integer hj = 0

for (Entry<String, String> entry : m.entrySet()) {

String key = entry.getKey()

String value = entry.getValue()

if(key.equals("1")){

hj += Integer.parseInt(value)*3

System.out.println("哇哈哈纯净水: "+value+"件,合计:¥"+Integer.parseInt(value)*3)

}else if(key.equals("2")){

hj += Integer.parseInt(value)*5

System.out.println("康师傅方便面: "+value+"件,合计:¥"+Integer.parseInt(value)*5)

}else if(key.equals("3")){

hj += Integer.parseInt(value)*4

System.out.println("可口可乐: "+value+"件,合计:¥"+Integer.parseInt(value)*4)

}

}

System.out.println("合计金额:¥"+hj)

}

public static void init(){

System.out.println("******************")

System.out.println("\t商品列表\n")

System.out.println("              商品名称                价格")

System.out.println("1.   哇哈哈纯净水        ¥3")

System.out.println("2.   康师傅方便面        ¥5")

System.out.println("3.   可口可乐                ¥4")

System.out.println("******************")

}

public static Map<String,String> buy(Scanner scan,Map<String,String> m){

System.out.print("请输入编号:")

String bh = scan.nextLine()

System.out.print("请输入购买数量:")

String num = scan.nextLine()

if(m.size()>0 && m.keySet().contains(bh)){

m.put(bh,(Integer.parseInt(bh)+Integer.parseInt(num))+"")

}else{

m.put(bh, num)

}

return m

}

}

查询的资料,找到三种方法:

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中,而是直接持久化到

数据库中。注:用户登录后的数据都是和数据库打交道。

===========================================

以上就是我的见解 如果有什么不懂可以问我 想学习的童鞋秒懂 供参考 满意请采纳


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11851055.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存