程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> JSP編程 >> 關於JSP >> 在Servlet中使用請求頭(Request Header)

在Servlet中使用請求頭(Request Header)

編輯:關於JSP

來源:LoveJSP.site
Request Header簡介
當一個客戶端(通常是浏覽器)向Web服務器發送一個請求是,它要發送一個請求的命令行,一般是GET或POST命令,當發送POST命令時,它還必須向服務器發送一個叫“Content-Length”的請求頭(Request Header) 用以指明請求數據的長度,除了Content-Length之外,它還可以向服務器發送其它一些Headers,如:

Accept 浏覽器可接受的MIME類型
Accept-Charset 浏覽器支持的字符編碼
Accept-Encoding 浏覽器知道如何解碼的數據編碼類型(如 gzip)。Servlets 可以預先檢查浏覽器是否支持gzip並可以對支持gzip的浏覽器返回gzipped的HTML頁面,並設置Content-Encoding回應頭(response header)來指出發送的內容是已經gzipped的。在大多數情況下,這樣做可以加快網頁下載的速度。
Accept-Language 浏覽器指定的語言,當Server支持多語種時起作用。
Authorization 認證信息,一般是對服務器發出的WWW-Authenticate頭的回應。
Connection 是否使用持續連接。如果servlet發現這個字段的值是Keep-Alive,或者由發出請求的命令行發現浏覽器支持 HTTP 1.1 (持續連接是它的默認選項),使用持續連接可以使保護很多小文件的頁面的下載時間減少。
Content-Length (使用POST方法提交時,傳遞數據的字節數)
Cookie (很重要的一個Header,用來進行和Cookie有關的操作,詳細的信息將在後面的教程中介紹)
Host (主機和端口)
If-Modified-Since (只返回比指定日期新的文檔,如果沒有,將會反回304 "Not Modified")
Referer (URL)
User-Agent (客戶端的類型,一般用來區分不同的浏覽器)
如果你想更多的了解Request Header的內容,你可以訪問W3C的網站。

在Servlet中讀取Request Header的內容

在Servlet中讀取Request Header的值是很簡單的,只要調用HttpServletRequest的getHeader方法就可以了,當你指定要返回的Header的名稱,該方法就會返回String類型的Header的內容,如果指定的Header不存在,就返回null。調用getHeaderNames可以返回包含所有Header名字的Enumeration.

讀取所有Request Header值的Servlet程序

下面是Tomcat中所帶的Servlet例子中關於Request Header的例子,下載該程序。

import java.io.*;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class RequestHeaderExample extends HttpServlet {

public void doGet(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException
{
response.setContentType("text/html");
PrintWriter out = response.getWriter();
Enumeration e = request.getHeaderNames();
while (e.hasMoreElements()) {
String name = (String)e.nextElement();
String value = request.getHeader(name);
out.println(name + " = " + value);
}
}
}


  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved