⑴ 关于javaBean购物车的提问
javabean:
public class ShoppingCart implements Serializable {
List<OrderItemVo> cart = new ArrayList<OrderItemVo>();//获取先前(BuybookServlet)定义的购物车
public List<OrderItemVo> getCart() {
return cart;
}
public void setCart(List<OrderItemVo> cart) {
this.cart = cart;
}
//清空购物车
public void clearCart(){
cart.clear();
}
//删除车中的某一购物项
public void deleteItem(String id){
for(OrderItemVo o:cart){
if(o.getBook().getEs_Id()==Integer.parseInt(id)){
cart.remove(o);
break;
}
}
}
//添加购物车
public void addCart(OrderItemVo ov){
//检查车中是否有相同的书籍存在
OrderItemVo oc=this.check(ov);
if(oc==null){//新书
this.getCart().add(ov);
}else{
oc.addNumber();
}
}
//检查车中是否有相同的书籍存在
private OrderItemVo check(OrderItemVo ov){
OrderItemVo oiv=null;
for(OrderItemVo o:cart){
if(o.getBook().getEs_Id()==ov.getBook().getEs_Id()){
oiv=o;//车中有相同的书
break;
}
}
return oiv;
}
//订单总额合计
public double getTotal(){
double total=0.0;
for(OrderItemVo oiv:cart){
total+=oiv.getSubTotal();
}
return total;
}
//更新购物车
public void updateQuantity(String id,String quantity){
for(OrderItemVo o:cart){
if(o.getBook().es_Id==Integer.parseInt(id)){
o.setEs_oinumber(Integer.parseInt(quantity));
break;
}
}
}
}
Servlet:
买书的Servlet:
public class BuyBookServlet extends HttpServlet {
protected void service(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
String ID=req.getParameter("id");
int id=Integer.parseInt(ID);
Register r=new Register();
BookVo book=r.bookinfo(id);
System.out.println(id);
System.out.println(book.es_booking);
System.out.println(book.es_bookname);
System.out.println(book.es_bookprice);
System.out.println(book.es_Id);
ShoppingCart cart=(ShoppingCart)req.getSession().getAttribute("cart");
if(cart==null){//第一次购物
//创建一个购物车
cart=new ShoppingCart();
OrderItemVo ov=new OrderItemVo(book,1);//创建顶空项
cart.addCart(ov);//放入购物车
//把车放回到session中
req.getSession().setAttribute("cart", cart);
}else{//非第一次购物
OrderItemVo ov=new OrderItemVo(book,1);//创建顶空项
cart.addCart(ov);//放入购物车
//把车放回到session中
req.getSession().setAttribute("cart", cart);
}
req.getRequestDispatcher("cart.jsp").forward(req, resp);
}
}
参考下 小兄弟
⑵ 面试JAVA软件工程师 人家问你购物车怎么做的用了哪些技术怎么说
用cookie和数据库(购物车信息持久化)实现购物车;
主要的流程:
A.用户登录前的数据回流:用户在没有登录系统的答时候,对喜欢的商品进行添加购物车,那么这个时候,我们可以把购物车信息保存
到cookie中,这里会涉及到cookie的添加,修改操作;也即如果之前在cookie中不存对应的cookie,则就对cookie进行添加操作。
如果在cookie中存在对应的cookie,那么,这时候,就要对cookie进行修改操作了(这里涉及到用户对同一个商品进行多次添加购物车的情况)。
B.用户登录后的数据流:用户在登录后,系统首先做的第一件事就是去获取对应的cookies,如果存在相关的购物车cookies,那么就对该购物车
信息进行相应用户User的持久化操作,要么添加,要么修改。(添加操作:该用户所对应的购物车如果没有相应的信息进行添加操作;修改操作:类似的,
如果存在对应用户的购物车信息,就进行修改操作)。用户登录后,也可以进行购物车的添加操作,不过,这里不是添加到cookie中,而是直接持久化到
数据库中。注:用户登录后的数据都是和数据库打交道。
⑶ 编程 java 关于购物车
将session中的商品定义为对象
放入ArrayList中
修改了购物车内容后
把ArrayList.size()赋值到现在是0的位置回
如:
购物车添加物品答
List proctList = new ArrayList();
Proct proct1 = new Proct();
proctList.add(proct1);
...
Proct proctN = new Proct();
proctList.add(proctN);
session.setAttribute("proct", proctList);
页面可以写
List proctList = (List)session.getAttribute("proct");
把proctList.size()放到个数的位置
⑷ JAVA编程购物车问题大神们帮帮忙
不会用Map,建议先学习怎么用。不能熟练使用集合框架,严重影响开发效率。基础很重要,没基础,什么都不行。 当然,购物车可以不用Map也能实现。 // 从session里取购物车对象 List cart = (List) request.getSession().getAttribute("cart"); // 如果session里没有,创建 if (cart == null) { cart = new ArrayList(); } // 创建Book对象 BookInfo book = new BookInfo("001", "abc", 1); // 是否购物车里已经有 if (!cart.contains(book)) { // 没有的时候直接add cart.add(book); } else { // 有的时候,取出 BookInfo tmpBook = (BookInfo) cart.get(cart.indexOf(book)); // 加数量 tmpBook.setCount(tmpBook.getCount() + book.getCount()); } // 把cart放到session里 request.getSession().setAttribute("cart", cart); 补充: 注意:BookInfo要重写equals方法,上面的代码材有效。下面这个BookInfo重写了equals方法,当id相同时,认为是同一本书。如果想用其他方法判断,自己可以重写。 public class BookInfo { private String id; private String name; private int count; public BookInfo(String id, String name, int count) { this.id = id; this.name = name; this.count = count; } 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; } public int getCount() { return count; } public void setCount(int count) { this.count = count; } public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (getClass() != obj.getClass()) return false; BookInfo other = (BookInfo) obj; if (id == null) { if (other.id != null) return false; } else if (!id.equals(other.id)) return false; return true; } } 追问: BookInfo tmpBook = (BookInfo) cart.get(cart.indexOf(book)); 这句里面的cart.indexOf(book)是用于什么用的啊?我学了半年JAVA..半年的JSP+servlet+ 框架 呢..我还是新手哈.. 回答: cart.indexOf(book)是查找对象在List中的 索引 。 cart.get(cart.indexOf(book))是根据找到的索引取对象。 追问: 现在能加入 购物车 了.但是不能过滤相同ID的这个怎么样在servlet里面解决呢?我用的是struts的ACTION和form的 回答: 我上面不是写了BookInfo类吗!为了让List能把相同ID的BookInfo对象认为是“同一本书”,要重写equals方法。 cart.contains(book)是判断List是否有某Book时,会调用BookInfo的equals方法。举个例子,用上面那个BookInfo类。new BookInfo("1","abc",1)和new BookInfo("1","abc",1)会被List认为是相同的BookInfo,因为id都是“1”。 追问: 我是用struts中的form来写的..我加入到form中.我程序就出错了....我在实验下吧..
⑸ 有关java购物车程序的问题
说简单点 request对象和session对象的最大区别是生命周期
request对象的生命周期是针对一个客内户端(说确切点就是一个浏容览器应用程序)的一起请求 当请求完毕之后,request里边的内容也将被释放点
而session的生命周期也是针对一个客户端 但是却是在别人设置的会话周期内(一般是20-30分钟) session里边的内容将一直存在 即便关闭了这个客户端浏览器 session也不一定会马上释放掉的
request和session的优点和缺点很明显
request占用资源比较少 安全性也比较高 可是相对来说 缺乏持续性
而session则相对来说 对资源的消耗会大点 安全性相对来说也会稍微低点 可是它能实现比如会话跟踪技术
⑹ java写的简易购物车 简历里描述一下
第一: 写你的开发平台:比如windows 还是Linux。
第二:写你的开发工具:MyEclipse 还是Eclipse。回 数据库MySQL 还是Oracle。。。。。
第三:写你的框答架:ssh+jquery +Ajax+jsp+......
第四:写你参与的开发模块。涉及到的技术亮点。比如登陆模块,用到的是AJAX异步数据验证。或者复杂点的:在线文件预览:用到技术 OpenOffice+FlexPaper+swfTools等。
第五 :写你遇到技术难题,你自己是如何解决的(注意多写自己独立解决:面试官很在意个人自我解决能力或者自学能力),
第六:写你完成这个项目的收获。
大致也就这样了。
⑺ javaweb开发 在购物车实现的问题
第3中比较好。第一种,javaweb本身在cookie中存放复杂对象就很麻烦,读写量大。第二种,客户下内线sesson一般就会容被移除,这样用户下次登陆时就没有之前购物车信息了。第3中,可以避免上面的不足
⑻ 通常java的面试都会问些什么
首先,你先向面试官自我介绍一下。
我:“我做过两个项目。写过几篇论文和专利。还参加过XX大数据竞赛。同时,出于个人兴趣,我还阅读了一下xxxx的少部分源码,理解了一下xxxx的核心思想,实现了一个功能非常简单,并且还不完善的xxxx。”
有可能刚开始,还是讨论比赛和分布式。后面就会问你一道大量文本处理的问题,例如“找出一个大文本中的Top3的字符串”,没有做过这方面的研究。
Java问题:“讲一下JVM的结构。”
网络问题:“TCP/IP的三次握手、四次挥手”
问关于JavaWEB的问题。
或者是“淘宝用户的数据(购物车……)存在那里?怎么满足高并发?”
问一下你的算法问题“输入两个整型数组,返回一个数组:两个数组中的公共值。”
“考一下你对递归的掌握。写一个函数,输入int型,返回整数逆序后的字符串。如:输入123,返回“321”。 要求必须用递归,不能用全局变量,输入必须是一个参数,必须返回字符串。”
问完之后可能会说“就当做我们在聊天,讨论技术问题。讲一下你的相关经历吧。“
这时候你就可以很轻松地在聊比赛相关的事情,以及自己对数据的理解。
总结:
对于,基础比较扎实的人,那就让面试官随便问吧。不过,我觉得任何人都有可能别问死的,因为他们想通过这种方式看看你的掌握深度。
如果只是基础知识一般:数据结构、排序算法和递归,能写出来;操作系统,懂一些基本理论;计算机网络,懂一些基本概念和理论。就必须要充分发挥自己的竞赛、项目、论文和专利的优势了。
面试过程中,有一点很重要,把握面试官的兴趣点,并将面试官带入自己的优势。当然,如果自己的优势不是面试官非常了解的领域,但是面试官又比较感兴趣,那就更好了。最好能把面试官带入你的话题中,让他对你产生兴趣,然后,大部分时间就都可以花在在讨论这些内容了。
可以肯定的说,JAVA目前的就业还是很紧缺。总体来看,就业岗位有的是,要就业的JAVA人才也很多,但是目前大多数求职者的水平与就业岗位的要求有一定的差距,所以目前的JAVA求职者很有必要提升自己。我和一群java的爱好者创建的一个免费学习的qun,开头的三个数字是四二六,中间的三位数就是三九六,最后面的三位数就是二八四。你可以与java爱好者共同学习和交流经验。无论是从技术上,还是从实际工作的执行上,都要提升,这样才能从众多的从业人员中脱颖而出。成为领高薪资,有高职位的人上人。
如果你还没有足够的勇气去面试,觉得自己的能力还达不到企业的高水平要求,可以来一起交流一下。
总而言之,把自己的优势发挥到极致。祝你面试成功!
⑼ 面试题,商城购物系统怎么保证购物车中商品的唯一性
可能之前是在游客身份的状态下将商品放入了购物车,系统清除了cookies后,导致购物车记录消失建议你以后在登录状态下使用购物车。
⑽ java购物车设计问题
取所选物品的id,每个id用逗号分开,存成一个字符串,在后台取的时候再把字符串中的逗回号去掉,答分成一个个的id就OK了!
JS:
var e=document.getElementsByTagName("input");
FORM.id.value="";
var j=0;
for(var i=0;i <e.length;i++)
{
if(e[i].type== "checkbox" && e[i].checked)
{
if(e[i].value!="hehe")
{
FORM.id.value=FORM.id.value+","+e[i].value;
j++;
}
}
}
后台:
if(ids!=null && !ids.equals("")){
//使用“,”分割字符串
ids=ids.trim().substring(1);
FieldTokenizer ft = new FieldTokenizer(ids, ",");
for(int j=0;j<ft.size();j++)
{
String id = ft.nextField();
}
那就把数量也逗号存里面
我没更好的方法了
跟你一起坐等高手解决