Servlet學習筆記(二):HTTP請求與響應

來源:互聯網
上載者:User

標籤:學習筆記   筆記   ica   form   html   rac   user   情況   session   

一、HTTP請求常用方法:

Cookie[] getCookies()
返回一個數組,包含用戶端發送該請求的所有的 Cookie 對象。

Enumeration getAttributeNames()
返回一個枚舉,包含提供給該請求可用的屬性名稱。

HttpSession getSession()
返回與該請求關聯的當前 session 會話,或者如果請求沒有 session 會話,則建立一個。

HttpSession getSession(boolean create)
返回與該請求關聯的當前 HttpSession,或者如果沒有當前會話,且建立是真的,則返回一個新的 session 會話。

String getRequestedSessionId()
返回由用戶端指定的 session 會話 ID。

Object getAttribute(String name)
以對象形式返回已命名屬性的值,如果沒有給定名稱的屬性存在,則返回 null。

String getCharacterEncoding()
返回請求主體中使用的字元編碼的名稱。

String getContentType()
返回請求主體的 MIME 類型,如果不知道類型則返回 null。

String getContextPath()
返回指示請求內容相關的請求 URI 部分。

String getQueryString()
返回包含在路徑後的請求 URL 中的查詢字串。

String getRemoteUser()
如果使用者已通過身分識別驗證,則返回傳出請求的登入使用者,或者如果使用者未通過身分識別驗證,則返回 null。

int getParameterMap()
將參數封裝成 Map 類型。

二、設定 HTTP 響應前序的方法:

void reset()
清除緩衝區中存在的任何資料,包括狀態代碼和頭。

void resetBuffer()
清除響應中基礎緩衝區的內容,不清除狀態代碼和頭。

void setCharacterEncoding(String charset)
設定被發送到用戶端的響應的字元編碼(MIME 字元集)例如,UTF-8。

void setStatus(int sc)
為該響應設定狀態代碼。

void setIntHeader(String name, int value)
設定一個帶有給定的名稱和整數值的響應前序。

  HTTP Header 響應執行個體:

//匯入必需的 java 庫import java.io.IOException;import java.io.PrintWriter;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;@WebServlet("/Refresh")//擴充 HttpServlet 類public class Refresh extends HttpServlet {    // 處理 GET 方法請求的方法      public void doGet(HttpServletRequest request,                        HttpServletResponse response)                throws ServletException, IOException      {          // 設定重新整理自動載入時間為 5 秒          response.setIntHeader("Refresh", 5);          // 設定響應內容類型          response.setContentType("text/html;charset=UTF-8");                   //使用預設時區和語言環境獲得一個日曆            Calendar cale = Calendar.getInstance();            //將Calendar類型轉換成Date類型            Date tasktime=cale.getTime();            //設定日期輸出的格式            SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");            //格式化輸出            String nowTime = df.format(tasktime);          PrintWriter out = response.getWriter();          String title = "自動重新整理 Header 設定 - 菜鳥教程執行個體";          String docType =          "<!DOCTYPE html>\n";          out.println(docType +            "<html>\n" +            "<head><title>" + title + "</title></head>\n"+            "<body bgcolor=\"#f0f0f0\">\n" +            "<h1 align=\"center\">" + title + "</h1>\n" +            "<p>目前時間是:" + nowTime + "</p>\n");      }      // 處理 POST 方法請求的方法      public void doPost(HttpServletRequest request,                         HttpServletResponse response)          throws ServletException, IOException {         doGet(request, response);      }}

  以上測試執行個體是位於 TomcatTest 項目下,對應的 web.xml 配置為:

<?xml version="1.0" encoding="UTF-8"?>  <web-app>    <servlet>       <!-- 類名 -->      <servlet-name>Refresh</servlet-name>      <!-- 所在的包 -->      <servlet-class>com.runoob.test.Refresh</servlet-class>    </servlet>    <servlet-mapping>      <servlet-name>Refresh</servlet-name>  同上面的類名    <!-- 訪問的網址 -->      <url-pattern>/TomcatTest/Refresh</url-pattern>      </servlet-mapping>  </web-app> 

  現在,調用上面的 Servlet,每隔 5 秒會顯示當前系統時間。

三、HTTP狀態代碼

404:伺服器無法找到所請求的頁面。

403:禁止訪問所請求的頁面。

401:所請求的頁面需要使用者名稱和密碼。

405:在請求中指定的方法是不允許的。

307:所請求的頁面已經臨時轉移到一個新的 URL。

500:未完成的請求。伺服器遇到了一個意外的情況。

  下面的方法可用於在 Servlet 程式中設定 HTTP 狀態代碼。這些方法通過 HttpServletResponse 對象可用。

public void setStatus ( int statusCode )
該方法設定一個任意的狀態代碼。setStatus 方法接受一個 int(狀態代碼)作為參數。如果您的反應包含了一個特殊的狀態代碼和文檔,請確保在使用 PrintWriter 實際返回任何內容之前調用 setStatus。

public void sendError(int code, String message)
該方法發送一個狀態代碼(通常為 404),連同一個在 HTML 文檔內部自動格式化並發送到用戶端的短訊息。

// 設定錯誤碼和原因response.sendError(407, "Need authentication!!!" );

 

Servlet學習筆記(二):HTTP請求與響應

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.