requestとresponseの概念

6236 ワード

requestは、リクエストオブジェクトresponseが表す応答オブジェクトを表します.
RequestFacadeはHttpServertRequestというインタフェースを実現していますが.ただし、対応するリクエスト機能は完了していません.すなわち,このクラスはその実装機能クラスではない.RequstとResponseこそHttpServeretRequestとHttpServeretResponseの実装機能クラスをフェースデザインモードと呼ぶ
      Servlet    request response    

                        HttpServletRequest  ------>     ServletRequest
                        HttpServletResponse  ----->     ServletResponse

tomcatではrequst,responseをゲートモードで操作する.対外的に提供するのはRequestFacade ResponseFacadeの2つのクラスであるが、直正に機能を果たすのはReqeust,Responseクラスである.
1.1.1 requestについてresponseまとめ:1.その役割:requestはhttpリクエストオブジェクトを表し、requestによってHttpリクエスト情報を取得することができる.responseはhttp応答オブジェクトを表し、responseで応答情報を設定できます.
                        2.    servlet    request,response     ?
                                 tomcat        ,  service         servle 。
                               tomcat   request   ,  http         request .
                              
                        3.       
                               ServletReqeust------>HttpServletReqeust-------->              。tomcat   RequestFacade
                               ServletResponse----->HttpServletResponse------->              。tomcat   ResponseFacade

              http        

1.応答行の応答行において重要なのはステータスコードである.responseオブジェクトはsetStatus(int num)メソッドで操作できます.•setStatus(int)•共通ステータスコード:200、302、304、404、500
                        2.   
                               setHeader():         
                               addHeader():         
                               setDateHeader();          
                               setIntHeader();      int     
                        3.    
                                  ,        :
                        response.setContentType("text/html;charset=utf-8");

例2:responseにより応答ヘッダを制御、指定時間の指定ページへのジャンプを完了する.
プロトコルパス付きresponse.setHeader(「refresh」、プロトコルパスresponse.setHeader(「refresh」、「3;url=/web_03/index.html」)
                 :

   //      

String path="E:教育課程javase課程java-se-ppt講義pptjavaWebweb_030.jpg";
//入力ストリームオブジェクトを作成画像情報を読み取るFileInputStream in=new FileInputStream(path);
     //                
         //      io-jar           (   )
         byte[] b=IOUtils.toByteArray(in);
        
         //               ,          
     resp.getOutputStream().write(b);

リクエスト方式postとgetのパラメータの問題1.postリクエストの場合、リクエスト本文にリクエストパラメータが表示されます.username=tom&password=123
                        2.    get    ,          .
                               url?username=tom&password=1234
                              
                
                 1.  http      .
                        1.      

request.getMethod()///GET POSt 2.リクエストパスを取得する.getRequestURI();///servlet 00/demo URI統一資源識別子request.getRequestURL().toString();//http://localhost:8080/servlet00/DemoURL統合リソースロケータ
                               URI   URL,URI URL                       
                               URI       
                               URL                                                 
                              
                        3.      

request.getProtocol();
1.1.2 requestについてクライアント情報を取得する.
                               1.     ip  .
                                      request.getRemoteAddr();
                                     
                               2.         
                                      getContextPath();           ,         .
                                     
                                      /servlet00/Demo
                                      /servlet00---->        .
                                      /Demo---->         
  • 要求時のパラメータ情報requestを取得する.getQueryString();は、要求時に入力されたパラメータ(?番号の後ろの部分)
  • です.
    ////1.取得要求方式//String method = request.getMethod();//System.out.println(method);//GET//////2.取得要求uri//string uri=request.getRequestURI();//System.out.println(uri);//servlet 00/demo//取得要求url//string url=request.getRequestURL().toString();//http://localhost:8080/servlet00/Demo
    //3.取得プロトコル//String protocol=request.getProtocol();//System.out.println(protocol);//HTTP/1.1//////4.クライアントのipアドレス//String ip=requestを取得する.getRemoteAddr();//System.out.println(“IP:” + ip);//
       //5.      
       //String pname=request.getContextPath(); //   
       //System.out.println(pname);
    

    //6. 要求時のパラメータ情報String cs=reqを取得する.getQueryString(); System.out.println(cs);
    request      
    		    1.String getParameter(String name)
                                           name      value .
                                  
                            2.String[] getParameterValues(String name);
                                           ,    checkbox。
                                  
                            3.Enumeration getParameterNames();
                                             name  .
                                  
                            4.Map getParameterMap()
                                          name value map  
    
           //       
           response.setContentType("text/html;charset=utf-8");
          
           //   post        
          
           request.setCharacterEncoding("utf-8");
    
           String username = request.getParameter("username"); //
           //   name  ,     name,      null .
           // username = new String(username.getBytes("iso-8859-1"), "utf-8");
    
           System.out.println(username);
    

    1.1【requestドメインオブジェクト】サーブレットの3つのドメインオブジェクト:request、session、application(サーブレットContextのオブジェクト)には、>void setAttribute(String name,Object value)>Object getAttribute(String name)>void removeAttribute(String name);
                    ServletContext      .
    

    requestの作成と破棄リクエストが来るとtomcatサーバはrequest,responseオブジェクトを作成します.応答が生成されると、requestオブジェクトは破棄されます.すなわち,リクエストごとに新しいリクエストである.
                            request       ,          。
                                   setAttribute()
                                   getAttribute()
                                   removeAttribute();