请求页面,使用AJAX发出请求,并接受响应(返回值)
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%
String basePath = request.getScheme() + "://" +
request.getServerName() + ":" + request.getServerPort() +
request.getContextPath() + "/";
%>
<html>
<head>
<title>Title</title>
<base href="<%=basePath%>">
<script type="text/javascript" src="js/jquery-3.4.1.min.js"></script>
<script type="text/javascript">
function btnSub() {
$.ajax({
url:"register.do",
type:"POST",
data:{
"name":$("#stuName").val(),
"age":$("#stuAge").val(),
"email":$("#stuEmail").val()
},
success:function (resp) {
alert(resp)
}
})
}
</script>
</head>
<body>
<div align="center">
<table>
<tr>
<td>姓名:</td>
<td><input id="stuName" type="text" name="name"/></td>
</tr>
<tr>
<td>年龄:</td>
<td><input id="stuAge" type="text" name="age"/></td>
</tr>
<tr>
<td>邮箱:</td>
<td><input id="stuEmail" type="text" name="email"/></td>
</tr>
<tr>
<td colspan="2" align="center"><input id="btnSub" type="button" value="注册"οnclick="btnSub()"/></td>
</tr>
</table>
</div>
</body>
</html>
接收请求,执行处理方法,返回处理结果
@RequestMapping(value = "/register.do", produces = "text/plain;charset=utf-8")
@ResponseBody
public String register(Student student) {
int i = service.insertStudent(student);
String msg = "";
if (i > 0) {
msg = student.getName() + "注册成功";
} else {
msg = student.getName() + "注册失败";
}
return msg;
}
在这里如果返回值与ajax和接收结果类型需要相同,否则不会出现弹框。
String类型的返回值,被@ResponseBody修饰,返回值不是路径,而是字符串,所以ajax接收返回值不需要声明dataType:“json”。
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title></title>
<script type="text/javascript" src="js/jquery-3.4.1.min.js"></script>
<script type="text/javascript">
$(function () {
$.ajax({
url:"avgAge.do",
type:"get",
success:function (resp) {
$("#main").append("<h1>学生平均年龄:"+resp+"</h1>")
}
})
})
</script>
</head>
<body>
<div align="center" id="main">
</div>
</body>
</html>
@RequestMapping("/avgAge.do")
@ResponseBody
public String avgAge() {
Float avgAge = service.avgAge();
return avgAge.toString();
}
在这里如果返回值与ajax和接收结果类型需要相同,否则不会加载ajax中的< h1 >标签。
String类型的返回值,被@ResponseBody修饰,返回值不是路径,而是字符串,所以ajax接收返回值不需要声明dataType:“json”。