Java tutorial
/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package servlets; import Application.Core.response.Response; import Application.Core.response.ResponseHelper; import Application.Facade; import Application.Models.DTO.UserDTO; import java.io.File; import java.io.IOException; import java.io.PrintWriter; import java.util.Iterator; import java.util.List; import javax.servlet.ServletContext; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.*; import java.util.*; import java.util.logging.Level; import java.util.logging.Logger; import javax.servlet.*; import javax.servlet.http.*; import org.apache.commons.fileupload.*; import org.apache.commons.fileupload.disk.*; import org.apache.commons.fileupload.servlet.*; /** * * @author usuario */ public class Handler extends HttpServlet { private Facade facade = Facade.getInstance(); @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String out = ""; Response res = null; response.setContentType("text/json;charset=UTF-8"); String action = request.getParameter("action"); this.print(response, out); } @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String out = ""; Response res = null; response.setContentType("text/json;charset=UTF-8"); String action = request.getParameter("action"); if (action != null && action.length() == 0) { return; } else if (action.equalsIgnoreCase("login")) { out = login(request); } else if (action.equalsIgnoreCase("send_email")) { out = send_email(request).toString(); } this.print(response, out); } /** * * @param request * @return */ private Response send_email(HttpServletRequest request) { UserDTO user = (UserDTO) request.getSession().getAttribute("user"); if (user != null) { int maxFileSize = 5000 * 1024; int maxMemSize = 5000 * 1024; ServletContext context = request.getServletContext(); String contentType = request.getContentType(); if ((contentType.indexOf("multipart/form-data") >= 0)) { String email = ""; String subject = ""; try { DiskFileItemFactory factory = new DiskFileItemFactory(); // maximum size that will be stored in memory factory.setSizeThreshold(maxMemSize); // Location to save data that is larger than maxMemSize. factory.setRepository(new File("c:\\temp")); ServletFileUpload upload = new ServletFileUpload(factory); upload.setSizeMax(maxFileSize); List fileItems = upload.parseRequest(request); FileItem fi = (FileItem) fileItems.get(0); ; subject = request.getParameter("subject"); email = java.net.URLDecoder.decode(request.getParameter("email"), "UTF-8"); //ARREGLAR ESTOOOOOOOOOOOOOOOOO return this.facade.sendEmail(user, subject, email, fi); } catch (FileUploadException ex) { ex.printStackTrace(); return ResponseHelper.getResponse(-3, "No se pudo subir el archivo", null); } catch (UnsupportedEncodingException ex) { ex.printStackTrace(); System.out.println("email:" + email); return ResponseHelper.getResponse(-3, "No se pudo parsear el email", null); } catch (Exception ex) { ex.printStackTrace(); return ResponseHelper.getResponse(-3, "No se pudo escribir el archivo en el disco", null); } } else { return ResponseHelper.getResponse(-2, "Cabecera HTTP erronea", null); } } return ResponseHelper.getResponse(-2, "Login is required", null); } private String login(HttpServletRequest request) { String username = request.getParameter("username"); String password = request.getParameter("password"); if (username.length() > 0 && password.length() > 0) { Response res = this.facade.login(username, password); if (res.getStatus() == 1) { request.getSession().setAttribute("user", res.getData()); } return res.toString(); } else { return ResponseHelper.getResponse(-1, "Username or password must not empty", null).toString(); } } private String logout(HttpServletRequest request) { request.getSession().invalidate(); return ResponseHelper.getResponse(-1, "logut", null).toString(); } private String getListOfEmails(HttpServletRequest request) { return null; } private void print(HttpServletResponse response, String output) throws IOException { try (PrintWriter out = response.getWriter()) { out.println(output); } } @Override public String getServletInfo() { return "Short description"; } }