📄 goods_cartservlet.java
字号:
package ch24.Servlet;
import java.util.Vector;
import java.io.IOException;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import ch24.JavaBean.Goods;
import ch24.JavaBean.DB_goods;
import ch24.JavaBean.DB_orders;
import ch24.JavaBean.Orders_detail;
import ch24.JavaBean.DB_orders_detail;
//购物车处理页面
public class goods_cartservlet extends javax.servlet.http.HttpServlet
{
//private static final long serialVersionUID = 1L;
/**
* 处理客户发来的请求,并把处理结果派发到JSP页面中予以显示
*/
DB_goods db_goods=new DB_goods();
//构造函数
public goods_cartservlet()
{
super();
}
public void doGet(HttpServletRequest request,HttpServletResponse response)
throws IOException,ServletException
{ //抛出接受请求的过程中的异常信息
doPost(request,response);
}
public void doPost(HttpServletRequest request,HttpServletResponse response)
throws ServletException, IOException
{
request.setCharacterEncoding("gb2312");
response.setContentType("text/html; charset=gb2312");
try
{
Vector vector=new Vector();
//从session对象中取出购物车
vector=(Vector)request.getSession(true).getAttribute("vector");
String action=request.getParameter("action");
//如果变量action的值为checkout,则处理结帐请求,并把处理结果
//派发到check_out.jsp页面中予以显示
if(action.equals("checkout"))
{
String sum=request.getParameter("total");
double total=0;
try {
total=Double.parseDouble(sum);}
catch (Exception ex)
{
total=0;
System.out.println(ex.getMessage());
}
for(int i=0;i<vector.size();i++)
{
Goods goods=new Goods();
goods=(Goods)vector.elementAt(i);
//计算折扣价格以及金额;
double amount=goods.getGoods_number()*goods.getGoods_price()*goods.getGoods_discount()/10;
total=total+amount;
goods.setGoods_amount(amount);
vector.setElementAt(goods,i);
}
request.getSession(true).setAttribute("vector",vector);
RequestDispatcher rd = request.getRequestDispatcher("/check_out.jsp");
rd.forward(request,response);
}
//如果变量action的值为add,则对客户购买商品数量进行设置:若购物车中
//尚不存在此类商品或此类商品数量为0,则根据客户的需要对商品的数量直接设置,
//若购物车中已经存在此种商品,则在商品原数量的基础上进行相加
if(action.equals("add"))
{
String goods_id=(String)request.getParameter("goods_id");
String goods_number=(String)request.getParameter("number");
int number=0;
try {
number=Integer.parseInt(goods_number);
}
catch (Exception ex)
{
System.out.println(ex.getMessage());
}
int id=Integer.parseInt(goods_id);
if(vector==null)
{
vector=new Vector();
Goods goods=new Goods();
goods=db_goods.listgoods(goods_id);
goods.setGoods_number(number);
vector.addElement(goods);
request.getSession(true).setAttribute("vector",vector);
RequestDispatcher rd = request.getRequestDispatcher("goods_show.jsp");
rd.forward(request,response);
}
else
{
//使用flag标记来判断购物车中是否存在同类商品,若购物车中
//存在同类商品,则赋flag的值为1
int flag=0;
for(int i=0;i<vector.size();i++)
{
Goods goods=(Goods)vector.elementAt(i);
if(goods.getGoods_id()==id)
{
flag=1;
int num=number+goods.getGoods_number();
goods.setGoods_number(num);
vector.setElementAt(goods,i);
//把购物车放在session对象中,以实现会话跟踪
request.getSession(true).setAttribute("vector",vector);
RequestDispatcher rd = request.getRequestDispatcher("goods_show.jsp");
rd.forward(request,response);
}
}
if(flag==0)
{
Goods goods=new Goods();
goods=db_goods.listgoods(goods_id);
goods.setGoods_number(number);
vector.addElement(goods);
request.getSession(true).setAttribute("vector",vector);
RequestDispatcher rd = request.getRequestDispatcher("/goods_show.jsp");
rd.forward(request,response);
}
}
}
//如果变量action的值为delete,则删除购物车中相应商品
if(action.equals("delete"))
{
String index=request.getParameter("delindex");
int dex=Integer.parseInt(index);
vector.removeElementAt(dex);
request.getSession(true).setAttribute("vector",vector);
RequestDispatcher rd = request.getRequestDispatcher("/goods_show.jsp");
rd.forward(request,response);
}
//如果变量action的值为mod,则修改购物车中相应商品的数量
if(action.equals("mod"))
{
String num=request.getParameter("number");
String index=request.getParameter("modindex");
int gnum=Integer.parseInt(num);
int dex=Integer.parseInt(index);
for(int i=0;i<vector.size();i++)
{
if(dex==i)
{
Goods goods=(Goods)vector.elementAt(i);
goods.setGoods_number(gnum);
vector.setElementAt(goods,i);
}
}
request.getSession(true).setAttribute("vector",vector);
RequestDispatcher rd = request.getRequestDispatcher("/goods_show.jsp");
rd.forward(request,response);
}
//如果变量action的值为remo,则清空购物车
if(action.equals("remo"))
{
vector.removeAllElements();
request.getSession(true).setAttribute("vector",vector);
RequestDispatcher rd = request.getRequestDispatcher("/goods_show.jsp");
rd.forward(request,response);
}
//如果变量action的值为confirm,则确认帐单,完成购物
if(action.equals("confirm"))
{
DB_orders db_orders=new DB_orders();
DB_orders_detail db_order_detail=new DB_orders_detail();
String orderid=request.getParameter("orderid");
db_orders.mod_status(orderid);
Vector glist=new Vector();
glist=(Vector)request.getSession(true).getAttribute("orderGoods");
for(int i=0;i<glist.size();i++)
{
Orders_detail details=new Orders_detail();
details=(Orders_detail)glist.elementAt(i);
db_order_detail.store_orders_detail(details);
}
request.getSession(true).invalidate();
RequestDispatcher rd = request.getRequestDispatcher("/confagain.jsp");
rd.forward(request,response);
}
}
catch(Exception e)
{
e.printStackTrace();
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -