异步上传图片的代码。发现里面用了response.getWriter().print(),故联想到response.getWriter().writer(),经过一番api的查找与实操,总结如下:
- response.getWriter()返回的是PrintWriter,这是一个打印输出流。
- response.getWriter().print(),不仅可以打印输出文本格式的(包括html标签),还可以将一个对象以默认的编码方式转换为二进制字节输出
- response.getWriter().writer(),只能打印输出文本格式的(包括html标签),不可以打印对象。
客户端演示代码
<script type="text/javascript" src="js/jquery.js"></script> <script type="text/javascript"> $(document).ready(function(){ $("#button1").click(function(){ $.get("AJAXServer",null,function(data){ alert(data); $("#info").html(data); }); }); }) </script> </head> <body> <input type="button" id="button1" value="点我获取服务器响应信息" onclick="a()";/>
服务器端
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { Person person = new Person(); person.setName("sjl"); response.getWrier().print(person);}
运行结果 :
server.Person@5bd5ab
如果使用response.getWriter().writer(),则代码会报错