0

I am trying to get data from servlet to ajax in post but it always go to error part that saying like "undefined" am new to ajax kinldy help on this. Insert part working good but am trying to fetch value to go error part??

servlet

package Servlet;

import java.io.IOException;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;

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 Databases.databases;

/**
 * Servlet implementation class Form
 */
@WebServlet(asyncSupported = true, urlPatterns = { "/Form" })
public class Form extends HttpServlet {
    private static final long serialVersionUID = 1L;

    /**
     * @see HttpServlet#HttpServlet()
     */
    public Form() {
        super();
        // TODO Auto-generated constructor stub
    }

    /**
     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
    }

    /**
     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub


        System.out.println("sssssssss");

        //System.out.println("input are====>"+input);

        //response.setContentType("text/plain;charset=UTF-8");

        response.setContentType("text/html");
        String name=request.getParameter("name");
        String job=request.getParameter("job");

        System.out.println("name===>"+name);
        System.out.println("job===>"+job);

        ArrayList al=new ArrayList();

        String a="";
        String b="";
        //databases d=new databases();
        try {
            Connection con=databases.getconnection();
            String sql="insert into senthiil(name,job)values(?,?)";
            PreparedStatement ps=con.prepareStatement(sql);
            ps.setString(1, name);
            ps.setString(2, job);

            System.err.println("sql===>"+ps);
        //  ps.execute();
            //con.commit();



            String select="select name,job from senthiil";
            PreparedStatement psselect=con.prepareStatement(select);
            System.out.println("select======>"+psselect);
            ResultSet rs=psselect.executeQuery();

            while(rs.next())
            {
                al.add(rs.getString(1));
                al.add(rs.getString(2));

                System.out.println("al====>"+al);

                request.setAttribute("data", al);

                /*a=rs.getString(1);
                b=rs.getString(2);
                */

            }

            //response.getWriter().write(a);
            response.getWriter().write("{issue:true}");

            response.getWriter().print(al);

            response.getWriter().close();

        } 
        catch (ClassNotFoundException | SQLException e) 
        {
            // TODO Auto-generated catch block
            e.printStackTrace();

            System.out.println("e");
        }


    }

}

js:

$(document).ready(function()
{
    $("#submit").click(function(){

        alert("senthil");

        var name=$("#name").val();
        var job=$("#job").val();

    //  var datastring="name" +  + "&job=" + job; // option one         type:'post',

        //alert("datastring=======>"+datastring);
        $.ajax({            
            url: "Form",
            data: {"name": name, "job": job},
            dataType: 'text/html',
            type: 'post',
            success: function(data)
            {
                alert("ssssss");
                alert("data===>"+data);

                console.log(data);
            },
            error: function(e) {
                alert('Error: ' + e.message);
            }
        });     
    });
});
xsami
  • 1,312
  • 16
  • 31
user3607180
  • 185
  • 2
  • 5
  • 14

1 Answers1

0

You should format your data to json type so the client side can receive it withour error. At your server side, please changes your response content Type to : "application/json"

response.setContentType("application/json");

At your ajax call changes dataType to json, and change the console log to check if it work:

dataType: 'json',
alert("data===>"+data.issue);

You should format your a1 List to a json string and append the string to the response object at response.getWriter().write("{issue:true}");, this library can help you to parse java object to json string:

http://flexjson.sourceforge.net/#Serialization

Tien Nguyen
  • 4,298
  • 9
  • 30
  • 44