今天下午由于参加学校的奖学金颁发仪式没有去上实训课 ,拉下了一下午 ,听老师说今天讲的json的知识,
我也不知道什么是json估计跟js有关 现在开始整理一下资料 自学一下。
首先先看一下上次讲的通过filter过滤器控制request的CharacterEncoding,在页面访问服务器资源之前我们都可以给我们的资源或者代码加上过滤器,
通过在过滤器中的代码可以实现对session内的登录信息的判断,判断提交的请求是否有登录信息或者有权限,没有登录信息或者权限的话我们可以用重定向的方式response.sendRedirect()以页面跳转的登录页面, 所以如果我们设置一个匹配项目中所有路径的过滤器,我们就可一在过滤器代码中实现一些初始化操作,比如说 request.setCharacterEncoding("utf-8");
新建过滤器
在RequestFilter 类中实现Filter接口并在doFilter中填写代码
下面进入正题test一下json 导入json的包(文件已上传)、、
新建一个Student 类 和StudentServlet类 实现后台的json传输;
package com.jreehedu.servlet;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import net.sf.json.JSONArray;
import com.jreehedu.java.Student;
public class StudentServlet extends HttpServlet {
/**
*
*/
private static final long serialVersionUID = 1L;
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
doPost(req, resp);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
ArrayList<Student> list =new ArrayList<Student>();
list.add(new Student("张三",20,"男")); //先用arraylist存放几个测试
list.add(new Student("李四",20,"男"));
resp.setContentType("text/html;charset=utf-8");//设置输出模式
PrintWriter out =resp.getWriter(); //resp向页面输出
JSONArray jsonList =JSONArray.fromObject(list);
out.write(jsonList.toString());
//将arraylist封装成jsonlist
}
}
编写json接收的前端html
<!DOCTYPE html>
<!--
To change this license header, choose License Headers in Project Properties.
To change this template file, choose Tools | Templates
and open the template in the editor.
-->
<html>
<head>
<title>测试JSON回调</title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<script src="js/jquery-1.10.2.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function () {
$("input[type='button']").bind("click",function () {
$.get("StudentServlet",function (data) {
$.each(data,function (i,d) {
var str="";
str+="<tr>";
str+="<td>";
str+=d.name;
str+="</td>";
str+="<td>";
str+=d.sex;
str+="</td>";
str+="<td>";
str+=d.age;
str+="</td>";
str+="</tr>";
$("#s").append(str);
});
},"json");
});
});
</script>
</head>
<body>
<div>测试JSON回调</div>
<input type="button" value="查询" />
<table id="s">
<tr>
<td>姓名</td>
<td>性别</td>
<td>年龄</td>
</tr>
</table>
</body>
</html>
在web.xml中配置StudentServlet路径
运行效果
点击查询以后
这样就用json传输了存放student类的list集合
声明这只是本人在学习过程中的一点个人笔记,哪里有错误感谢指正!