大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

Servlet教程

Servlet客戶端HTTP請求

當瀏覽器請求網頁時,它會向 Web 服務器發送特定信息,這些信息不能被直接讀取,因為這些信息是作為 HTTP 請求的頭的一部分進行傳輸的。您可以查看 HTTP 協議 了解更多相關信息。

以下是來自于瀏覽器端的重要頭信息,您可以在 Web 編程中頻繁使用:

頭信息

描述

Accept

這個頭信息指定瀏覽器或其他客戶端可以處理的 MIME 類型。值 image/png 或 image/jpeg 是最常見的兩種可能值。

Accept-Charset

這個頭信息指定瀏覽器可以用來顯示信息的字符集。例如 ISO-8859-1。

Accept-Encoding

這個頭信息指定瀏覽器知道如何處理的編碼類型。值 gzip 或 compress 是最常見的兩種可能值。

Accept-Language

這個頭信息指定客戶端的首選語言,在這種情況下,Servlet 會產生多種語言的結果。例如,en、en-us、ru 等。

Authorization

這個頭信息用于客戶端在訪問受密碼保護的網頁時識別自己的身份。

Connection

這個頭信息指示客戶端是否可以處理持久 HTTP 連接。持久連接允許客戶端或其他瀏覽器通過單個請求來檢索多個文件。值 Keep-Alive 意味著使用了持續連接。

Content-Length

這個頭信息只適用于 POST 請求,并給出 POST 數據的大小(以字節為單位)。

Cookie

這個頭信息把之前發送到瀏覽器的 cookies 返回到服務器。

Host

這個頭信息指定原始的 URL 中的主機和端口。

If-Modified-Since

這個頭信息表示只有當頁面在指定的日期后已更改時,客戶端想要的頁面。如果沒有新的結果可以使用,服務器會發送一個 304 代碼,表示 Not Modified 頭信息。

If-Unmodified-Since

這個頭信息是 If-Modified-Since 的對立面,它指定只有當文檔早于指定日期時,操作才會成功。

Referer

這個頭信息指示所指向的 Web 頁的 URL。例如,如果您在網頁 1,點擊一個鏈接到網頁 2,當瀏覽器請求網頁 2 時,網頁 1 的 URL 就會包含在 Referer 頭信息中。

User-Agent

這個頭信息識別發出請求的瀏覽器或其他客戶端,并可以向不同類型的瀏覽器返回不同的內容。

讀取 HTTP 頭的方法

下面的方法可用在 Servlet 程序中讀取 HTTP 頭。這些方法通過 HttpServletRequest 對象可用。

序號

方法 & 描述

1

Cookie[] getCookies()

返回一個數組,包含客戶端發送該請求的所有的 Cookie 對象。

2

Enumeration getAttributeNames()

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

3

Enumeration getHeaderNames()

返回一個枚舉,包含在該請求中包含的所有的頭名。

4

Enumeration getParameterNames()

返回一個 String 對象的枚舉,包含在該請求中包含的參數的名稱。

5

HttpSession getSession()

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

6

HttpSession getSession(boolean create)

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

7

Locale getLocale()

基于 Accept-Language 頭,返回客戶端接受內容的首選的區域設置。

8

Object getAttribute(String name)

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

9

ServletInputStream getInputStream()

使用 ServletInputStream,以二進制數據形式檢索請求的主體。

10

String getAuthType()

返回用于保護 Servlet 的身份驗證方案的名稱,例如,"BASIC" 或 "SSL",如果JSP沒有受到保護則返回 null。

11

String getCharacterEncoding()

返回請求主體中使用的字符編碼的名稱。

12

String getContentType()

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

13

String getContextPath()

返回指示請求上下文的請求 URI 部分。

14

String getHeader(String name)

以字符串形式返回指定的請求頭的值。

15

String getMethod()

返回請求的 HTTP 方法的名稱,例如,GET、POST 或 PUT。

16

String getParameter(String name)

以字符串形式返回請求參數的值,或者如果參數不存在則返回 null。

17

String getPathInfo()

當請求發出時,返回與客戶端發送的 URL 相關的任何額外的路徑信息。

18

String getProtocol()

返回請求協議的名稱和版本。

19

String getQueryString()

返回包含在路徑后的請求 URL 中的查詢字符串。

20

String getRemoteAddr()

返回發送請求的客戶端的互聯網協議(IP)地址。

21

String getRemoteHost()

返回發送請求的客戶端的完全限定名稱。

22

String getRemoteUser()

如果用戶已通過身份驗證,則返回發出請求的登錄用戶,或者如果用戶未通過身份驗證,則返回 null。

23

String getRequestURI()

從協議名稱直到 HTTP 請求的第一行的查詢字符串中,返回該請求的 URL 的一部分。

24

String getRequestedSessionId()

返回由客戶端指定的 session 會話 ID。

25

String getServletPath()

返回調用 JSP 的請求的 URL 的一部分。

26

String[] getParameterValues(String name)

返回一個字符串對象的數組,包含所有給定的請求參數的值,如果參數不存在則返回 null。

27

boolean isSecure()

返回一個布爾值,指示請求是否使用安全通道,如 HTTPS。

28

int getContentLength()

以字節為單位返回請求主體的長度,并提供輸入流,或者如果長度未知則返回 -1。

29

int getIntHeader(String name)

返回指定的請求頭的值為一個 int 值。

30

int getServerPort()

返回接收到這個請求的端口號。

HTTP Header 請求實例

下面的實例使用 HttpServletRequest 的 getHeaderNames() 方法讀取 HTTP 頭信息。該方法返回一個枚舉,包含與當前的 HTTP 請求相關的頭信息。

一旦我們有一個枚舉,我們可以以標準方式循環枚舉,使用 hasMoreElements() 方法來確定何時停止,使用 nextElement() 方法來獲取每個參數的名稱。

// 導入必需的 java 庫
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.util.*;
 
// 擴展 HttpServlet 類
public class DisplayHeader extends HttpServlet {
 
  // 處理 GET 方法請求的方法
  public void doGet(HttpServletRequest request,
                    HttpServletResponse response)
            throws ServletException, IOException
  {
      // 設置響應內容類型
      response.setContentType("text/html");
 
      PrintWriter out = response.getWriter();
    String title = "HTTP Header 請求實例";
      String docType =
      "<!doctype html public \"-//bjpowernode//dtd html 4.0 " +       "transitional//en\">\n";
      out.println(docType +
        "<html>\n" +
        "<head><title>" + title + "</title></head>\n"+
        "<body bgcolor=\"#f0f0f0\">\n" +
        "<h1 align=\"center\">" + title + "</h1>\n" +
        "<table width=\"100%\" border=\"1\" align=\"center\">\n" +
        "<tr bgcolor=\"#949494\">\n" +
        "<th>Header 名稱</th><th>Header 值</th>\n"+
        "</tr>\n");
 
      Enumeration headerNames = request.getHeaderNames();
      
      while(headerNames.hasMoreElements()) {
         String paramName = (String)headerNames.nextElement();
         out.print("<tr><td>" + paramName + "</td>\n");
         String paramValue = request.getHeader(paramName);
         out.println("<td> " + paramValue + "</td></tr>\n");
      }
      out.println("</table>\n</body></html>");
  }
  // 處理 POST 方法請求的方法
  public void doPost(HttpServletRequest request,
                     HttpServletResponse response)
      throws ServletException, IOException {
     doGet(request, response);
  }
}

現在,調用上面的 Servlet 會產生以下結果:

HTTP Header 請求實例

 

Header 名稱

Header 值

accept

*/*

accept-language

en-us

user-agent

Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; InfoPath.2; MS-RTC LM 8)

accept-encoding

gzip, deflate

host

localhost:8080

connection

Keep-Alive

cache-control

no-cache

全部教程
主站蜘蛛池模板: 女人牲交视频一级毛片 | 久久99一区 | 日本有色视频 | 国产一在线精品一区在线观看 | 精品国产欧美一区二区最新 | 日韩有码在线视频 | 国产成人精品一区二区免费视频 | 色综合色狠狠天天综合色hd | 久久精品伊人波多野结 | 97国内精品久久久久久久影视 | 欧美综合另类 | 亚洲欧美日韩中文字幕在线一区 | 四虎影永久在线高清免费 | 日本不卡视频在线视频观看 | 国产精品呦呦 | 亚洲国产欧美精品 | 久久大伊人 | www.国产在线观看 | 羞羞的视频在线观看 | 五月天激情在线 | 一级爱爱片一级毛片-一毛 一级白嫩美女毛片免费 | 色狠狠婷婷97| 国产精品无码久久av | 亚洲欧美日韩激情在线观看 | 阿v视频在线观看免费播放 阿v天堂2017 | 欧美日韩综合 | 亚洲日本va中文字幕 | 成人性色生活片免费看爆迷你毛片 | 美国一级毛片免费看成人 | 亚洲欧洲精品视频 | 国产成人a毛片在线 | 一区二区三区四区国产精品 | 亚洲欧洲国产精品你懂的 | 欧美精品一区二区精品久久 | 成人影院在线观看视频 | 亚洲黄色免费看 | 美女被爆羞羞网站 | 国产精品成人四虎免费视频 | 亚洲成人91 | 中国一级毛片欧美一级毛片 | 国内精品免费久久久久妲己 |