RequestとResponse

8060 ワード

RequestとResponse 1.HttpServeretResponseの概要
HttpServeretオブジェクトは、クライアントへのサーバの応答を担当し、このオブジェクトは、クライアントにデータ、応答ヘッダ、ステータスコードを送信する方法をカプセル化しています. 2.HttpServeretResponseを使用してクライアントにデータを出力する(中国語)
1  response.setCharacterEncoding("UTF-8");//          
2 response.setHeader("ContentType","text/html;charset=UTF-8");//
3 response.getOutputStream().write(" ".getBytes());

 3.HttpServiceletResponseによるファイルダウンロード
 1 int len = 0;
2 String fileName;
3
4 byte[] buffer = new byte[1024*1024];
5 String path = this.getServletContext().getRealPath("/download/ .jpg");// , URL
6 fileName = path.substring(path.lastIndexOf("\\")+1);
7 response.setHeader("content-disposition", "attachment;filename="+URLEncoder.encode(fileName,"UTF-8"));// URL
8
9 InputStream inStream = null;
10 OutputStream outStream = null;
11 try
12 {
13 inStream = new FileInputStream(path);
14 outStream = response.getOutputStream();
15 while((len = inStream.read(buffer))>0)
16 {
17 outStream.write(buffer,0,len);
18 }
19 }
20 catch(Exception e)
21 {
22 e.printStackTrace();
23 }
24 finally
25 {
26 inStream.close();
27 outStream.close();
28 }

   4.HttpServeretResponseによるリクエストリダイレクト
1 response.sendRedirect("/Tueseday/index.jsp");//           ,           ,                   

   5.HttpServeretResponseを用いて出力検証符号ピクチャ6を実現する.HttpServiceletResponseを使用してブラウザのタイミングリフレッシュを制御
1 response.setHeader("refresh", "3");//           
2 String data = new Random().nextInt(500)+"";
3 response.getWriter().write(data);

 7.HttpServiceletResponseを使用してブラウザのキャッシュとキャッシュの禁止を制御
1  response.setDateHeader("expires", System.currentTimeMillis()+1000*60);//         
2 String data = "this is a test data";
3 response.getWriter().write(data);
4
5 response.setDateHeader("expires", -1);// , ,
6 response.setHeader("Cache-Control", "no-cache");
7 response.setHeader("Pragma", "no-cache");

 8.HttpServiceletRequest概要HttpServiceletRequestはクライアントの要求を表し、クライアントがHttp要求を送信と、そのオブジェクトはHttp要求のすべての情報をカプセル化する.HttpServeretRequestを使用してリクエストデータとリクエストヘッダを取得
1  request.getHeader("Accept-Encoding");//      "Accept-Encoding"  
2 request.getHeaders("Accept-Encoding");// "Accept-Encoding"
3 request.getHeaderNames("Accept-Encoding");//
4
5 request.getParameter("username");// username
6 request.getParameterValues("username");// username
7 request.getParameterNames("username");//
8 request.getParameterMap();// Map

10.HttpServiceletRequestを使用して要求データの文字化けしを取得する(中国語)
1 request.setCharacterEncoding("the same with the browser Encoding");//  Request     

11.HttpServiceletRequestによるリクエスト転送
1  request.getRequestDispatcher("path").forward(request, response);//      

 
12.HttpServiceletRequestによる盗難防止チェーンの実装
1 String referer = request.getHeader("referer");
2 if(!referer.startsWith("http://localhost"))
3 {
4 response.sendRedirect("/Tueseday/index.jsp");
5 }