Java tutorial
/*-------------------------------------------------------------------*/ /* */ /* Copyright IBM Corp. 2013 All Rights Reserved */ /* */ /*-------------------------------------------------------------------*/ /* */ /* NOTICE TO USERS OF THE SOURCE CODE EXAMPLES */ /* */ /* The source code examples provided by IBM are only intended to */ /* assist in the development of a working software program. */ /* */ /* International Business Machines Corporation provides the source */ /* code examples, both individually and as one or more groups, */ /* "as is" without warranty of any kind, either expressed or */ /* implied, including, but not limited to the warranty of */ /* non-infringement and the implied warranties of merchantability */ /* and fitness for a particular purpose. The entire risk */ /* as to the quality and performance of the source code */ /* examples, both individually and as one or more groups, is with */ /* you. Should any part of the source code examples prove defective, */ /* you (and not IBM or an authorized dealer) assume the entire cost */ /* of all necessary servicing, repair or correction. */ /* */ /* IBM does not warrant that the contents of the source code */ /* examples, whether individually or as one or more groups, will */ /* meet your requirements or that the source code examples are */ /* error-free. */ /* */ /* IBM may make improvements and/or changes in the source code */ /* examples at any time. */ /* */ /* Changes may be made periodically to the information in the */ /* source code examples; these changes may be reported, for the */ /* sample code included herein, in new editions of the examples. */ /* */ /* References in the source code examples to IBM products, programs, */ /* or services do not imply that IBM intends to make these */ /* available in all countries in which IBM operates. Any reference */ /* to the IBM licensed program in the source code examples is not */ /* intended to state or imply that IBM's licensed program must be */ /* used. Any functionally equivalent program may be used. */ /*-------------------------------------------------------------------*/ package com.ibm.bluemix.samples; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.List; import java.util.Scanner; 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 org.apache.commons.fileupload.FileItem; import org.apache.commons.fileupload.disk.DiskFileItemFactory; import org.apache.commons.fileupload.servlet.ServletFileUpload; @SuppressWarnings("serial") @WebServlet("/upload") public class UploadServlet extends HttpServlet { private ElephantSQLClient db = new ElephantSQLClient(); protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { System.out.println("Upload Servlet"); try { List<FileItem> items = new ServletFileUpload(new DiskFileItemFactory()).parseRequest(request); for (FileItem item : items) { if (!item.isFormField()) { // item is the file (and not a field), read it in and add to List Scanner scanner = new Scanner(new InputStreamReader(item.getInputStream(), "UTF-8")); List<String> lines = new ArrayList<String>(); while (scanner.hasNextLine()) { String line = scanner.nextLine().trim(); if (line.length() > 0) { lines.add(line); } } scanner.close(); // add lines to database int rows = db.addPosts(lines); String msg = "Added " + rows + " rows."; request.setAttribute("msg", msg); break; } } request.setAttribute("posts", db.getResults()); } catch (Exception e) { request.setAttribute("msg", e.getMessage()); e.printStackTrace(System.err); } response.setContentType("text/html"); response.setStatus(200); request.getRequestDispatcher("/home.jsp").forward(request, response); } }