问题:
①在客户端输入数据提交之后,不会有数据显示在span标签里
②在客户端输入的userid是1 服务器端显示出来的是0
jsonDataDemo.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>$.ajax()中提交json格式数据</title>
<script src="js/jquery.js"></script>
<script>
function but(){
var userid = $("#userid").val();
var username = $("#username").val();
$.ajax({
type:"post",
url:"jsonData.do",
data:JSON.stringify({
userid:userid,
username: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>
JsonDataServlt
/**
* $.ajax()提交json格式数据
*/
@WebServlet(urlPatterns = "/jsonData.do")
public class JsonDataServlet extends HttpServlet {
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
req.setCharacterEncoding("utf-8");
//通过字符输入流从请求体中获取提交的JSON格式的字符串
String string = req.getReader().readLine();
//使用jackson将json格式字符串转为Java对象
ObjectMapper objectMapper = new ObjectMapper();
Users users = objectMapper.readValue(string, Users.class);
System.out.println(users.getUserid()+" "+users.getUsername());
resp.setContentType("application/json;charset=utf-8");
PrintWriter pw = resp.getWriter();
pw.print(string);
pw.flush();
pw.close();
}
}

