📄 additemtocartservlet1.java
字号:
package www.mary.servlet;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.List;
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 www.mary.Bean.ProitemBean;
import www.mary.access.PowerAccess;
public class AddItemToCartServlet1 extends HttpServlet {
public AddItemToCartServlet1() {
super();
}
public void init() throws ServletException {
}
//得到Itemid,把他们存入一个list容器,然后打印出要输出的项目
//1,你第一次买个东西,来到这里用request取出来itemid,然后通过他存入list容器,响应倒cart页面
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
HttpSession session=request.getSession(true);
String itemid=request.getParameter("itemid"); //得到从页面传递过来的值
String type=request.getParameter("type");
ProitemBean pb=null;
List list=new ArrayList();
if(type.equals("add")) //判断如果是增加商品
{
if(session.getAttribute("list")==null)
{ //第一次购物
pb=PowerAccess.getcart(itemid); //展现购物商品的信息
pb.setQTY(1); //每次默认每样商品取一个
list.add(pb); //从第一次开始现把实例存入list,
session.setAttribute("list",list); //再把list存入session
response.sendRedirect("./cart.jsp"); //把响应指向购物车页面
}else{ //如果是第N次购物,那么我们先取出list,然后通过itemid取出一个实例,再把实例累加到
list=(List)session.getAttribute("list"); //第N次购物时候,session不为空,先取出list
/**
* 错误的程序,没有循环!
if(((ProitemBean)((List)session.getAttribute("list"))).getITEMID().equals(itemid))
{
pb.setQTY(pb.getQTY()+1); //这里是给bean里面加1
response.sendRedirect("./cart.jsp");
}else{
pb=PowerAccess.getcart(itemid);
pb.setQTY(1);
list.add(pb); //把新实例追加到容器里面
session.setAttribute("list",list);
response.sendRedirect("./cart.jsp");
}
**/
for(int i=0;i<list.size();i++) //把list里面的实例bean展现出来
{
pb=(ProitemBean)list.get(i); //取出实例
if(pb.getITEMID().equals(itemid)) //如果我们是第二次买同样的商品,那么就让数量自动加1
{
pb.setQTY(pb.getQTY()+1); //这里是给bean里面加1
break;
}
if(i==list.size()-1){ //如果买的不是同样的商品,我们就自动的存入实例,并让数量为1
pb=PowerAccess.getcart(itemid);
pb.setQTY(1);
list.add(pb); //把新实例追加到容器里面
session.setAttribute("list",list);
break;
}
}
response.sendRedirect("./cart.jsp");
}
}else if(type.equals("delete")){
list=(List)session.getAttribute("list");
for(int i=0;i<list.size();i++){
pb=(ProitemBean)list.get(i); //取出所有的实例
if(pb.getITEMID().equals(itemid)){
list.remove(pb);
if(list!=null&list.size()>0){
session.setAttribute("list",list);
}else{
session.removeAttribute("list");
}
}
}
//如果传递的是delete,就清楚这个itemid在session中的信息
/**
* 这是利用对list的长度判断来删除
if(list.size()==1){
session.removeAttribute("list");
session.setAttribute("itemid",itemid);
}else{
for(int i=0;i<list.size();i++)
{
pb=(ProitemBean)list.get(i);
if(pb.getITEMID().equals(itemid)){
list.remove(pb);
session.setAttribute("list",list);
}
*/
response.sendRedirect("./cart.jsp");
}
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
this.doGet(request,response);
}
public void destroy() {
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -