1. 程式人生 > >Servlet生命週期和處理Http請求與響應

Servlet生命週期和處理Http請求與響應

  • servlet的生命週期:

   1.容器開啟並載入servlet;

   2.呼叫init()方法對servlet進行初始化;

   3.當請求到來呼叫service()方法處理請求,傳送響應;

   4.呼叫destory()方法銷燬servlet;

  • servlet處理Http響應

           來看看http的響應資訊結構包括:狀態行、響應頭、空行、訊息體;

           狀態行中各個狀態碼代表的意思:

                      100-199:訊息;

                      200-299:響應成功;

                      300-399:頁面重定向;

                      400-499:客戶端發生錯誤;

                      500-599:伺服器端發生錯誤;

            我們也可以手動來設定狀態碼:response.setError(狀態碼);

            設定響應頭:response.setHeader(鍵,值);

            設定訊息體(常用):

                       1.傳輸文字:response.getWriter();

                       2.傳輸二進位制檔案:response.getOutputStream();

            請求的重定向:response.sendRedirect();

            重定向原理:當一個請求到來時如果要進行重定向,伺服器會在狀態行傳送一個302的狀態碼,把傳送一個location的響應頭,客戶端獲得一個302的狀態碼後會將位址列修改為響應頭的location,然後再次傳送一個請求,在整個過程中客戶端傳送了兩次請求;

  • servlet處理Http請求

              來看看http的請求資訊結構包括:請求行、請求頭、空行、訊息體;

              獲取屬性方法:request.getParemeter(name);    request.getParemeterValues(name);

              內部轉發:

                  RequestDispather dis = request.getRequestDispather("轉發地址");

                  dis.include(request,response);

                  dis.forward(request,response);

              修正亂碼方法2:例:String name=request.getParemeter("name");

                                           byte[] bt = name.getBytes("ISO8859-1");

                                           name = new String(bt,"gbk");