/** * 以下载方式打开资源 * @param response * @throws IOException */ private void test5(HttpServletResponse response) throws IOException { response.setHeader("Content-Disposition", "attachment;filename=android_mdpi.png"); InputStream in = this.getServletContext().getResourceAsStream("/android_mdpi.png"); int len = 0; byte buffer[] = new byte[1024]; OutputStream out = response.getOutputStream(); while((len = in.read(buffer)) > 0){ out.write(buffer, 0, len); } }
//定时刷新 private void test4(HttpServletResponse response) throws IOException { //告诉浏览器每隔3秒刷新一次,分号后面表示3秒钟之后刷新到的地址 response.setHeader("refresh", "3;url='http://www.baidu.com'"); String data = "bbbbbbbbbb"; response.getOutputStream().write(data.getBytes()); }
/** * 通过content-type头字段控制浏览器以哪种格式打开数据 * @param response * @throws IOException */ private void test3(HttpServletResponse response) throws IOException { //其中image/png 在conf的web.xml文件中去查询 response.setHeader("Content-Type", "image/png"); InputStream in = this.getServletContext().getResourceAsStream("/android_mdpi.png"); int len = 0; byte buffer[] = new byte[1024]; OutputStream out = response.getOutputStream(); while((len = in.read(buffer)) > 0){ out.write(buffer, 0, len); } }
/** * gzip格式压缩数据测试 * @param response * @throws IOException */ private void test2(HttpServletResponse response) throws IOException { String data = "aaaaaaaaaawwwwwwwwwwwwwwwwwwwwwwwwwwwwwddddddddddddddddddddddddddddddddddddddddd" + "wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww" + "wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww" + "wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww" + "wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww" + "wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww" + "wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww"; System.out.println("原始数据大小:" + data.getBytes().length); //该流称作底层流 ByteArrayOutputStream bout = new ByteArrayOutputStream(); //该流称作包装流 GZIPOutputStream gout = new GZIPOutputStream(bout); gout.write(data.getBytes()); gout.close(); byte gzip[] = bout.toByteArray();//得到压缩后的数据 System.out.println("压缩后的大小:" + gzip.length); //通知浏览器数据采用的压缩格式 response.setHeader("Content-Encoding", "gzip"); //够素浏览器数据的长度 response.setHeader("Content-Length", gzip.length+""); response.getOutputStream().write(gzip); }
/** * 请求重定向测试 * @param response */ private void test1(HttpServletResponse response) { response.setStatus(302); response.setHeader("location", "/day04/1.html"); }