XMLHttpRequest在使用时比较繁琐,从创建到判定等操作需要较多的代码,因此,jQuery对XMLHttpRequest进行了很好的封装,提高了开发效率。
1、jQuery封装的AJAX的get方法(异步方式)
(1)创建jsp页面,向服务器提供数据
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>jQuery封装的Ajaxtitle> <script type="text/javascript" src="jq/jquery-1.8.3.js" >script> <script type="text/javascript"> function f(){ $.get( "${pageContext.request.contextPath}/ajaxservlet", {"username":"Tom","age":13} ); } script> head> <body> <button type="button" onclick="f()">请点击button> body> html>
因为该方法是封装在jQuery内部的,因此需要引入jq的相应文件。
(2)创建一个servlet,获取jsp中的数据:
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String username= request.getParameter("username");
String age= request.getParameter("age");
System.out.println(username);
System.out.println(age);
}
(3)回调函数
jsp:
<script type="text/javascript"> function f(){ $.get( "${pageContext.request.contextPath}/ajaxservlet", {"username":"Tom","age":13}, function (data) { alert(data); }, "text" ); } script>
servlet:
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String username= request.getParameter("username"); String age= request.getParameter("age"); response.getWriter().write("success"); System.out.println(username); System.out.println(age); }
其中jsp函数中的参数data为servlet返回的数据,第四个参数为数据的存储格式。
(4)servlet返回json类型的数据:
jsp:
<script type="text/javascript"> function f(){ $.get( "${pageContext.request.contextPath}/ajaxservlet", {"username":"Tom","age":13}, function (data) { alert(data.age); }, "json" ); }
servlet:
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String username= request.getParameter("username"); String age= request.getParameter("age"); response.getWriter().write("{\"name\":\"tom\",\"age\":\"11\"}"); System.out.println(username); System.out.println(age); }
2、post方式
前端向服务器发送数据:不需要解决中文乱码问题,其它和get的一样。
服务器向客户端发送数据时:get和post方式都需要解决中文乱码码问题。
3、ajax方法
function f(){
$.ajax(
{
url:"${pageContext.request.contextPath}/ajaxservlet",
async:true,
type:"GET",
data:{"username":"Tom","age":13},
success:function (data) {
alert(data.age);
},
error:function () {
alert("服务器出错!!");
},
dataType:"json"
}
);
该方法可以说是涵盖了上述的get和post方法,而且与他们相比该方法更加灵活,只需要修改相应的参数即可对同步/异步,GET/POST提交方式等进行修改。
4、load方法
载入服务器的html文件并插入到DOM中。