package orz.treeSquirrels.web;
import java.io.File;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Iterator;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileItemFactory;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
import orz.treeSquirrels.entity.ProductInfo;
import orz.treeSquirrels.service.ProductInfoService;
import orz.treeSquirrels.service.impl.ProductInfoServiceImpl;
public class ProductServlet extends HttpServlet {
ProductInfoService proService = new ProductInfoServiceImpl();
/**
* (非 Javadoc)
* <p>Description(描述):doget方法 </p>
* <p>Title: doGet</p>
* @param request
* @param response
* @throws ServletException
* @throws IOException
* @see javax.servlet.http.HttpServlet#doGet(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
*/
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=utf-8");
request.setCharacterEncoding("utf-8");
String tag = request.getParameter("tag");
if (tag.equals("add")) {
// 添加商品
addProduct(request, response);
}
}
/**
*
* @Title: addProduct
* @Description: 添加食品信息
* @param @param request
* @param @param response
* @param @throws IOException 设定文件
* @return void 返回类型
* @throws
*/
private void addProduct(HttpServletRequest request,
HttpServletResponse response) throws IOException {
PrintWriter out = response.getWriter();
request.setCharacterEncoding("utf-8");
String produceName = ""; // 商品名称
String details = ""; // 商品详情
String price = ""; // 价格
int stock = 0; // 库存
String uploadFileName = ""; // 上传的文件名(大图)
String uploadFileName1 = ""; // 上传的文件名(小图1)
String uploadFileName2 = ""; // 上传的文件名(小图2)
String uploadFileName3 = ""; // 上传的文件名(小图3)
String fileName = ""; // 表单字段元素的name属性值
String filedName = ""; //获取文件名称
String picPath = "";
// 请求信息中的内容是否是multipart类型
boolean isMultipart = ServletFileUpload.isMultipartContent(request);
// 上传文件的存储路径(服务器文件系统上的绝对文件路径)
String uploadFilePath = request.getSession().getServletContext()
.getRealPath("upload/");
if (isMultipart) {
FileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload upload = new ServletFileUpload(factory);
try {
// 解析from表单中所有文件
@SuppressWarnings("unchecked")
List<FileItem> items = upload.parseRequest(request);
Iterator<FileItem> iter = items.iterator();
while (iter.hasNext()) {
FileItem item = (FileItem) iter.next();
if (item.isFormField()) {
// 判断,是普通表单
fileName = item.getFieldName();
// 表单字段的name属性
if (fileName.equals("produceName")) {
produceName = item.getString("utf-8");
} else if (fileName.equals("details")) {
details = item.getString("utf-8");
} else if (fileName.equals("price")) {
price = item.getString("utf-8");
} else if (fileName.equals("stock")) {
stock = Integer.parseInt(item.getString("utf-8"));
}
} else {
// 文件表单字段
// 表单字段的name属性
fileName = item.getFieldName();
if (fileName.equals("bigfile")) {
filedName = item.getName();
if (fileName != null && !filedName.equals("")) {
File fullFile = new File(item.getName());
File saveFile = new File(uploadFilePath,
fullFile.getName());
item.write(saveFile);
uploadFileName = fullFile.getName();
picPath = saveFile.toString();
}
} else if (fileName.equals("smallfile1")) {
// 小图1
filedName = item.getName();
if (fileName != null && !filedName.equals("")) {
File fullFile = new File(item.getName());
File saveFile = new File(uploadFilePath,
fullFile.getName());
item.write(saveFile);
uploadFileName1 = fullFile.getName();
picPath = saveFile.toString();
}
} else if (fileName.equals("smallfile2")) {
// 小图2
filedName = item.getName();
if (fileName != null && !filedName.equals("")) {
File fullFile = new File(item.getName());
File saveFile = new File(uploadFilePath,
fullFile.getName());
item.write(saveFile);
uploadFileName2 = fullFile.getName();
picPath = saveFile.toString();
}
} else if (fileName.equals("smallfile3")) {
// 小图3
filedName = item.getName();
if (fileName != null && !filedName.equals("")) {
File fullFile = new File(item.getName());
File saveFile = new File(uploadFilePath,
fullFile.getName());
item.write(saveFile);
uploadFileName3 = fullFile.getName();
picPath = saveFile.toString();
}
}
}
}
} catch (Exception ex) {
ex.printStackTrace();
}
ProductInfo product = new ProductInfo();
product.setProductName(produceName);
product.setPrice(Integer.parseInt(price));
product.setDetails(details);
product.setStock(stock);
product.setFileName("upload/" + uploadFileName);
product.setFileName_1("upload/" + uploadFileName1);
product.setFileName_2("upload/" + uploadFileName2);
product.setFileName_3("upload/" + uploadFileName3);
int rel = proService.addProductInfo(product);
if (rel > 0) {
// 添加商品成功之后转发到查询所有的商品界面
out.print("<script>alert('恭喜您,添加商品成功!');location.href='ProductInfoServlet?tag=show';</script>");
} else {
out.print("<script>alert('很抱歉,添加商品失败!');location.href='ProductInfoServlet?tag=show';</script>");
}
}
}
/**
* (非 Javadoc)
* <p>Description(描述): dopost方法</p>
* <p>Title: doPost</p>
* @param request
* @param response
* @throws ServletException
* @throws IOException
* @see javax.servlet.http.HttpServlet#doPost(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
*/
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}
}