📄 buy.java
字号:
package com.yxq.servlet;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.servlet.RequestDispatcher;
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 com.yxq.bean.SingleObject;
public class Buy extends HttpServlet {
private Map havemap=new HashMap();
protected void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException {
doPost(request,response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
HttpSession session=request.getSession();
String sessionID=session.getId();
int order=-1;
String strorder=request.getParameter("list_order");
try{
order=Integer.parseInt(strorder);
}catch(NumberFormatException e){
order=-1;
}
if(order==-1){
System.out.println("请选择商品!");
}else{
List currentlist=(ArrayList)session.getAttribute("currentlist");
if(currentlist!=null){
SingleObject select=(SingleObject)(currentlist.get(order));
int selectId=select.getId();
havemap=(HashMap)session.getServletContext().getAttribute("havemap");
if(havemap!=null&&havemap.size()!=0){
if(havemap.containsKey(selectId)){
synchronized(havemap){
int rem=(Integer)havemap.get(selectId);
int exist=0;
exist=rem-1;
if(exist<0){
select.setMessage("库存已空!");
select.setHave(0);
currentlist.set(order,select);
session.setAttribute("currentlist",currentlist);
}
else{
havemap.put(selectId,exist);
session.getServletContext().setAttribute("havemap",havemap);
SingleObject buysingle=null;
Map carmap=(HashMap)session.getAttribute("carmap");
/*** 如果购物车为空 ***/
if(carmap==null||carmap.size()==0){
carmap=new HashMap();
buysingle=new SingleObject();
buysingle.setId(selectId);
buysingle.setName(select.getName());
buysingle.setPrice(select.getPrice());
buysingle.setTruehave(select.getTruehave());
buysingle.setBuyN(1);
buysingle.setBuyMoney(buysingle.getBuyN()*buysingle.getPrice());
buysingle.setHave(exist);
carmap.put(selectId,buysingle);
}
/*** 如果购物车不为空 ***/
else{
/*** 如果购物车已存在选中的物品 ***/
if(carmap.containsKey(selectId)){
buysingle=(SingleObject)carmap.get(selectId);
buysingle.setBuyN(buysingle.getBuyN()+1);
buysingle.setBuyMoney(buysingle.getPrice()*buysingle.getBuyN());
buysingle.setHave(exist);
carmap.put(selectId,buysingle);
}
/*** 如果购物车不存在选中的物品 ***/
else{
buysingle=new SingleObject();
buysingle.setId(selectId);
buysingle.setName(select.getName());
buysingle.setPrice(select.getPrice());
buysingle.setTruehave(select.getTruehave());
buysingle.setBuyN(1);
buysingle.setBuyMoney(buysingle.getBuyN()*buysingle.getPrice());
buysingle.setHave(exist);
carmap.put(selectId,buysingle);
}
} //购物车不为空
session.setAttribute("carmap",carmap);
Map usermap=(HashMap)session.getServletContext().getAttribute("usermap");
usermap.put(sessionID,carmap);
session.getServletContext().setAttribute("usermap",usermap);
} //库存不为空
} //synchronized
} //if(havemap.containsKey(selectId))
else{select.setMessage("未知库存量!"); }
} //if(havemap!=null&&havemap.size()!=0)
else{select.setMessage("HashMap库存表空!"); }
} //if(currentlist!=null)
else{System.out.println("列表为空!");}
}
RequestDispatcher rd=request.getRequestDispatcher("/shop/preindex");
rd.forward(request,response);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -