Przeglądaj źródła

上传文件至 'Shop/src/cn/servlet'

1801010538 5 lat temu
rodzic
commit
8ad35de5c4

+ 107 - 0
Shop/src/cn/servlet/AddProductServlet.java

@@ -0,0 +1,107 @@
+package cn.servlet;
+
+import cn.domain.Product;
+import cn.service.ProductService;
+import cn.service.impl.ProductServiceImpl;
+import cn.util.UUIDUtils;
+import org.apache.catalina.connector.Request;
+import org.apache.commons.fileupload.FileItem;
+import org.apache.commons.fileupload.disk.DiskFileItemFactory;
+import org.apache.commons.fileupload.servlet.ServletFileUpload;
+
+import javax.servlet.ServletException;
+import javax.servlet.annotation.MultipartConfig;
+import javax.servlet.annotation.WebServlet;
+import javax.servlet.http.HttpServlet;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.*;
+import java.net.URLEncoder;
+import java.util.List;
+@MultipartConfig
+@WebServlet("/AddProductServlet/*")
+public class AddProductServlet extends HttpServlet {
+    ProductService productService = new ProductServiceImpl();
+    Product product  = new Product();
+    @Override
+    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
+        this.doPost(request,response);
+    }
+
+    @Override
+    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
+        response.setContentType("text/html;charset=UTF-8");
+        response.setCharacterEncoding("UTF-8");
+        request.setCharacterEncoding("UTF-8");
+        String serverPath = getServletContext().getRealPath("/").replace("\\", "/");
+        String path = "D:/idea project/shop/web/products";
+        //临时文件目录
+        String tmpPath = "D:/idea project/shop/web/tmp";
+        //检查我们是否有文件上传请求
+        boolean isMultipart = ServletFileUpload.isMultipartContent(request);
+        //1,声明DiskFileItemFactory工厂类,用于在指定磁盘上设置一个临时目录
+        DiskFileItemFactory disk = new DiskFileItemFactory(1024*10,new File(tmpPath));
+        //2,声明ServletFileUpload,接收上边的临时文件。也可以默认值
+        ServletFileUpload products = new ServletFileUpload(disk);
+        InputStream in = null;
+        String pcompany = null;
+        try {
+            List<FileItem> list = products.parseRequest(request);
+            FileItem id = (FileItem)list.get(0);
+            int pid =Integer.parseInt(id.getString("UTF-8"));
+
+            FileItem name = (FileItem)list.get(2);
+            String pname = name.getString("UTF-8");
+
+            FileItem detail = (FileItem)list.get(3);
+            String pdetail = detail.getString("UTF-8");
+
+            FileItem price = (FileItem)list.get(4);
+            Double pprice = Double.valueOf(price.getString("UTF-8"));
+
+            FileItem company = (FileItem)list.get(5);
+            pcompany = company.getString("UTF-8");
+
+            product.setId(pid);
+            product.setName(pname);
+            product.setPrice(pprice);
+            product.setDetail(pdetail);
+            product.setScompany(pcompany);
+            product.setMid(UUIDUtils.getCode());
+            FileItem file = (FileItem)list.get(1);
+            if(file.getName()=="") {
+                product.setImg("*");
+            }else {
+                //获取文件名:
+                String fileName = file.getName();
+                //获取文件的类型:
+                product.setImg(fileName);
+                String fileType = file.getContentType();
+                //获取文件的字节码:
+                in = file.getInputStream();
+                //文件大小
+                int size = file.getInputStream().available();
+                //声明输出字节流
+                OutputStream out = new FileOutputStream(path+"/"+fileName);
+                //文件copy
+                byte[] b = new byte[1024];
+                int len = 0;
+                while((len=in.read(b))!=-1){
+                    out.write(b, 0, len);
+                }
+                productService.addProduct(product);
+                //request.getRequestDispatcher("index.jsp").forward(request,response);
+                out.flush();
+                out.close();
+                //删除上传生成的临时文件
+                file.delete();
+            }
+        }catch (Exception e){
+            e.getMessage();
+        }
+        //URLEncoder.encode(pcompany,"UTF-8") --- 重定向redirect(参数中文乱码)
+        response.sendRedirect("ProductManagementServlet?scompany="+ URLEncoder.encode(pcompany,"UTF-8"));
+
+
+    }
+}

+ 42 - 0
Shop/src/cn/servlet/AdminLoginServlet.java

@@ -0,0 +1,42 @@
+package cn.servlet;
+
+import cn.domain.Company;
+import cn.service.CompanyService;
+import cn.service.impl.CompanyServiceImpl;
+
+import javax.servlet.ServletException;
+import javax.servlet.annotation.WebServlet;
+import javax.servlet.http.HttpServlet;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.util.List;
+
+@WebServlet("/AdminLoginServlet/*")
+public class AdminLoginServlet extends HttpServlet {
+    CompanyService companyService = new CompanyServiceImpl();
+    @Override
+    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
+        this.doPost(request,response);
+    }
+
+    @Override
+    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
+        String user = request.getParameter("user");
+        String password = request.getParameter("password");
+
+        if(user.equals("admin")&&password.equals("123456")){
+            try {
+                List<Company> companies = companyService.companyInfomation();
+                request.getSession().setAttribute("companies",companies);
+            } catch (Exception e) {
+                e.printStackTrace();
+            }
+            request.getRequestDispatcher("admin.jsp").forward(request,response);
+        }else{
+            request.setAttribute("msg","登录失败,账号或密码不正确");
+            request.getRequestDispatcher("admin_login.jsp").forward(request,response);
+        }
+
+    }
+}

+ 33 - 0
Shop/src/cn/servlet/AgentInformationServlet.java

@@ -0,0 +1,33 @@
+package cn.servlet;
+
+import cn.domain.Agent;
+import cn.service.AgentService;
+import cn.service.impl.AgentServiceImpl;
+
+import javax.servlet.ServletException;
+import javax.servlet.annotation.WebServlet;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+
+@WebServlet("/AgentInformationServlet/*")
+public class AgentInformationServlet extends javax.servlet.http.HttpServlet {
+    AgentService agentService = new AgentServiceImpl();
+    @Override
+    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
+        this.doPost(request,response);
+    }
+
+    @Override
+    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
+        try {
+            String mid = request.getParameter("mid");
+           // System.out.println(mid);
+            Agent agent = agentService.findByMid(mid);
+            request.setAttribute("agent",agent);
+            request.getRequestDispatcher("user_management.jsp").forward(request,response);
+        }catch (Exception e){
+            e.printStackTrace();
+        }
+    }
+}

+ 47 - 0
Shop/src/cn/servlet/BaseServlet.java

@@ -0,0 +1,47 @@
+package cn.servlet;
+
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.ObjectMapper;
+
+import javax.servlet.ServletException;
+import javax.servlet.annotation.WebServlet;
+import javax.servlet.http.HttpServlet;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+
+@WebServlet("/Baseservlet")
+public class BaseServlet extends HttpServlet {
+    protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
+      //1.获取请求的路径
+        String uri = request.getRequestURI();
+        //2.获取方法名称
+        String methodName = uri.substring(uri.lastIndexOf('/') + 1);
+        //System.out.println("==============="+methodName);
+        //3.获取方法对象method
+        try {
+         Method method = this.getClass().getMethod(methodName, HttpServletRequest.class, HttpServletResponse.class);
+         //4.执行方法
+         method.invoke(this,request,response);
+        } catch (NoSuchMethodException e) {
+         e.printStackTrace();
+        } catch (IllegalAccessException e) {
+         e.printStackTrace();
+        } catch (InvocationTargetException e) {
+         e.printStackTrace();
+        }
+
+       }
+       //直接将传入的对象序列化json,并且返回客户端
+      public void writeValue(Object obj,HttpServletResponse response) throws IOException {
+       ObjectMapper mapper = new ObjectMapper();
+       response.setContentType("application/json;charset=utf-8");
+       mapper.writeValue(response.getOutputStream(),obj);
+      }
+      public String writeValue(Object obj) throws JsonProcessingException {
+       ObjectMapper mapper = new ObjectMapper();
+       return mapper.writeValueAsString(obj);
+      }
+}

+ 46 - 0
Shop/src/cn/servlet/BuysOrderServlet.java

@@ -0,0 +1,46 @@
+package cn.servlet;
+
+import cn.domain.Order;
+import cn.service.OrderService;
+import cn.service.impl.OrderServiceImpl;
+
+import javax.servlet.ServletException;
+import javax.servlet.annotation.WebServlet;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import javax.xml.crypto.Data;
+import java.io.IOException;
+import java.text.DateFormat;
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+@WebServlet("/BuysOrderServlet/*")
+public class BuysOrderServlet extends javax.servlet.http.HttpServlet{
+    OrderService orderService = new OrderServiceImpl();
+    @Override
+    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
+        this.doPost(request,response);
+    }
+
+    @Override
+    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
+        try{
+              String buyer = request.getParameter("buyer");
+            List<Order> orders = orderService.findByBuyer(buyer);
+//            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+//            List date = new ArrayList();
+//            for(int i =0;i<date.size();i++) {
+//                String time = sdf.format(order.getTime());
+//                date.add(time);
+//            }
+//            request.setAttribute("date",date);
+           request.setAttribute("orders",orders);
+            request.getRequestDispatcher("b_order_management.jsp").forward(request,response);
+        }catch (Exception e){
+            e.printStackTrace();
+        }
+
+    }
+}