1 package cn.bd.Servlet;
2
3 import java.io.File;
4 import java.io.IOException;
5
6 import java.io.PrintWriter;
7 import java.util.Iterator;
8 import java.util.List;
9
10 import javax.servlet.ServletException;
11 import javax.servlet.http.HttpServlet;
12 import javax.servlet.http.HttpServletRequest;
13 import javax.servlet.http.HttpServletResponse;
14
15 import org.apache.commons.fileupload.FileItem;
16 import org.apache.commons.fileupload.FileItemFactory;
17 import org.apache.commons.fileupload.disk.DiskFileItemFactory;
18 import org.apache.commons.fileupload.servlet.ServletFileUpload;
19
20 import cn.bd.dao.impl.Product;
21 import cn.bd.entity.EB_Product;
22
23 public class ProductAdd extends HttpServlet {
24
25 /**
26 * Constructor of the object.
27 */
28 public ProductAdd() {
29 super();
30 }
31
32 /**
33 * Destruction of the servlet. <br>
34 */
35 public void destroy() {
36 super.destroy(); // Just puts "destroy" string in log
37 // Put your code here
38 }
39
40 /**
41 * The doGet method of the servlet. <br>
42 *
43 * This method is called when a form has its tag value method equals to get.
44 *
45 * @param request the request send by the client to the server
46 * @param response the response send by the server to the client
47 * @throws ServletException if an error occurred
48 * @throws IOException if an error occurred
49 */
50 public void doGet(HttpServletRequest request, HttpServletResponse response)
51 throws ServletException, IOException {
52 request.setCharacterEncoding("utf-8");
53 response.setContentType("text/html;charset:utf-8");
54 response.setCharacterEncoding("utf-8");
55 PrintWriter out = response.getWriter();
56
57 String productName="";
58 String productDetail="";
59 String parentId="";
60 String productPrice="";
61 String productNumber="";
62
63 request.setCharacterEncoding("utf-8");
64 String uploadFileName=""; //上传的文件名
65 String filedName=""; //表单字段元素的name属性
66 boolean isMultipart=ServletFileUpload.isMultipartContent(request);
67
68 //1.得到product文件夹上传到tomcat服务器后的绝对路径
69 String uploadFilePath=request.getSession().getServletContext().getRealPath("images/product/");
70
71 if(isMultipart){
72 FileItemFactory factory=new DiskFileItemFactory();
73 ServletFileUpload upload=new ServletFileUpload(factory);
74 try {
75 List<FileItem> items=upload.parseRequest(request);
76 Iterator<FileItem> iter=items.iterator();
77 while(iter.hasNext()){
78 FileItem item=(FileItem)iter.next();
79 if(item.isFormField()){ //普通表单字段返回true,文件表单字段返回false
80 filedName=item.getFieldName();
81 if(filedName.equals("productName")){
82 productName =new String(item.getString().getBytes("iso-8859-1"),"utf-8"); //处理乱码
83 }
84 if(filedName.equals("productDetail")){
85 productDetail =new String(item.getString().getBytes("iso-8859-1"),"utf-8");
86 }
87 if(filedName.equals("parentId")){
88 parentId =new String(item.getString().getBytes("iso-8859-1"),"utf-8");
89 }
90 if(filedName.equals("productPrice")){
91 productPrice =new String(item.getString().getBytes("iso-8859-1"),"utf-8");
92 }
93 if(filedName.equals("productNumber")){
94 productNumber =new String(item.getString().getBytes("iso-8859-1"),"utf-8");
95 }
96 }else{
97 String fileName=item.getName();
98 if(fileName!=null&& !fileName.equals("")){
99 File fullFile=new File(item.getName());
100 File saveFile=new File(uploadFilePath, fullFile.getName());
101 item.write(saveFile);
102 uploadFileName=fullFile.getName();
103 /*System.out.println("上传成功后的文件名是:"+uploadFileName);*/
104 }
105 }
106 }
107 } catch (Exception e) {
108 e.printStackTrace();
109 }
110 }
111 /*/EasyBuy/manage/manage-result.jsp*/
112
113
114
115
116 /* System.out.println("商品名称:"+productName);
117 System.out.println("商品描述:"+productDetail);
118 System.out.println("商品父类:"+parentId);
119 System.out.println("商品价格:"+productPrice);
120 System.out.println("商品数量:"+productNumber);
121 System.out.println("图片名称:"+uploadFileName);*/
122
123 Product pro=new Product();
124 EB_Product p=new EB_Product();
125
126 p.setEp_name(productName);
127 p.setEp_description(productDetail);
128 p.setEp_price(Float.valueOf(productPrice));
129 p.setEp_stock(Integer.valueOf(productNumber));
130 p.setEp_file_name(uploadFileName);
131
132 int result=pro.addProduct(p);//加到数据库商品列表
133
134 if(result>0){
135 request.getSession().removeAttribute("productList"); //删除会话中的商品列表,防止前台不更新
136 out.println("<script type='text/javascript'>alert('新增商品成功!');location.href='manage/product.jsp';</script>"); //后退
137 /*response.sendRedirect("manage/product.jsp");*/
138 }else{
139 out.println("<script type='text/javascript'>alert('新增商品异常!');history.back(-1);</script>"); //后退
140 return;
141 }
142 out.flush();
143 out.close();
144 }
145
146 /**
147 * The doPost method of the servlet. <br>
148 *
149 * This method is called when a form has its tag value method equals to post.
150 *
151 * @param request the request send by the client to the server
152 * @param response the response send by the server to the client
153 * @throws ServletException if an error occurred
154 * @throws IOException if an error occurred
155 */
156 public void doPost(HttpServletRequest request, HttpServletResponse response)
157 throws ServletException, IOException {
158
159 doGet(request, response);
160 }
161
162 /**
163 * Initialization of the servlet. <br>
164 *
165 * @throws ServletException if an error occurs
166 */
167 public void init() throws ServletException {
168 // Put your code here
169 }
170
171 }