自学Servlet_3_response
response解决中文乱码问题:
//更改response的码表,通知服务器用UTF-8码表去取response中的数据,然后写给客户机response.setCharacterEncoding("UTF-8"); //通知浏览器以UTF-8码表打开回送的数据//response.setHeader("content-type", "text/html;charset=UTF-8");response.setContentType("text/html;charset=UTF-8");String data = "中国";PrintWriter writer = response.getWriter();writer.write(data);
public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {//1.获取需要下载的文件String path = this.getServletContext().getRealPath("/download/日本妞.jpg");String filename = path.substring(path.lastIndexOf("\")+1);//2.通知浏览器以下载方式打开 (下载的中文文件名必须要给过URL编码)response.setHeader("content-disposition", "attachment;filename="+URLEncoder.encode(filename, "UTF-8"));//3.向浏览器写出数据//传输数据的模板代码FileInputStream in = null;try{OutputStream out = response.getOutputStream();in = new FileInputStream(path);byte buffer[] = new byte[1024];int len = 0;while((len=in.read(buffer))>0){out.write(buffer,0,len);}}finally{if(in!=null){in.close();}}}