1. 程式人生 > >Request物件中getHeader、requestHeaders、request.getHeaderNames三者區別

Request物件中getHeader、requestHeaders、request.getHeaderNames三者區別

1.request.getHeader("Accept-Encoding");//獲取單個請求頭name對應的value值

2.request.getHeaders("Accept-Encoding");//獲取多個同名請求頭對應的一組value值,因此返回列舉型別資料

3.request.getHeaderNames();//獲取請求頭的所name值,返回的資料也是一個列舉型別的資料,將列舉中的元素依次遍歷出來,根據name獲取對應的value值,即可得到Http請求頭的所有資訊

示例程式碼如下:

package TwoDay.request;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.Enumeration;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/*
 * 獲取頭資訊和請求資料
 */
public class RequestDemo2 extends HttpServlet {

	
	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		/**
		 * 獲取頭資訊
		 */
		String headValue = request.getHeader("Accept-Encoding");//獲取單個請求頭name對應的value值
		System.out.println(headValue);
		
		System.out.println("--------------");
		
		Enumeration e =  request.getHeaders("Accept-Encoding");//獲取多個同名請求頭對應的一組value值,因此返回列舉型別資料
		/**
		 * 將資料遍歷出來
		 */
		while(e.hasMoreElements()){
		//遍歷列舉中儲存的每一個元素
		String value = (String)e.nextElement();
		System.out.println(value);//將值輸出
		}
		
		System.out.println("----------------");
		/**
		 * 獲取所有請求頭資訊
		 */
		Enumeration er = request.getHeaderNames();//獲取請求頭的所有name值
		while(er.hasMoreElements()){
		String name	=(String) er.nextElement();
		String value = request.getHeader(name);
		System.out.println(name+"="+value);
		}
	}

	
	public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {

		
	}

}

執行結果如下: