異步上傳圖片的代碼。發現里面用了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(),則代碼會報錯