ajax概述

什么是异步,什么是同步?

假设有t1线程和t2线程,t1线程和t2线程并发,就是异步.假设在t2线程执行时,必须等待t1线程执行到某个位置之后t2才能执行,那么t2在等t1,排队的就是同步.ajax就是异步请求

XMLHttpRequest对象

XMLHttpRequest对象是ajax的核心对象,发送请求以及接受服务器数据的返回全靠这个对象.XMLhttpRequest对象,现代主流的浏览器都支持,都内置了改对象,可以直接使用.创建XMLHttpRequest对象

var xhr = new XMLHttpRequest();

XMLHttpRequest对象的方法

方法 描述
about() 取消当前请求
getAllResponseHeaders() 返回头部信息
getResponseHerader() 返回特定的头部信息
open(method,url,async,user,psw) 规定请求method:请求类型GET或者POST url:文件位置 ansync:true(异步)或者false(同步) user:可选的用户名称 psw:可选的密码
send() 将请求返送到服务器,用于GET请求
send(string) 将请求发送到服务器,用于POST请求
setRequestHeader() 向要发送的报头添加标签/值对

XMLHttpRequest对象的属性

属性 描述
onreadystatechange 定义当readyState属性发生变化时被调用的函数
readState 保存XMLHttpRequest的状态. 0:表示未初始化 1:服务器连接已建立 2:请求已经收到 3:正在处理请求 4:请求已经完成并且响应就绪
responseText 以字符串返回响应数据
responseXML 以XML数据返回响应数据
status 返回请求的状态号200:“OK” 403:“Forbidden” 404 :“Not Found”
statusText 返回状态文本(比如’OK’或者’Not Found’)
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>发送ajax get请求</title>
</head>
<body>
<!--给一个按钮,用户点击这个按钮的时候发送ajax请求-->
<input type="button" value="hello ajax" id="helloBtn">
<!--这里给了一个div图层,ajax接受了响应的数据之后,在div中进行渲染-->
<div id="mydiv"></div><script type="text/javascript">window.onload = function (){document.getElementById("helloBtn").onclick = function (){// 发送ajax get请求console.log("发送ajax get请求")}}
</script>
</body>
</html>

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>发送ajax get请求</title>
</head>
<body>
<!--给一个按钮,用户点击这个按钮的时候发送ajax请求-->
<input type="button" value="hello ajax" id="helloBtn">
<!--这里给了一个div图层,ajax接受了响应的数据之后,在div中进行渲染-->
<div id="mydiv"></div><script type="text/javascript">window.onload = function (){document.getElementById("helloBtn").onclick = function (){//1.第一步创建ajax核心对象xmlhttprequestvar xhr = new XMLHttpRequest();// 2.第二步 主次回调函数// 这是一个回调函数,这个函数在xmlhttprequest对象的readystate状态值发生改变时被调用xhr.onreadystatechange = function (){//  这里的回调函数会被多次调用//  0 - > 1被调用一次//  1 - > 2被调用一次//  2 - > 3被调用一次//  3- > 4被调用一次//  console.log(xhr.readyState)// 当xmlhttprequest对象的readystate的状态是4的时候,表示响应结束了if (this.readyState === 4){//响应结束了//  console.log("响应结束了")//  响应结束之后,一般会有一个http的状态码//  http状态码常见的包括:200表示成功了,404表示资源找不到,500表示服务器内部错误//  http状态码是http协议的一部分,http协议中规定,服务器响应之后都会有一个状态码//  获取http状态码//   console.log("http状态响应吗" + this.status)if (this.status === 404){alert("资源未找到")}else if (this.status === 500){alert("服务器问题")}else if (this.status === 200){alert("响应成功")//  200表示完全响应完成,成功结束//  通过xmlhttprequest对象获取响应的信息//  通过xmlhttprequest对象的responsetext属性来获取响应的细腻alert(this.responseText)//  把响应的信息放到div图层中渲染document.getElementById("mydiv").innerHTML = this.responseText}}}//  第三步 开启通道(open只是浏览器和服务器建立连接,通道打开,并不会发送请求)//  xmlhttprequest对象的open方法//   open(mothed,url,async,user,psw)//method:请求的方法 可以是get 也可以是post也可以是其他的请求方式//  url :请求的路径//  async:只能是true或者false,true表示此ajax请求时一个异步请求,false表示此ajax请求时一个同步请求,大部分请求都是true,要求异步)//  user:用户名 pwd:密码 用户名和密码是进行身份认证的,说明要想访问这个服务器上面的资源,可能需要提供一下口令才能访问,需不需要用户名和密码,主要看服务器的态度xhr.open("GET","/ajax/ajaxrequest1",true)//  第四步 发送请求xhr.send()}}
</script>
</body>
</html>
package wan.servlet;import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;import javax.jws.WebService;
import java.io.IOException;
import java.io.PrintWriter;//配置/ajaxrequest1路由信息
@WebServlet("/ajaxrequest1")
public class AjaxRequest1Servlet extends HttpServlet {// 目的是标记下面将要重写父类的方法用于查看是否是父类的方法@Overrideprotected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{//      意思是初始化一个out对象用于像前段页面打印数据,PrintWriter out  = response.getWriter();
//         out对象向浏览器输出信息
//        服务器的代码和之前是一个样的,但是这里是out在响应的时候,浏览器客户端的xmlhttprequest对象会接受到这个响应的信息out.print("<font color='red'>welcome to ajax!!</font>");}
}

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>发送ajax get请求</title>
</head>
<body>
usercode<input type="text" id="usercode"><br>
username<input type="text" id="username"><br>
<button id="btn">发送ajax get请求</button>
<span id="myspan"></span>
<div id="mydiv"></div><script type="text/javascript">window.onload = function (){document.getElementById("btn").onclick = function (){//    创建ajax对象var xhr = new XMLHttpRequest();//    注册回调函数xhr.onreadystatechange = function (){if (this.readyState === 4 ){if (this.status === 200){//    通过xmlhttprequest独享的responsetext属性可以获取到服务器响应回阿里的内容//    并且不管服务器响应回来的是什么,都以普通文本的形式获取(服务器可能响应回来:普通文本 xml json html//    innerhtml属性是javascript中的语法.和ajax的xmlhttprequest对象无关//    innerhtml可以甚至元素内部的html代码, innerHTML = this.responseText// document.getElementById("mydiv").innerHTML = this.responseText//    innerText也不是ajax中的,是javascript中的元素属性,和xmlhttprequest无关//    innerText也是元素中的内容,但是即使后面是一段html代码,也晒干将其看做一个普通的字符串设置进去document.getElementById("myspan").innerText = this.responseText}else {alert(this.status)}}}//    开通通达//    获取到用户填写的usercode和usernamevar usercode = document.getElementById("usercode").valuevar username = document.getElementById("username").value//    搞一个时间戳alert(new Date().getTime())// xhr.open("GET","/ajax/ajaxrequest2?t="+Math.random()+"&usercode="+usercode+"&username="+username,true)xhr.open("GET","/ajax/ajaxrequest2?t="+Math.random()+"&usercode="+usercode+"&username="+username,true)xhr.send()}}
</script></body>
</html>
package wan.servlet;import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;import javax.jws.WebService;
import java.io.IOException;
import java.io.PrintWriter;@WebServlet("/ajaxrequest2")
public class AjaxRequest2Servlet extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{//        设置相依的内容以及字符集response.setContentType("text/html;charset=UTF-8");
//        获取响应流PrintWriter out = response.getWriter();
//        响应
//        out.print("<font color='red'>用户名已存在!</font>");
//        获取ajax get请求提交的数据String usercode = request.getParameter("usercode");String username = request.getParameter("username");out.print("usercode" + usercode + ",username=" + username);}
}

ajax发送post请求

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>发送ajax post请求</title>
</head>
<body>
用户名<input type="text" id="username"><br>
密码<input type="password" id="password"><br><button id="mybtn">发送ajax post请求</button>
<div id="mydiv"></div><script type="text/javascript">window.onload = function (){document.getElementById("mybtn").onclick = function (){//    ajax post请求//    创建ajax核心对象var xhr = new XMLHttpRequest();xhr.onreadystatechange = function (){if (this.readyState === 4){if (this.status === 200){document.getElementById("mydiv").innerHTML = this.responseText}else {alert(this.status)}}}//开通通道xhr.open("POST","/ajax/ajaxrequest3",true)//    模拟ajax提交from表单,设置请求头的内容类型//    设置请求头的内容类型时,必须在open之后xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded")//    放到send()这个函数中的小括号中的数据,会自动在请求体中提交数据//    使用js代码获取用户填写的用户名和密码var username = document.getElementById("username").valuevar password = document.getElementById("password").value//    xhr.send("注意格式:放在这里的数据就是在请求体当中提交的,格式不能随便来,但还是要遵循http的协议xhr.send("username="+username+"&password="+password)}}
</script>
</body>
</html>
package wan.servlet;import com.sun.deploy.net.HttpResponse;
import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;import java.io.IOException;
import java.io.PrintWriter;@WebServlet("/ajaxrequest3")
public class AjaxRequest3Servlet extends HttpServlet {@Overrideprotected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{response.setContentType("text/html;charset=UTF-8");PrintWriter out = response.getWriter();//获取提交的数据String username = request.getParameter("username");String password = request.getParameter("password");out.print("用户名是:" + username+"密码是:"+password);}
}

java的数据库连接

下载mysql驱动

https://cdn.mysql.com//Downloads/Connector-J/mysql-connector-java-8.0.29.zip

要把jar包放到WEB-INF目录之下

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>ajax post验证用户名是否可用</title>
</head>
<body>
用户名:<input type="text" id="username">
<span id="tipMsg"></span><script type="text/javascript">window.onload = function (){document.getElementById("username").onfocus = function (){document.getElementById("tipMsg").innerHTML = ""}document.getElementById("username").onblur = function (){// console.log("正在发送ajax post请求验证用户名")//  发送ajax post请求var xhr = new XMLHttpRequest();xhr.onreadystatechange = function (){if (this.readyState === 4){if (this.status === 200 ){document.getElementById("tipMsg").innerHTML = this.responseText}else {alert(this.status)}}}xhr.open("POST","/ajax/ajaxrequest4",true)xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded")//  获取表单数据var username = document.getElementById("username").valuexhr.send("uname="+username)}}
</script></body>
</html>
package wan.servlet;import com.sun.deploy.net.HttpResponse;
import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;import java.io.IOException;
import java.io.PrintWriter;
import java.sql.*;@WebServlet("/ajaxrequest4")
public class AjaxRequest4Servlet extends HttpServlet {@Overrideprotected void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException{String uname =request.getParameter("uname");
//        布尔标记用于判断何时结束程序boolean flag = false;//默认是用户不存在
//        连接数据库验证用户名是否存在Connection conn = null;PreparedStatement ps = null;ResultSet rs = null;try {//            注册驱动Class.forName("com.mysql.cj.jdbc.Driver");
//            获取连接conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/security?useUnicode=true&characterEncoding=utf8&serverTimezone=UTC","root","wananw");
//            获取预编译的数据库操作对象String sql = "select id,username from users where username = ?";
//            获取预编译对象的参数对象ps = conn.prepareStatement(sql);
//            设置值ps.setString(1,uname);
//            执行一个sql语句rs = ps.executeQuery();if (rs.next()){flag = true;}} catch (Exception e) {e.printStackTrace();}finally {//            释放资源if (rs != null){try {rs.close();} catch (SQLException e) {e.printStackTrace();}}if (ps != null){try {ps.close();} catch (SQLException e) {e.printStackTrace();}}if (conn != null){try {conn.close();} catch (SQLException e) {e.printStackTrace();}}}//       响应结果到浏览器response.setContentType("text/html;charset=UTF-8");PrintWriter out = response.getWriter();if (flag){//            用户名已经存在,不可用out.print("<font color='red'>对不起,用户名已存在</font>");}else{// 用户名不存在,可以使用out.print("<font color='green'>用户名可以使用</font>");}}
}

ajax加json返回信息

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>发送ajax请求 显示学生列表</title>
</head>
<body>
<script type="text/javascript">window.onload = function (){document.getElementById("btn").onclick = function (){//    创建核心对象var xhr = new XMLHttpRequest();//    注册回调函数xhr.onreadystatechange = function () {if (this.readyState === 4){if (this.status === 200){//将json格式的字符串转换成json对象var stuList = JSON.parse(this.responseText)var html = ""for (var i = 0; i < stuList.length;i++){var stu = stuList[i]html += "<tr>"html += "<td>"+(i+1)+"</td>"html += "<td>"+stu.name+"</td>"html += "<td>"+stu.age+"</td>"html += "<td>"+stu.addr+"</td>"html += "</tr>"}document.getElementById("stutbody").innerHTML = html}else {alert(this.status)}}}//    开启通道xhr.open("GET","/ajax/ajaxrequest5?t=" + new Date().getTime(),true)xhr.send()}}
</script>
<input type="button" value="显示学生列表" id="btn">
<table width="50%" border="1px"><thead><tr><th>序号</th><th>姓名</th><th>年龄</th><th>住址</th></tr></thead><tbody id="stutbody"></tbody>
</table></body>
</html>
package wan.servlet;import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;import java.io.IOException;
import java.io.PrintWriter;@WebServlet("/ajaxrequest5")
public class AjaxRequest5Servlet extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException , IOException{//        连接数据库,查询学院信息,拼接html代码,相依html 代码到浏览器(这里直接写死了)response.setContentType("text/html;charset=UTF-8");PrintWriter out = response.getWriter();//        连接数据库,拼接html代码
//        但是这里的代码使用html来写的,我们可以换成jsonStringBuilder html = new StringBuilder();html.append("<tr>");html.append("<td>1</td>");html.append("<td>王五</td>");html.append("<td>20</td>");html.append("<td>北京大兴区</td>");html.append("</tr>");html.append("<tr>");html.append("<td>2</td>");html.append("<td>李四</td>");html.append("<td>22</td>");html.append("<td>北京海淀区</td>");html.append("</tr>");out.print(html);}
}

json

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>json test</title>
</head>
<body>
<script type="text/javascript">// 在jajascript语言中创建一个json对象,语法// var jsonobj = {//     "属性名1": 属性值,//     "属性名2" : 属性值,//     "属性名3" : 属性值,//     "属性名4" : 属性值,//     "属性名5" : 属性值//属性值的数据类型,随意可以是数字 布尔 字符串 数组// }// var user = {//     "usercode":111,//     "username":"张三",//     "sex":true,//     "age" : 20,//     "aihaos" : ["抽烟", "喝酒", "烫头"],//     "addr" : address// }var user = {"usercode" : 111,"username" : "zhangsan","sex" : true,"age" : 20,"aihaos" : ["抽烟", "喝酒", "烫头"],"addr" : {"city" : "北京","street" : "北京大兴区","zipcode" : "123456"}}console.log(user.usercode)console.log(user.username)console.log(user.sex ? "男":"女")console.log(user.age)for (var i = 0 ; i < user.aihaos.length;i++){console.log(user.aihaos[i])}
//    访问这个用户时那个街道console.log(user.addr.street)console.log(user["usercode"])console.log(user["username"])console.log(user["sex"]?"男":"女")console.log(user["age"])</script></body>
</html>
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>json </title>
</head>
<body>
<!--从后端传来的的是json格式的字符串,那么怎么把json格式的字符串转换成json对象-->
<script type="text/javascript">var user  = {"username" : "zhangsan","password" : "123456"}
//    是json对象,才能这摸访问alert(user.username+","+user.password)//    从服务器端返回来的不是json对象,是一个json格式的字符串var fromJavaServerJsonStr = "{\"usercode\" : 111, \"age\" : 20}"//    两种方式
//    eval函数
//    javascript语言中内置独享的json的一个方法parsevar jsonobj = JSON.parse(fromJavaServerJsonStr)alert(jsonobj.usercode +"," + jsonobj.password)</script>
</body>
</html>
package wan.servlet;import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;import java.io.IOException;
import java.io.PrintWriter;@WebServlet("/ajaxrequest5")
public class AjaxRequest5Servlet extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException , IOException{//        连接数据库,查询学院信息,拼接html代码,相依html 代码到浏览器(这里直接写死了)response.setContentType("text/html;charset=UTF-8");PrintWriter out = response.getWriter();//        拼接json字符串String jsonStr = "[{\"name\":\"王五\",\"age\":20,\"addr\":\"北京大兴区\"}, {\"name\":\"李四\",\"age\":22,\"addr\":\"北京海淀区\"}]";out.print(jsonStr);}
}

package wan.servlet;import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;import java.awt.dnd.DragGestureEvent;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.*;@WebServlet("/ajaxrequest5")
public class AjaxRequest5Servlet extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException , IOException{//        连接数据库,查询学院信息,拼接html代码,相依html 代码到浏览器(这里直接写死了)response.setContentType("text/html;charset=UTF-8");PrintWriter out = response.getWriter();//        拼接json字符串
//        String jsonStr = "[{\"name\":\"王五\",\"age\":20,\"addr\":\"北京大兴区\"}, {\"name\":\"李四\",\"age\":22,\"addr\":\"北京海淀区\"}]";
//        准备StringBuilder 对象,拼接json字符串StringBuilder json = new StringBuilder();String jsonStr = "";//        连接数据库查询所有学生,拼接json字符串Connection coon = null;PreparedStatement ps = null;ResultSet rs = null;try {Class.forName("com.mysql.jdbc.Driver");coon = DriverManager.getConnection("jdbc:mysql://localhost:3306/security?useUnicode=true&characterEncoding=utf8&serverTimezone=UTC","root","wananw");String sql = "select id,username,password from users";ps = coon.prepareStatement(sql);rs = ps.executeQuery();
//            处理结果集json.append("[");while (rs.next()) {// 获取每个学生的信息String name = rs.getString("id");String age = rs.getString("username");String addr = rs.getString("password");// 拼接json格式的字符串// {"name":"   王五    ","age":    20      ,"addr":"      北京大兴区     "},json.append("{\"name\":\"");json.append(name);json.append("\",\"age\":\"");json.append(age);json.append("\",\"addr\":\"");json.append(addr);json.append("\"},");}jsonStr = json.substring(0, json.length() - 1) + "]";} catch (Exception e) {e.printStackTrace();}finally {if (rs !=null){try {rs.close();} catch (SQLException e) {e.printStackTrace();}}if (ps != null){try {ps.close();} catch (SQLException e) {e.printStackTrace();}}if (coon!= null){try {coon.close();} catch (SQLException e) {e.printStackTrace();}}}out.print(jsonStr);}
}

fastjson使用

User.java

package wan.servlet;public class User {private String id;private String username;private int age;public User() {}public String getId() {return id;}public void setId(String id) {this.id = id;}public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public User(String id, String username, int age) {this.id = id;this.username = username;this.age = age;}
}

Fastjsion.java

package wan.servlet;import com.alibaba.fastjson.JSON;import java.util.ArrayList;
import java.util.List;public class Fastjson {public static void main(String[] args) {User user = new User("111","zhangsan",20);
//        将以上User对象转换成json格式的字符串
//        使用fastjson组件中的json
//        fastjson中有一个类JSON
//        JSON类中的方法是一个静态的方法,直接调用即可String jsonStr = JSON.toJSONString(user);System.out.print(jsonStr);
//        尝试list集合是否可用准换成数组List<User> userList = new ArrayList<>();User user1 = new User("120", "lisi", 30);User user2 = new User("130", "jackson", 33);userList.add(user1);userList.add(user2);String jsonStr2 = JSON.toJSONString(userList);System.out.print(jsonStr2);}
}

package wan.servlet;import com.alibaba.fastjson.JSON;
import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;import java.awt.dnd.DragGestureEvent;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.*;
import java.util.ArrayList;
import java.util.List;@WebServlet("/ajaxrequest5")
public class AjaxRequest5Servlet extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException , IOException{//        连接数据库,查询学院信息,拼接html代码,相依html 代码到浏览器(这里直接写死了)response.setContentType("text/html;charset=UTF-8");PrintWriter out = response.getWriter();//        拼接json字符串
//        String jsonStr = "[{\"name\":\"王五\",\"age\":20,\"addr\":\"北京大兴区\"}, {\"name\":\"李四\",\"age\":22,\"addr\":\"北京海淀区\"}]";
//        准备StringBuilder 对象,拼接json字符串StringBuilder json = new StringBuilder();String jsonStr = "";//        连接数据库查询所有学生,拼接json字符串Connection coon = null;PreparedStatement ps = null;ResultSet rs = null;try {Class.forName("com.mysql.jdbc.Driver");coon = DriverManager.getConnection("jdbc:mysql://localhost:3306/security?useUnicode=true&characterEncoding=utf8&serverTimezone=UTC","root","wananw");String sql = "select id,username,password from users";ps = coon.prepareStatement(sql);rs = ps.executeQuery();
//            处理结果集List<Student> studentList = new ArrayList<>();while (rs.next()){int id = rs.getInt("id");String username = rs.getString("username");String password = rs.getString("password");
//                将数据封装成student对象Student s = new Student(id,username,password);
//                将Student对象放到list集合之中studentList.add(s);}jsonStr = JSON.toJSONString(studentList);} catch (Exception e) {e.printStackTrace();}finally {if (rs !=null){try {rs.close();} catch (SQLException e) {e.printStackTrace();}}if (ps != null){try {ps.close();} catch (SQLException e) {e.printStackTrace();}}if (coon!= null){try {coon.close();} catch (SQLException e) {e.printStackTrace();}}}out.print(jsonStr);}
}

ajax(java)相关推荐

  1. java ajax 联动菜单_二级联动菜单代码(AJAX JAVA).

    二级联动菜单代码(AJAX+JAVA)珍藏 [java] pageEncoding="UTF-8"%> 二级菜单联动演示 var req; window.οnlοad=fun ...

  2. ajax java对象返回前台少了属性_AJAX常见提交数据的三种方式

    一.键值对方式提交 AJAX提交 控制器接收 方式1:属性接收 @RequestMapping("stu/add") @ResponseBody public HashMap ad ...

  3. ajax代码 java,AJAX - java代码库 - 云代码

    [java]代码库1.什么是AJAX AJAX = Asynchronous JavaScript and XML(异步的 JavaScript 和 XML). 2.ajax的特点:局部刷新 3.Aj ...

  4. java如何写ajax,java,jq,ajax写分页

    1.先写好html基础样式 我懒得去写css样式233,能看就行 #page { width: 20px; } id name pwd age 上一页 下一页 2.编写servlet 2.1 先写查询 ...

  5. jquery ajax java二级联动_使用Ajax和Jquery配合数据库实现下拉框的二级联动的示例...

    首先我们需要先建立好数据库,将一些数据插入进去 需要两张表: province:省份表 city: 城市表 如图: 然后再在java中建立相关的实体类与之对应 再然后,我们就能开始做jdbc的操作了 ...

  6. ajax java web_在java Web中如何用Ajax实现用户名已存在

    展开全部 数据库62616964757a686964616fe58685e5aeb931333332613635操作类(mysql数据库)1.import java.sql.Connection; i ...

  7. ajax java 图片加载_如何用Ajax加载服务器的图片

    用Ajax请求服务器的图片,并显示在浏览器中 前言 一直在数据库里面存的都是图片在服务器的地址,然后再到浏览器中显示,但是发现两个问题 第一:为了安全起见,js是无法读取本地的图片的,不然你写一个js ...

  8. jquery ajax java上传文件_jQuery Ajax方式上传文件的方法

    jQuery Ajax方式上传文件用到两个对象 第一个对象:FormData 第二个对象:XMLHttpRequest 目前新版的Firefox 与 Chrome 等支持HTML5的浏览器完美的支持这 ...

  9. ajax java请求413_jQuery - 拦截所有Ajax请求(统一处理超时、返回结果、错误状态码 )...

    样例代码: hangge.com //全局的ajax访问,处理ajax清求时session超时 $.ajaxsetup({ contenttype:"application/x-www-fo ...

最新文章

  1. Python之两个列表一起打乱
  2. php如何进修,PHP进修材料汇总华文_PHP教程
  3. 第5章-无人机UAV模型分析
  4. 【转】AI-900认证考试攻略
  5. Android 的一点总结
  6. 搭建Cockpit服务器,Linux集群管理工具,DevOps开发运维一体化集群系统/持续集成
  7. 宁德时代,想成为“绿巨人”
  8. RSYNC安装使用详解
  9. 我在用的浏览器插件利器
  10. oracle last_day比较,Oracle的LAST_DAY函数
  11. 小程序多端框架全面测评 | 程序员硬核评测
  12. 14-1 获得初始页面内容
  13. 设计模式---命令模式(C++实现)
  14. m1的docker-compose
  15. unity 视频录制总结
  16. 山西省大同市谷歌高清卫星地图下载
  17. 你每天应该吃多少水果?
  18. MySQL format()\CAST()\CONVERT()指定特定个数的小数
  19. win7桌面上显示html,win7桌面图标不见了怎么办,显示Windows 7桌面图标的方法
  20. 应付款与分工之利读后感

热门文章

  1. 经典名句_万金油_新浪博客
  2. 2022年 新华三杯决赛题目
  3. 浅谈TC10休眠唤醒规范
  4. 国内10大技术网站,你最爱和哪个玩耍?
  5. 主页(一)01-搜索栏-顶部搜索栏布局
  6. Pytorch的model.train() model.eval() torch.no_grad() 为什么测试的时候不调用loss.backward()计算梯度还要关闭梯度
  7. springboot使用arthas-spring-boot-starter引入arthas方案
  8. 【9.4】多元复合函数的求导法则
  9. 装linux系统(和win一起的双系统)
  10. 比较两个结构体是否相等