I am creating an html form dynamically using javascrpt and submitting it using ajax. When I check the parameter names from the servlet, it does not show the parameter names correctly. The javascript / ajax and servlet code are shown below along with the diagnostic output from the tomcat log file (catalina.out)
Javascript:
var gulticsForm = document.createElement("form");
gulticsForm.action="/gultics/Utils";
var element1=document.createElement("input");
element1.setAttribute("name", "sqlText");
element1.setAttribute("value", "This is the value of the element");
gulticsForm.appendChild(element1);
document.body.appendChild(gulticsForm);
var fm = new FormData(gulticsForm);
xhttp.open("POST", "/gultics/Utils", true);
xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded; charset=UTF-8");
xhttp.send(fm);
Servlet:
public void doPost(HttpServletRequest request, HttpServletResponse response) { callServer(request, response); }
public void doGet(HttpServletRequest request, HttpServletResponse response) { callServer(request, response); }
private void callServer(HttpServletRequest request, HttpServletResponse response) {
try {
request.setCharacterEncoding("UTF-8");
PrintWriter out = response.getWriter();
Enumeration<String> parameterNames = request.getParameterNames();
int parameterNo = 0;
while (parameterNames.hasMoreElements()) {
System.out.println("Name of Parameter " + parameterNo++ + " is " + parameterNames.nextElement());
}
String sqlText = request.getParameter("sqlText");
System.out.println("SQL Text: " + sqlText);
Output from catalina.out
Name of Parameter 0 is -----------------------------229583121529757
Content-Disposition: form-data; name
SQL Text: null
Can you please help? Please let me know if I can provide more information.