servlet一些小知识

/**
	 * 以下载方式打开资源
	 * @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");
	}


你可能感兴趣的:(servlet一些小知识)