AJAX 即“Asynchronous Javascript And XML”(异步 JavaScript 和 XML),是指一种创建交互式网页应用的 网页开发技术。 ajax 是一种浏览器异步发起请求。局部更新页面的技术。
四个 Ajax 请求方法 :
$.ajax 方法
$.get 方法
$.post 方法
$.getJSON
方法 一个表单序列化方法:serialize()表单序列化方法
如何使用上面的五个方法:
在 JQuery 中和 Ajax 请求有关的方法有四个
$.ajax 请求参数
url: 请求的地址
type : 请求的方式
get 或 post data : 请求的参数 string 或 json
success: 成功的回调函数
dataType: 返回的数据类型
常用 json 或 text 下面的方法必须遵守参数的顺序
$.get 请求和$.post 请求
url:请求的 URL 地址
data:待发送 Key/value 参数。
callback:载入成功时回调函数。
type:返回内容格式,xml, html, script, json, text。
Jquery 的$.getJSON
url:待载入页面的 URL 地址
data:待发送 Key/value 参数。
callback:载入成功时回调函数
结合springmvc使用ajax
实体类User
package com.dapeng.pojo;
public class User {
private String name;
private int age;
private String sex;
public User() {
}
public User(String name, int age, String sex) {
this.name = name;
this.age = age;
this.sex = sex;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
@Override
public String toString() {
return "User{" +
"name='" + name + '\'' +
", age=" + age +
", sex='" + sex + '\'' +
'}';
}
}
contorller类
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
@Controller
@RequestMapping("/ajax")
public class AjaxController {
@RequestMapping("/a1")
public void ajax1(String name, HttpServletResponse response) throws IOException {
if ("admin".equals(name)){
response.getWriter().print("true");
}else {
response.getWriter().print("false");
}
}
@RequestMapping("/a2")
@ResponseBody
public List<User> ajax2(){
List<User> list=new ArrayList<>();
User user1 = new User("张三1号", 1, "男");
User user2 = new User("张三2号", 1, "男");
User user3 = new User("张三3号", 1, "男");
User user4 = new User("张三4号", 1, "男");
list.add(user1);
list.add(user2);
list.add(user3);
list.add(user4);
return list;//由于加了@ResponseBody注解,他会返回一个字符串;
}
@RequestMapping("/a3")
@ResponseBody
public String ajax3(String name,String pwd){
String msg="";
if (name!=null){
if ("admin".equals(name)){
msg="OK";
}else {
msg="用户名有误";
}
}
if (pwd!=null){
if ("123456".equals(pwd)){
msg="OK";
}else {
msg="密码输入有误";
}
}
return msg;//由于@ResponseBody注解,将msg转换成json格式返回
}
}
页面index.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>ajax</title>
<script src="${pageContext.request.contextPath}/static/js/jquery-1.7.2.js"></script>
<script>
function a1() {
// ajax默认是get请求
$.ajax({
url:"${pageContext.request.contextPath}/ajax/a1",
data:{'name':$("#txtName").val()},
success:function (data,status) {
console.log(data);
console.log(status)
// alert(data);
// alert(status)
}
});
// //将文本输出的值
// $("txtName").val();
}
</script>
</head>
<body>
<%--onblur:失去焦点触发事件--%>
用户名:<input type="text" id="txtName" onblur="a1()"/>
</body>
</html>
页面index2.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<input type="button" id="btn" value="获取数据"/>
<table width="80%" align="center">
<tr>
<td>姓名</td>
<td>年龄</td>
<td>性别</td>
</tr>
<tbody id="content"></tbody>
</table>
<script src="${pageContext.request.contextPath}/static/js/jquery-1.7.2.js"></script>
<script>
$(function () {
$("#btn").click(function () {
//后端只要写请求url
$.post("${pageContext.request.contextPath}/ajax/a2",function (data) {
console.log(data);
var html="";
for (var i=0;i<data.length;i++){
html+="<tr>"+
"<td>"+data[i].name+"</td>"+
"<td>"+data[i].age+"</td>"+
"<td>"+data[i].sex+"</td>"+
"<tr>"
}
$("#content").html(html);
})
})
})
</script>
</body>
</html>
reg,jsp页面
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<script src="${pageContext.request.contextPath}/static/js/jquery-1.7.2.js"></script>
<script>
function a1() {
$.ajax({
url:"${pageContext.request.contextPath}/ajax/a3",
data:{"name":$("#name").val()},
success:function (data) {
if (data.toString()=='OK'){//信息核对成功
$('#userInfo').css("color","green");
}else {
$('#userInfo').css("color","red");
}
$("#userInfo").html(data);
}
})
}
function a2() {
$.ajax({
url:"${pageContext.request.contextPath}/ajax/a3",
data:{"pwd":$("#pwd").val()},
success:function (data) {
if (data.toString()=='OK'){//信息核对成功
$('#pwdInfo').css("color","green");
}else {
$('#pwdInfo').css("color","red");
}
$("#pwdInfo").html(data);
}
})
}
</script>
<p>
用户名:
<input type="text" id="name" onblur="a1()"/>
<span id="userInfo"></span>
</p>
<p>
密码:
<input type="text" id="pwd" onblur="a2()"/>
<span id="pwdInfo"></span>
</p>
</body>
</html>
springmvc_servlet.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
https://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/mvc
https://www.springframework.org/schema/mvc/spring-mvc.xsd">
<!-- 自动扫描指定的包,下面所有注解类交给IOC容器管理 -->
<context:component-scan base-package="com.dapeng.controller"/>
<mvc:default-servlet-handler/>
<mvc:annotation-driven>
<!-- JSON格式乱码处理方式-->
<mvc:message-converters register-defaults="true">
<bean class="org.springframework.http.converter.StringHttpMessageConverter">
<constructor-arg value="UTF-8"/>
</bean>
<bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
<property name="objectMapper">
<bean class="org.springframework.http.converter.json.Jackson2ObjectMapperFactoryBean">
<property name="failOnEmptyBeans" value="false"/>
</bean>
</property>
</bean>
</mvc:message-converters>
</mvc:annotation-driven>
<!-- 视图解析器 -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"
id="internalResourceViewResolver">
<!-- 前缀 -->
<property name="prefix" value="/WEB-INF/jsp/" />
<!-- 后缀 -->
<property name="suffix" value=".jsp" />
</bean>
</beans>
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
version="4.0">
<!--1.注册servlet-->
<servlet>
<servlet-name>SpringMVC</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!--通过初始化参数指定SpringMVC配置文件的位置,进行关联-->
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:springmvc-servlet.xml</param-value>
</init-param>
<!-- 启动顺序,数字越小,启动越早 -->
<load-on-startup>1</load-on-startup>
</servlet>
<!--所有请求都会被springmvc拦截 -->
<servlet-mapping>
<servlet-name>SpringMVC</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<filter>
<filter-name>encoding</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>utf-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encoding</filter-name>
<url-pattern>/</url-pattern>
</filter-mapping>
</web-app>