Skip to content

Instantly share code, notes, and snippets.

@gabbaybr
Created February 9, 2015 15:10
Show Gist options
  • Save gabbaybr/b2b6d9766fa57b7c551b to your computer and use it in GitHub Desktop.
Save gabbaybr/b2b6d9766fa57b7c551b to your computer and use it in GitHub Desktop.
Class to debug fields from submited form
package br.com.gabbay.servlets;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Enumeration;
import java.util.Iterator;
import java.util.List;
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 javax.servlet.http.HttpSession;
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileItemFactory;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
/**
* Servlet implementation class SubmitForm
*/
@WebServlet("/SubmitForm")
public class SubmitForm extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public SubmitForm() {
super();
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse
* response)
*/
protected void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
listAllFieldsFromForm("GET", request, response);
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse
* response)
*/
protected void doPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
listAllFieldsFromForm("POST", request, response);
}
private void listAllFieldsFromForm(String method, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.write("METHOD: " + method + "\r\n</br>");
out.write("========================================================================\r\n</br>");
boolean isMultipart = ServletFileUpload.isMultipartContent(request);
// Multipart form
if (isMultipart) {
FileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload upload = new ServletFileUpload(factory);
try {
List items = upload.parseRequest(request);
Iterator iterator = items.iterator();
while (iterator.hasNext()) {
FileItem item = (FileItem) iterator.next();
if (!item.isFormField()) {
String fieldName = item.getFieldName();
String fileName = item.getName();
out.write("FILE:" + fieldName + "=" + fileName);
/*
* String root = getServletContext().getRealPath("/");
* File path = new File(root + "/fileuploads"); if
* (!path.exists()) { boolean status = path.mkdirs(); }
*
* File uploadedFile = new File(path + "/" + fileName);
* item.write(uploadedFile);
*/
} else {
// Process regular form field (input
// type="text|radio|checkbox|etc", select, etc).
String fieldName = item.getFieldName();
String fieldValue = item.getString();
out.write("FIELD:" + fieldName + "=" + fieldValue);
}
out.write("\r\n</br>");
}
} catch (Exception e) {
e.printStackTrace();
}
// Regular form
} else {
HttpSession session = request.getSession();
Enumeration keys = request.getParameterNames();
while (keys.hasMoreElements()) {
String key = (String) keys.nextElement();
String value = request.getParameter(key);
out.write("FIELD:" + key + "=" + value);
out.write("\r\n</br>");
// If the same key has multiple values (check boxes)
String[] valueArray = request.getParameterValues(key);
for (int i = 0; i > valueArray.length; i++) {
out.write("VALUE ARRAY" + valueArray[i]);
out.write("\r\n</br>");
}
}
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment