<%--
Created by IntelliJ IDEA.
User: 21129
Date: 2021/9/24
Time: 8:37
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>$Title$</title>
<script>
function but(){
var xhr = new XMLHttpRequest(); //先实例化
xhr.open("get","ajax.do"); //get以什么样的方式,跳转到一个servlet里面叫ajax.do
xhr.send();
xhr.onreadystatechange = function(){
if(xhr.readyState == 4 && xhr.status == 200){
alert(xhr.responseText);
document.getElementById("span").innerHTML = xhr.responseText;
}
}
}
</script>
</head>
<body>
<h3>你好</h3>
<hr/>
<span id="span" >
<input value="ok" type="button" onclick="but()"/>
</span>
</body>
</html>
package com.ajaxServlet01;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
@WebServlet("/ajax.do")
public class AjaxServlet01 extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
PrintWriter pw = resp.getWriter();
pw.println("hello ajax");
pw.flush();
pw.close();
}
}
Ajax_通过JSON格式在响应中传递单个对象
package com.ajaxServlet01.pojo;
public class Users {
private int userid;
private String username;
public int getUserid() {
return userid;
}
public void setUserid(int userid) {
this.userid = userid;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
}
package com.ajaxServlet01.servlet;
import com.ajaxServlet01.pojo.Users;
import com.fasterxml.jackson.databind.ObjectMapper;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
/**
* 通过Json格式响应单个对象
*/
@WebServlet("/single.do")
public class SingleObjectServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//创建Users对象
Users users = new Users();
users.setUserid(1);
users.setUsername("hhh");
//使用Jackson的API将Users对象转换为Json格式的字符串对象
ObjectMapper objectMapper = new ObjectMapper();
//将Users对象转换为JSON格式的字符串对象
String string = objectMapper.writeValueAsString(users);
System.out.println(string);
//设置响应类型为application/json
resp.setContentType("application/json");
PrintWriter pw = resp.getWriter();
pw.print(string);
pw.flush();
pw.close();
}
}
<%--
Created by IntelliJ IDEA.
User: 21129
Date: 2021/9/24
Time: 10:39
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>$Title$</title>
<script>
function but(){
var xhr = new XMLHttpRequest(); //先实例化
xhr.open("get","single.do"); //get以什么样的方式,跳转到一个servlet里面叫ajax.do
xhr.send();
xhr.onreadystatechange = function(){ //回调方法
if(xhr.readyState == 4 && xhr.status == 200){
alert(xhr.responseText);
//通过javascript的内置对象JSON中的parse函数将JSON格式的字符串对转换成javascript对象
var obj = JSON.parse(xhr.responseText);
alert(obj.userid+" "+obj.username);
document.getElementById("span").innerHTML = obj.userid+"<br/>"+obj.username;
}
}
}
</script>
</head>
<body>
<h3>JSON对单个对象的响应</h3>
<hr/>
<span id="span" >
<input value="ok" type="button" onclick="but()"/>
</span>
</body>
</html>
Ajax_通过JSON格式在响应中传递多个对象
package com.ajaxServlet01.servlet;
import com.ajaxServlet01.pojo.Users;
import com.fasterxml.jackson.databind.ObjectMapper;
//Ajax_通过JSON格式在响应中传递多个对象
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
@WebServlet("/multiple.do")
public class MultipleServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
Users users1 = new Users();
users1.setUserid(1);
users1.setUsername("bob");
Users users2 = new Users();
users2.setUsername("lucky");
users2.setUserid(2);
//将多个对象的值放到集合中
List<Users> list = new ArrayList<>();
list.add(users1);
list.add(users2);
//通过jackson将list转换为JSON格式的字符串对象
ObjectMapper objectMapper = new ObjectMapper();
String string = objectMapper.writeValueAsString(list);
System.out.println(string);
resp.setContentType("application/json");
PrintWriter pw = resp.getWriter();
pw.print(string);
pw.flush();
pw.close();
}
}
<%--
Created by IntelliJ IDEA.
User: 21129
Date: 2021/9/24
Time: 15:31
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>$Title$</title>
<script>
function but(){
var xhr = new XMLHttpRequest(); //先实例化
xhr.open("get","multiple.do"); //get以什么样的方式,跳转到一个servlet里面叫ajax.do
xhr.send();
xhr.onreadystatechange = function(){ //回调方法
if(xhr.readyState == 4 && xhr.status == 200){
alert(xhr.responseText);
//通过javascript的内置对象JSON中的parse函数将JSON格式的字符串对转换成javascript对象
var obj = JSON.parse(xhr.responseText);
var temp = "";
for(i=0;i<obj.length;i++){ //因为是多个属性值所以循环遍历
alert(obj[i].userid+" "+obj[i].username);
temp += obj[i].userid+" "+obj[i].username+"<br/>";
}
document.getElementById("span").innerHTML = temp;
}
}
}
</script>
</head>
<body>
<h3>JSON对多个对象的响应</h3>
<hr/>
<span id="span" >
<input value="ok" type="button" onclick="but()"/>
</span>
</body>
</html>
Ajax_在JSON中通过Map传递数据
package com.ajaxServlet01.servlet;
//使用Map模型传递数据
import com.fasterxml.jackson.databind.ObjectMapper;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.HashMap;
import java.util.Map;
@WebServlet("/map.do")
public class MapModelServlet04 extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
Map<String,Object> map = new HashMap<>();
map.put("username","hhh");
map.put("url","map.do");
ObjectMapper objectMapper = new ObjectMapper();
String string = objectMapper.writeValueAsString(map);
System.out.println(string);
resp.setContentType("application/json");
PrintWriter pw = resp.getWriter();
pw.print(string);
pw.flush();
pw.close();
}
}
<%--
Created by IntelliJ IDEA.
User: 21129
Date: 2021/9/24
Time: 16:15
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>$Title$</title>
<script>
function but(){
var xhr = new XMLHttpRequest(); //先实例化
xhr.open("get","map.do"); //get以什么样的方式,跳转到一个servlet里面叫ajax.do
xhr.send();
xhr.onreadystatechange = function(){ //回调方法
if(xhr.readyState == 4 && xhr.status == 200){
alert(xhr.responseText);
//通过javascript的内置对象JSON中的parse函数将JSON格式的字符串对转换成javascript对象
var obj = JSON.parse(xhr.responseText);
alert(obj.username+" "+obj.url);
document.getElementById("span").innerHTML = obj.username+"<br/>"+obj.url;
}
}
}
</script>
</head>
<body>
<h3>Ajax_在JSON中通过Map传递数据</h3>
<hr/>
<span id="span" >
<input value="ok" type="button" onclick="but()"/>
</span>
</body>
</html>
Ajax_在请求中通过JSON格式传递数据
package com.ajaxServlet01.servlet;
//在请求中通过JSON格式传递数据
import com.ajaxServlet01.pojo.Users;
import com.fasterxml.jackson.databind.ObjectMapper;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
@WebServlet("/json.do")
public class requestJsonServlet05 extends HttpServlet {
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//从请求体中获取提交的JSON格式的数据
req.setCharacterEncoding("utf-8");
String s = req.getReader().readLine();
//使用Jackjson将JSON格式的字符串转换成Java对象
ObjectMapper objectMapper = new ObjectMapper();
Users users = objectMapper.readValue(s,Users.class);
System.out.println(users.getUserid()+" "+users.getUsername());
resp.setContentType("application/json");
PrintWriter pw = resp.getWriter();
pw.print("ok");
pw.flush();
pw.close();
}
}
<%--
Created by IntelliJ IDEA.
User: 21129
Date: 2021/9/24
Time: 16:47
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>$Title$</title>
<script>
function but(){
var id = document.getElementById("userid").value;
var name = document.getElementById("username").value;
var obj = {userid:id,username:name}
var content = JSON.stringify(obj); //将js对象转换成json对象
alert(content);
var xhr = new XMLHttpRequest(); //先实例化
xhr.open("post","json.do"); //post以什么样的方式,跳转到一个servlet里面叫json.do
xhr.send(content);
xhr.onreadystatechange = function(){
if(xhr.readyState == 4 && xhr.status == 200){
alert(xhr.responseText);
document.getElementById("span").innerHTML = xhr.responseText;
}
}
}
</script>
</head>
<body>
<h3>Ajax_在请求中通过JSON格式传递数据</h3>
<hr/>
用户id:<input name="userid" id="userid"/><br/>
用户姓名:<input name="username" id="username"/><br/>
<span id="span" >
<input value="ok" type="button" onclick="but()"/>
</span>
</body>
</html>
Ajax_Jackson的常用注解
Ajax_Jquery的$.ajax方法的使用
<%--
Created by IntelliJ IDEA.
User: 21129
Date: 2021/9/25
Time: 9:21
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
<script src="js/jquery.js"></script> //jquery中引入ajax
<script>
function but() {
$.ajax({
type:"get",
url:"jqueryAjax.do",
success:function(result){
$("#span").html(result);
}
})
}
</script>
</head>
<body>
<span id="span"></span>
<input type="button" value="ok" onclick="but()"/>
</body>
</html>
package com.ajaxServlet01.servlet;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
@WebServlet("/jqueryAjax.do")
public class JqueryAjax07 extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
PrintWriter pw = resp.getWriter();
pw.print("hello jquery ajax");
pw.flush();
pw.close();
}
}
Ajax_$.ajax()中提交数据
<%--
Created by IntelliJ IDEA.
User: 21129
Date: 2021/9/25
Time: 9:52
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
<script src="js/jquery.js"></script> //jquery中引入ajax
<script>
function but() {
var userid = $("#userid").val();
var username = $("#username").val();
$.ajax({
type:"get",
url:"data.do",
// data: "id="+userid+"&name="+username,
//基于javascript格式提交数据
data:{
id:userid,
name:username
},
success:function(result){
$("#span").html(result);
}
})
}
</script>
</head>
<body>
用户ID:<input type="text" id="userid"/> <br/>
用户姓名:<input type="text" id="username"/> <br/>
<span id="span"></span>
<input type="button" value="ok" onclick="but()"/>
</body>
</html>
package com.ajaxServlet01.servlet;
//Ajax_$.ajax()中提交数据
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
@WebServlet("/data.do")
public class dataServlet08 extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
String userid = req.getParameter("id");
String username = req.getParameter("name");
PrintWriter pw = resp.getWriter();
pw.print(userid+""+username);
pw.flush();
pw.close();
}
}
Ajax_$.ajax()中提交JSON格式的数据
<%--
Created by IntelliJ IDEA.
User: 21129
Date: 2021/9/25
Time: 11:04
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
<script src="js/jquery.js"></script> //jquery中引入ajax
<script>
function but() {
var userid = $("#userid").val();
var username = $("#username").val();
$.ajax({
type:"post",
url:"jsonData.do",
//Ajax_$.ajax()中提交JSON格式的数据
data:JSON.stringify({
id:userid,
name:username
}),
success:function(result){
$("#span").html(result);
}
})
}
</script>
</head>
<body>
用户ID:<input type="text" id="userid"/> <br/>
用户姓名:<input type="text" id="username"/> <br/>
<span id="span"></span>
<input type="button" value="ok" onclick="but()"/>
</body>
</html>
package com.ajaxServlet01.servlet;
//Ajax_$.ajax()中提交JSON格式的数据
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
@WebServlet("/jsonData.do")
public class JsonDataServlet extends HttpServlet {
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
String s = req.getReader().readLine();
PrintWriter pw = resp.getWriter();
pw.print(s);
pw.flush();
pw.close();
}
}
Ajax_$.ajax()处理响应中的JSON格式数据
<%--
Created by IntelliJ IDEA.
User: 21129
Date: 2021/9/25
Time: 11:27
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
<script src="js/jquery.js"></script> //jquery中引入ajax
<script>
function but() {
var userid = $("#userid").val();
var username = $("#username").val();
$.ajax({
type:"post",
url:"jsonConvert.do",
dataType:"json",
//Ajax_$.ajax()中提交JSON格式的数据
data:JSON.stringify({
id:userid,
name:username
}),
success:function(result){
alert(result.id+" "+result.name);
$("#span").html(result.id+" "+result.name);
}
})
}
</script>
</head>
<body>
用户ID:<input type="text" id="userid"/> <br/>
用户姓名:<input type="text" id="username"/> <br/>
<span id="span"></span>
<input type="button" value="ok" onclick="but()"/>
</body>
</html>
package com.ajaxServlet01.servlet;
//提交JSON格式数据在页面中自动转换类型
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
@WebServlet("/jsonConvert.do")
public class jsonConvertServlet09 extends HttpServlet {
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
resp.setContentType("application/json");
String s = req.getReader().readLine();
PrintWriter pw = resp.getWriter();
pw.print(s);
pw.flush();
pw.close();
}
}
Ajax_$.get()的使用
<%--
Created by IntelliJ IDEA.
User: 21129
Date: 2021/9/25
Time: 15:05
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
<script src="js/jquery.js"></script> //jquery中引入ajax
<script>
function but() {
var userid = $("#userid").val();
var username = $("#username").val();
//使用get
// $.get("data.do","id="+userid+"&name="+username,function(result){
// $("#span").html(result);
// })
$.get("data.do",{id:userid,name:username},function(result){
$("#span").html(result);
})
}
</script>
</head>
<body>
用户ID:<input type="text" id="userid"/> <br/>
用户姓名:<input type="text" id="username"/> <br/>
<span id="span"></span>
<input type="button" value="ok" onclick="but()"/>
</body>
</html>
Ajax_$.post()的使用
<%--
Created by IntelliJ IDEA.
User: 21129
Date: 2021/9/25
Time: 15:16
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
<script src="js/jquery.js"></script> //jquery中引入ajax
<script>
function but() {
var userid = $("#userid").val();
var username = $("#username").val();
//使用get
// $.post("data.do","id="+userid+"&name="+username,function(result){
// $("#span").html(result);
// })
$.post("data.do",{id:userid,name:username},function(result){
$("#span").html(result);
})
}
</script>
</head>
<body>
用户ID:<input type="text" id="userid"/> <br/>
用户姓名:<input type="text" id="username"/> <br/>
<span id="span"></span>
<input type="button" value="ok" onclick="but()"/>
</body>
</html>
Ajax_$.getJSON()的使用
<%--
Created by IntelliJ IDEA.
User: 21129
Date: 2021/9/25
Time: 15:29
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
<script src="js/jquery.js"></script> //jquery中引入ajax
<script>
function but() {
var userid = $("#userid").val();
var username = $("#username").val();
$.getJSON("getJson.do",{id:userid,name:username},function(result){
alert(result.userid+" "+result.username);
$("#span").html(result.userid+" "+result.username);
})
}
</script>
</head>
<body>
用户ID:<input type="text" id="userid"/> <br/>
用户姓名:<input type="text" id="username"/> <br/>
<span id="span"></span>
<input type="button" value="ok" onclick="but()"/>
</body>
</html>
package com.ajaxServlet01.servlet;
/**
* getJson方法传递数据并返回JSON格式数据
*/
import com.ajaxServlet01.common.JsonUtils;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.HashMap;
import java.util.Map;
@WebServlet("/getJson.do")
public class GetJsonServlet10 extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
String userid = req.getParameter("id");
String username = req.getParameter("name");
Map<String,String> map = new HashMap<>();
map.put("userid",userid);
map.put("username",username);
String s = JsonUtils.objectToJson(map);
resp.setContentType("application/json");
PrintWriter pw = resp.getWriter();
pw.print(s);
pw.flush();
pw.close();
}
}
Ajax_serialize()方法的使用
<%--
Created by IntelliJ IDEA.
User: 21129
Date: 2021/9/25
Time: 16:01
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
<script src="js/jquery.js"></script> //jquery中引入ajax
<script>
function but() {
var param = $("#form").serialize(); //这里就是免去 拼接字符串 userid+" " +username
alert(param);
$.ajax({
type:"get",
url:"data.do",
data:param,
success:function(result){
$("#span").html(result);
}
})
}
</script>
</head>
<body>
<form id="form">
用户ID:<input type="text" name="id" id="userid"/> <br/>
用户姓名:<input type="text" name="name" id="username"/> <br/>
</form>
<span id="span"></span>
<input type="button" value="ok" onclick="but()"/>
</body>
</html>
demo
JSP页面
<%--
Created by IntelliJ IDEA.
User: 21129
Date: 2021/9/25
Time: 16:44
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>用户登录</title>
<script src="js/jquery.js"></script>
<script>
$(function () {
//获取页面初始化数据
getData();
//添加按钮绑定点击事件
$("#add").click(function () {
addOrUpdateUser("addUser");
});
//更新按钮绑定点击事件
$("#update").click(function(){
addOrUpdateUser("updateUser");
});
});
//获取页面初始化数据
function getData(){
$.getJSON("user.do",{flag:"getData"},function(result){
init(result);
});
}
//遍历数据生成数据
function init(obj) {
var str="";
$.each(obj,function(){
str += "<tr align='center'><td id='"+this.userid+"'>"+this.userid+"</td><td>"+this.username+"</td><td>"+this.usersex+"</td><td>"+this.userbirth+"</td><td><a href='#' onclick='preUpdateUser("+this.userid+")'>选择更新</a> <a href='#' onclick='deleteUser("+this.userid+")'>删除</a></td></tr>"
});
$("#tBody").prepend(str);
}
//用户添加或者用户更新
function addOrUpdateUser(flag){
//从页面中获取数据
var userid = $("#userid").val();
var username = $("#username").val();
var usersex = $("#usersex").val();
var userbirth = $("#userbirth").val();
var data = {
userid :userid,
username:username,
usersex: usersex,
userbirth: userbirth,
flag: flag
}
location.reload(); //页面刷新
$.get("user.do",data,function(result){
alert(result);
})
}
//更新之前的数据选择
function preUpdateUser(userid){
var arr = new Array();
$("#"+userid).closest("tr").children().each(function(index,ele){
if(index<=3){
arr[index] = ele.innerText
}
});
//回填选择的一行信息
$("#userid").val(arr[0]);
$("#username").val(arr[1]);
$("#usersex").val(arr[2]);
$("#userbirth").val(arr[3]);
$("#userid").attr("readonly",true); //不能修改id属性
}
//删除用户
function deleteUser(userid) {
$("#"+userid).closest("tr").remove();
$.get("user.do",{userid:userid},function(result){
alert(result);
})
}
</script>
</head>
<body>
<table align="center" width="60%" border="1">
<tr>
<td>ID:</td>
<td><input type="text" name="userid" id="userid"/></td>
<td>姓名:</td>
<td><input type="text" name="username" id="username"/></td>
</tr>
<tr>
<td>性别:</td>
<td><input type="text" name="usersex" id="usersex"/></td>
<td>生日:</td>
<td><input type="text" name="userbirth" id="userbirth"/></td>
</tr>
<tr align="center">
<td colspan="4">
<input type="button" value="添加用户" id="add" />
<input type="button" value="更新用户" id="update"/>
</td>
</tr>
</table>
<hr/>
<table align="center" width="60%" bgcolor="" border="1" id="myTable">
<thead>
<tr align="center">
<td>ID</td>
<td>姓名</td>
<td>性别</td>
<td>生日</td>
<td>操作</td>
</tr>
</thead>
<tbody id="tBody"></tbody>
</table>
</body>
</html>
实体类:
package com.ajaxServlet01.pojo;
import com.fasterxml.jackson.annotation.JsonFormat;
import java.util.Date;
public class User {
private int userid;
private String username;
private String usersex;
@JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
private Date userbirth;
public int getUserid() {
return userid;
}
public void setUserid(int userid) {
this.userid = userid;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getUsersex() {
return usersex;
}
public void setUsersex(String usersex) {
this.usersex = usersex;
}
public Date getUserbirth() {
return userbirth;
}
public void setUserbirth(Date userbirth) {
this.userbirth = userbirth;
}
}
Servlet实现页面
package com.ajaxServlet01.servlet;
/**
* 用户管理Servlet
*/
import com.ajaxServlet01.common.JsonUtils;
import com.ajaxServlet01.pojo.User;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.SimpleTimeZone;
@WebServlet("/user.do")
public class UserServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
this.doPost(req,resp);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
String flag = req.getParameter("flag");
if("getData".equals(flag)){
this.getData(req,resp);
}else if("addUser".equals(flag)){
this.addUser(req,resp);
}else if("updateUser".equals(flag)){
this.updateUser(req,resp);
}else{
this.deleteUser(req,resp);
}
}
//处理删除请求
private void deleteUser(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException{
ServletContext servletContext = this.getServletContext();
List<User> list =(List<User>) servletContext.getAttribute("list");
String userid = req.getParameter("userid");
User user = null;
for(User temp:list){
if((temp.getUserid()+"").equals(userid)){
user = temp;
break;
}
}
if(user !=null){
list.remove(user);
}
resp.setContentType("text/plain;charset=utf-8");
PrintWriter pw = resp.getWriter();
pw.print("更新成功");
pw.flush();
pw.close();
}
//处理更新请求
private void updateUser(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException {
User user = this.createUser(req);
ServletContext servletContext = this.getServletContext();
List<User> list =(List<User>) servletContext.getAttribute("list");
User u =null;
for(User temp : list) {
if (temp.getUserid() == user.getUserid()) {
u = temp;
break;
}
}
if(u != null){
list.remove(u);
}
list.add(user);
resp.setContentType("text/plain;charset=utf-8");
PrintWriter pw = resp.getWriter();
pw.print("更新成功");
pw.flush();
pw.close();
}
//处理添加用户请求
private void addUser(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException{
User user = this.createUser(req);
ServletContext servletContext = this.getServletContext();
List<User> list =(List<User>) servletContext.getAttribute("list");
list.add(user);
resp.setContentType("text/plain;charset=utf-8");
PrintWriter pw = resp.getWriter();
pw.print("添加成功");
pw.flush();
pw.close();
}
//获取请求数据、
private User createUser(HttpServletRequest req){
String userid = req.getParameter("userid");
String username = req.getParameter("username");
String usersex = req.getParameter("usersex");
String userbirth = req.getParameter("userbirth");
User user = new User();
user.setUserid(Integer.parseInt(userid));
user.setUsername(username);
user.setUsersex(usersex);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
try {
Date parse = sdf.parse(userbirth);
user.setUserbirth(parse);
} catch (ParseException e) {
e.printStackTrace();
}
return user;
}
//获取页面初始化数据
private void getData(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
List<User> list = (List<User>)this.getServletContext().getAttribute("list");
String s = JsonUtils.objectToJson(list);
resp.setContentType("application/json");
PrintWriter pw = resp.getWriter();
pw.print(s);
pw.flush();
pw.close();
}
//生成模拟数据初始化
@Override
public void init() throws ServletException {
User user = new User();
user.setUserid(1);
user.setUsername("hhh");
user.setUsersex("male");
user.setUserbirth(new Date());
User user2 = new User();
user2.setUserid(12);
user2.setUsername("1111hhh");
user2.setUsersex("male");
user2.setUserbirth(new Date());
List<User> list = new ArrayList<>();
list.add(user);
list.add(user2);
ServletContext servletContext = this.getServletContext();
servletContext.setAttribute("list",list);
}
}
实现效果: