Ajax操作数据库
Ajax好像只能读取服务器,包括数据库的数据,可是要改变它们,似乎不可以,或者很难,但是我不清楚哦。我定义两个按钮,一个直接用submit提交,一个用Ajax向服务器端发送请求,前者可以修改数据库的内容,并显示出来,后者只能读取,而不能修改的。在我经过反复测试之前好像是这个样子的。后来才发现不是,用Ajax与服务器通讯也可以修改数据库里的数据的。我做了一个小小的测验,现在把源代码放上来。
客户端只编写一个getData.jsp:
<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>getData(From:网络大本营 Http://www.QQview.com)</title>
<script language="javascript" type="text/javascript">
var xmlHttp;
function createXMLHttpRequest() {
if (window.ActiveXObject) {
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
//alert("Microsoft.XMLHTTP");
}
else if (window.XMLHttpRequest) {
xmlHttp = new XMLHttpRequest();
//alert("XMLHttpRequest");
}
}
function ajaxQueryData(){
createXMLHttpRequest();
var url = "//java_tut/ValidationServlet";//服务端Servlet,操作数据库的,插入语句暂时在Servlet里指定
xmlHttp.open("POST", url, true);
xmlHttp.onreadystatechange = callback; //callback方法用来显示返回信息的
xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
xmlHttp.send(null);
}
function callback(){
if (xmlHttp.readyState == 4) {
if(xmlHttp.status == 200) {
var mes=xmlHttp.responseText;
document.getElementById("result").innerHTML=mes;
}else{
alert("No found");
}
}else{
document.getElementById("result").innerHTML = "正在与系统通讯,请稍候...";
}
}
</script>
</head>
<body>
<form action="java_tut/ValidationServlet" method="post">
<input type="submit" value="queryData" />
<input type="button" onclick="ajaxQueryData()" value="ajaxQueryData" />
</form>
<div id="result">
</div>
</body>
</html>
服务器端ValidationServlet .java
package ajaxbook.chap4;
import java.io.*;
import java.sql.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.util.*;
import ajaxbook.chap4.MySqlConn; //引入自定义的数据库操作类
import ajaxbook.chap4.CurrentTime;
public class ValidationServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException{
PrintWriter out = response.getWriter();//send response to client
response.setContentType("text/html");
try{
MySqlConn mySqlConn = new MySqlConn();
//for(int i=6;i<50;i++){//批插入
CurrentTime currentTime = new CurrentTime();
String sqlInsert = "insert into member values(''bbjs100'',''111111'',''m'',''pwdQ'',''pwdA'',''swimming'',''"+currentTime.getCurrentTime()+"'')"; //静态插入数据需要每次都修改主
int row = mySqlConn.getStatement().executeUpdate(sqlInsert); //insert
//}
//out.println("<h3>insert success</h3>");//这几行为修改用
//String sqlUpdate = "update member set password=''222222'' where username=''bbjs1''";
//int row = mySqlConn.getStatement().executeUpdate(sqlUpdate);
//out.println("<h3>update success</h3>");
String sqlQuery = "select * from member order by opertime";
ResultSet rs = mySqlConn.getResultSet(sqlQuery);
out.println("<table border=1><tr><th>username</th><th>password</th><th>gender</th><th>pwdQuestion</th><th>pwdAnswer</th><th>hobbies</th><th>operTime</th>");
while(rs.next())
{//循环显示记录
out.println("<tr>");
out.println("<td>"+rs.getString("username")+"</td>");
out.println("<td>"+rs.getString("password")+"</td>");
 
推荐文章 |
