Http请求和响应应用

 1 //以下载方式打开资源

 2     public void test4(HttpServletResponse response) throws IOException {

 3         response.setHeader("content-disposition", "attachment;filename=1.bmp");

 4         InputStream in = this.getServletContext().getResourceAsStream("/1.bmp");

 5         int len = 0;

 6         byte buffer[] = new byte[1024];

 7         OutputStream out = response.getOutputStream();

 8         while((len=in.read(buffer))>0){

 9             out.write(buffer, 0, len);

10         }

11     }

12     //设置响应头,每隔3秒刷新一次

13     public void test3(HttpServletResponse response) throws IOException {

14         response.setHeader("refresh", "3");//可以用在股票里

15         //response.setHeader("refresh", "3:url='http://www.sina.com'");3秒之后刷新到新浪上面去

16         //在论坛上,会说3秒后去哪,就是用到这个技术。

17         String data = "aaaaaaaaaaaaa";//服务器从浏览器得到的数据

18         response.getOutputStream().write(data.getBytes());

19     }

20     //通过content-type字段控制浏览器以哪种方式打开数据

21     public void test2(HttpServletResponse response) throws IOException {

22         response.setHeader("content-type", "image/bmp");

23         InputStream in = this.getServletContext().getResourceAsStream("/1.bmp");

24         int len = 0;

25         byte buffer[] = new byte[1024];

26         OutputStream out = response.getOutputStream();

27         while((len=in.read(buffer))>0){

28             out.write(buffer, 0, len);

29         }

30     }

31     

32     //压缩数据输出

33     public void test1(HttpServletResponse response) throws IOException {

34         String data="aaaaaaaaa";

35         ByteArrayOutputStream bout = new ByteArrayOutputStream();

36         GZIPOutputStream gout = new GZIPOutputStream(bout);

37         //ByteArrayOutputStream叫底层流,GZIPOutputStream包装流,包装流会有一个缓冲的,调用包装流写数据的时候,

38         //如果数据量没有把包装流的缓冲写满,他是不会往底层流里面写的,为了确保一定能够取到数据,添加gout.close();

39         gout.write(data.getBytes());

40         gout.close();

41         byte gzip[] = bout.toByteArray();//得到压缩后的数据

42         //给浏览器之后浏览器不知道是压缩数据,一定要通过设置响应头,通知浏览器数据采用的压缩格式,不然会出现错误

43         response.setHeader("Content-Encoding", "gzip");

44         response.setHeader("Content-Length", gzip.length+"");

45         response.getOutputStream().write(gzip);

46     }

47 //实现断点下载,请求里面包含range头

48     public static void test6() throws MalformedURLException, IOException,

49             FileNotFoundException {

50         //已接受aaaaa  源文件aaaaaaaaaaaaaaaaaaaaa

51         URL url = new URL("http://localhost:8080/day05/a.txt");

52         HttpURLConnection conn = (HttpURLConnection) url.openConnection();

53         conn.setRequestProperty("Range", "bytes=5-");

54         

55         InputStream in = conn.getInputStream();

56         

57         int len=0;

58         byte buffer[] = new byte[1024];

59         FileOutputStream out = new FileOutputStream("c:\\a.txt",true);//追加

60         while((len=in.read(buffer))>0){

61             out.write(buffer, 0, len);

62         }

63         in.close();

64         out.close();

65     }

 

你可能感兴趣的:(http)