如何从servlet获取数据到ajax成功 [英] how to get data from servlet to ajax success
问题描述
我试图在发布后从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屋!