📄 shoppingservlet.java
字号:
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.util.*;
import changpian.CP;
public class ShoppingServlet extends HttpServlet {
public void doPost (HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException {
HttpSession session = req.getSession(true);
req.setCharacterEncoding("GBK");
Vector vector=(Vector)session.getAttribute("total");
String action = req.getParameter("action");
if (!action.equals("checkout")) {
if (action.equals("delete")) {
String del = req.getParameter("delindex");
int index = Integer.parseInt(del);;
vector.removeElementAt(index); // 从vector中将相应的数据删除
} else if (action.equals("add")) {
//以前是否购买了同样的cd
boolean again=false; //again变量表示是否以前购买过相同的cd
CP newCp = getCD(req);
if (vector==null) {
vector = new Vector();
vector.addElement(newCp);
} else { // 不是第一次购买
for (int i=0; i< vector.size(); i++) {
CP cd = (CP) vector.elementAt(i);
//判断购买的cd是否已经买过
if (cd.getName().equals(newCp.getName())) {
cd.setQuantity(cd.getQuantity()+newCp.getQuantity());
vector.setElementAt(cd,i);
again = true;
}
}
//如果购买的cd在前面没有买过
if (!again)
vector.addElement(newCp);
}
}
session.setAttribute("total", vector);
String url="/shop.jsp";
getServletConfig().getServletContext().getRequestDispatcher(url).forward(req, res);
} else if (action.equals("checkout")) {
float total =0;
for (int i=0; i< vector.size();i++) {
CP one = (CP) vector.elementAt(i);
float price= one.getPrice();
int qty = one.getQuantity();
total += (price * qty);
}
total += 0.005;
String amount = "" + total;
int n = amount.indexOf('.');
amount = amount.substring(0,n+3);
req.setAttribute("amount",amount);
String url="/checkout.jsp";
getServletConfig().getServletContext().getRequestDispatcher(url).forward(req, res);
}
}
private CP getCD(HttpServletRequest req) {
String cdname = req.getParameter("CD");
String qty = req.getParameter("qty");
StringTokenizer st = new StringTokenizer(cdname,"|");
String name = st.nextToken();
String artist = st.nextToken();
String country = st.nextToken();
String price = st.nextToken();
price = price.replace('$',' ').trim();
CP cp = new CP();
cp.setName(name);
cp.setArtist(artist);
cp.setCountry(country);
cp.setPrice(Float.parseFloat(price));
cp.setQuantity(Integer.parseInt(qty));
return cp;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -