public void doPost(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { try { ServletFileUpload upload = new ServletFileUpload(); res.setContentType("text/plain"); FileItemIterator iterator = upload.getItemIterator(req); BufferedReader reader = null; String themeName = null; while (iterator.hasNext()) { FileItemStream item = iterator.next(); InputStream stream = item.openStream(); if (item.isFormField()) { //regular form field //res.getWriter().println(("Form:" + name + " : " + Streams.asString(stream))); String fieldName = item.getFieldName(); String fieldValue = Streams.asString(stream); //System.out.println("fieldName: " + fieldName + "\nfieldValue: " + fieldValue); themeName = fieldValue.trim().toLowerCase().replaceAll("\\s", ""); //System.out.println("\n themeName: " + themeName); }else { //fileform field System.out.println("got a file form field"); reader = new BufferedReader(new InputStreamReader(stream)); //fileExtract(reader); } }//close while loop //System.out.println("\n themeName: " + themeName + "\nreader: " + reader.toString()); fileExtract(reader, themeName); } catch (Exception ex) { throw new ServletException(ex); } } public void fileExtract(BufferedReader reader, String themeName) { try { String line; int counter = 0; String titlePattern = "#"; // create a hashmap HashMap verse = new HashMap(); while ((line = reader.readLine()) != null) { line = line.trim(); if (line.equals("")) { continue; } if (findPatter(line, titlePattern)) { counter = 1; // remove the hash symbol line = line.replaceAll("#", ""); // System.out.println(line); } String key = null; if (counter == 1) { key = "verseTitle"; } else if (counter == 2) { key = "verseRef"; } else if (counter == 3) { key = "verseBody"; } verse.put(key, line); // System.out.println("Counter: " + counter); // System.out.println(line); counter++; if (counter == 4) { // reset the counter counter = 1; // store the verse details saveVerse(verse, entityKind); // clear the hashmap verse.clear(); } } } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } }