ajaxjson和jsp
我已经使用JSP和应用ajax调用创建了一个表单数据页,并希望在MS access中存储数据,但我发现了一些困难,因为表单数据没有存储,甚至控制台也没有显示任何错误。。 请引导我 我的login.jspajaxjson和jsp,ajax,json,jsp,Ajax,Json,Jsp,我已经使用JSP和应用ajax调用创建了一个表单数据页,并希望在MS access中存储数据,但我发现了一些困难,因为表单数据没有存储,甚至控制台也没有显示任何错误。。 请引导我 我的login.jsp <%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <!DOCTYPE html> <html> <head&
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>
<!DOCTYPE html>
<html>
<head>
<title>Login</title>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script type="text/javascript">
function sendData()
{
alert("I m in SendData Function");
var email=$('#email').val();
var name=$('#name').val();
var password=$('#password').val();
alert("i am in senddata mode");
var jsonDataObject=new Object();
alert(" JSON call");
jsonDataObject.name=name;
jsonDataObject.email=email;
jsonDataObject.password=password;
var jsonString= JSON.stringify(jsonDataObject);
alert("Before Ajax call");
$.ajax({
type:"POST",
url:"localhost:8080/RestDemo/UserInfoService",
dataType:"json",
data:jsonString
});
alert("After Ajax Call Send Data");
}
</script>
</head>
<body bgcolor=#D8D8D8>
<form name="form" method="post" onsubmit="sendData()">
<div style="margin-left:300px;margin-top:110px;background-color:#5FB404;padding:20px;width:650px;height:450px" >
<h1><center> Login Registration Form</center></h1>
<pre>
<p style="font-size:20px">
NAME :<input type="text" name="name" id="name" ><br>
EMAIL :<input type="text" name="email" id="email" ><br>
PASSWORD :<input type="password" name="password" id="password">
<center><input type="submit" name="submit" value="SUBMIT" style="padding:7px"></center>
</p></pre>
</div>
</form>
</body>
</html>
4.UserDetailDao.java
package Service;
import java.sql.*;
public class UserDetailsDaoImpl implements UserDetailsDao {
@Override
public void getUserDetails(String name, String email, String password)
{
System.out.println("Test");
try
{
Connection conn;
Statement stmt;
ResultSet rs;
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
conn=DriverManager.getConnection("jdbc:odbc:DataInsert","","");
stmt=conn.createStatement();
int nrow=stmt.executeUpdate("Insert into UserTable values('"+name+"','"+email+"','"+password+"')");
if(nrow>0)
{
System.out.println("Record Inserted");
}
rs=stmt.executeQuery("SELECT * FROM UserTable");
while(rs.next())
{
String getName = rs.getString(1);
String getEmail = rs.getString(2);
String getPassword = rs.getString(3);
System.out.println(getName+" "+getEmail+" "+getPassword);
}
rs.close();
stmt.close();
conn.close();
} //end of try block
catch(ClassNotFoundException e)
{
e.printStackTrace();
}
catch(SQLException w)
{
w.printStackTrace();
}
}
}
5.UserDetailDaoImpl.java
$.ajax({
type:"POST",
url:"/UserInfoService",
dataType:"json",
data:jsonString
});
您应该在ajax帖子中更改此URL
URL:“localhost:8080/RestDemo/UserInfoService”
应该是Web.xml中映射的servlet文件的URL模式
New login.jsp page
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>
<!DOCTYPE html>
<html>
<head>
<title>Login</title>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script type="text/javascript">
function sendData()
{
alert("I m in SendData Function");
var email=$('#email').val();
var name=$('#name').val();
var password=$('#password').val();
alert("i am in SendData mode");
var arr = {"name": name,
"email": email,
"password": password
};
alert("Before Ajax call");
$.ajax({
type:"POST",
url:"rest/UserInfoService",
dataType:"json",
data:arr
});
alert("After Ajax Call Send Data");
}
</script>
</head>
<body bgcolor=#D8D8D8>
<form name="form" method="post" onsubmit="sendData()">
<div style="margin-left:300px;margin-top:110px;background-color:#5FB404;padding:20px;width:650px;height:450px" >
<h1><center> Login Registration Form</center></h1>
<pre>
<p style="font-size:20px">
NAME :<input type="text" name="name" id="name" ><br>
EMAIL :<input type="text" name="email" id="email" ><br>
PASSWORD :<input type="password" name="password" id="password">
<center><input type="submit" name="submit" value="SUBMIT" style="padding:7px"></center>
</p></pre>
</div>
</form>
</body>
</html>
如果上述方法不起作用,请尝试使用/rest/UserInfoService
我希望您正在从jsp文件调用UserInfo
New login.jsp页面
登录
函数sendData()
{
警报(“我在SendData函数中”);
var email=$('#email').val();
var name=$('#name').val();
var password=$('#password').val();
警报(“我处于发送数据模式”);
var arr={“name”:name,
“电子邮件”:电子邮件,
“密码”:密码
};
警报(“在Ajax调用之前”);
$.ajax({
类型:“POST”,
url:“rest/UserInfoService”,
数据类型:“json”,
数据:arr
});
警报(“Ajax调用后发送数据”);
}
登入登记表格
名称:
电子邮件:
密码:
请格式化您的代码并说明您的问题。你试过调试吗?请指导ajax调用中的URL应该是什么?谢谢你的回答。它确实帮助了我。程序工作。但是通过MS access中的jsp页面插入的数据显示为空。ajax调用、sql或连接中是否有任何问题?请给我解释一下?检查数据库中的数据类型当我以数组的形式发送数据而不是使用stringify函数时,它起作用:var arr={“name”:name,“email”:email,“password”:password};谢谢@San krish:)
package Service;
import java.sql.*;
public class UserDetailsDaoImpl implements UserDetailsDao {
@Override
public void getUserDetails(String name, String email, String password)
{
System.out.println("Test");
try
{
Connection conn;
Statement stmt;
ResultSet rs;
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
conn=DriverManager.getConnection("jdbc:odbc:DataInsert","","");
stmt=conn.createStatement();
int nrow=stmt.executeUpdate("Insert into UserTable values('"+name+"','"+email+"','"+password+"')");
if(nrow>0)
{
System.out.println("Record Inserted");
}
rs=stmt.executeQuery("SELECT * FROM UserTable");
while(rs.next())
{
String getName = rs.getString(1);
String getEmail = rs.getString(2);
String getPassword = rs.getString(3);
System.out.println(getName+" "+getEmail+" "+getPassword);
}
rs.close();
stmt.close();
conn.close();
} //end of try block
catch(ClassNotFoundException e)
{
e.printStackTrace();
}
catch(SQLException w)
{
w.printStackTrace();
}
}
}
$.ajax({
type:"POST",
url:"/UserInfoService",
dataType:"json",
data:jsonString
});
New login.jsp page
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>
<!DOCTYPE html>
<html>
<head>
<title>Login</title>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script type="text/javascript">
function sendData()
{
alert("I m in SendData Function");
var email=$('#email').val();
var name=$('#name').val();
var password=$('#password').val();
alert("i am in SendData mode");
var arr = {"name": name,
"email": email,
"password": password
};
alert("Before Ajax call");
$.ajax({
type:"POST",
url:"rest/UserInfoService",
dataType:"json",
data:arr
});
alert("After Ajax Call Send Data");
}
</script>
</head>
<body bgcolor=#D8D8D8>
<form name="form" method="post" onsubmit="sendData()">
<div style="margin-left:300px;margin-top:110px;background-color:#5FB404;padding:20px;width:650px;height:450px" >
<h1><center> Login Registration Form</center></h1>
<pre>
<p style="font-size:20px">
NAME :<input type="text" name="name" id="name" ><br>
EMAIL :<input type="text" name="email" id="email" ><br>
PASSWORD :<input type="password" name="password" id="password">
<center><input type="submit" name="submit" value="SUBMIT" style="padding:7px"></center>
</p></pre>
</div>
</form>
</body>
</html>