如何从servlet获取数据到ajax成功 [英] how to get data from servlet to ajax success

查看:676
本文介绍了如何从servlet获取数据到ajax成功的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我试图在发布后从servlet到ajax获取数据,但是它总是会出错,因为像未定义"这样的说法对ajax kinldy帮助来说是新的. 插入部件工作正常,但正在尝试获取值以返回错误部件?

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);
            }
        });     
    });
});

推荐答案

您应该将数据格式化为json类型,以便客户端可以收到错误消息.在您的服务器端,请将您的响应内容类型更改为:"application/json"

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");

在您的ajax调用处,将dataType更改为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);

您应该将a1列表的格式设置为json字符串,并将该字符串附加到response.getWriter().write("{issue:true}");处的响应对象,此库可以帮助您将java对象解析为json字符串:

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

这篇关于如何从servlet获取数据到ajax成功的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆