新聞中心
當(dāng)瀏覽器請(qǐng)求一個(gè)網(wǎng)頁(yè)時(shí),它會(huì)向網(wǎng)絡(luò)服務(wù)器發(fā)送一系列不能被直接讀取的信息,因?yàn)檫@些信息是作為HTTP信息頭的一部分來(lái)傳送的。您可以查閱HTTP協(xié)議來(lái)獲得更多的信息。

成都創(chuàng)新互聯(lián)專業(yè)為企業(yè)提供溫縣網(wǎng)站建設(shè)、溫縣做網(wǎng)站、溫縣網(wǎng)站設(shè)計(jì)、溫縣網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁(yè)設(shè)計(jì)與制作、溫縣企業(yè)網(wǎng)站模板建站服務(wù),十年溫縣做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價(jià)值的思路和整體網(wǎng)絡(luò)服務(wù)。
下表列出了瀏覽器端信息頭的一些重要內(nèi)容,在以后的網(wǎng)絡(luò)編程中將會(huì)經(jīng)常見(jiàn)到這些信息:
| 信息 | 描述 |
|---|---|
| Accept | 指定瀏覽器或其他客戶端可以處理的MIME類型。它的值通常為 image/png 或 image/jpeg |
| Accept-Charset | 指定瀏覽器要使用的字符集。比如 ISO-8859-1 |
| Accept-Encoding | 指定編碼類型。它的值通常為 gzip 或compress |
| Accept-Language | 指定客戶端首選語(yǔ)言,servlet會(huì)優(yōu)先返回以當(dāng)前語(yǔ)言構(gòu)成的結(jié)果集,如果servlet支持這種語(yǔ)言的話。比如 en,en-us,ru等等 |
| Authorization | 在訪問(wèn)受密碼保護(hù)的網(wǎng)頁(yè)時(shí)識(shí)別不同的用戶 |
| Connection | 表明客戶端是否可以處理HTTP持久連接。持久連接允許客戶端或?yàn)g覽器在一個(gè)請(qǐng)求中獲取多個(gè)文件。Keep-Alive 表示啟用持久連接 |
| Content-Length | 僅適用于POST請(qǐng)求,表示 POST 數(shù)據(jù)的字節(jié)數(shù) |
| Cookie | 返回先前發(fā)送給瀏覽器的cookies至服務(wù)器 |
| Host | 指出原始URL中的主機(jī)名和端口號(hào) |
| If-Modified-Since | 表明只有當(dāng)網(wǎng)頁(yè)在指定的日期被修改后客戶端才需要這個(gè)網(wǎng)頁(yè)。 服務(wù)器發(fā)送304碼給客戶端,表示沒(méi)有更新的資源 |
| If-Unmodified-Since | 與If-Modified-Since相反, 只有文檔在指定日期后仍未被修改過(guò),操作才會(huì)成功 |
| Referer | 標(biāo)志著所引用頁(yè)面的URL。比如,如果你在頁(yè)面1,然后點(diǎn)了個(gè)鏈接至頁(yè)面2,那么頁(yè)面1的URL就會(huì)包含在瀏覽器請(qǐng)求頁(yè)面2的信息頭中 |
| User-Agent | 用來(lái)區(qū)分不同瀏覽器或客戶端發(fā)送的請(qǐng)求,并對(duì)不同類型的瀏覽器返回不同的內(nèi)容 |
HttpServletRequest類
request對(duì)象是javax.servlet.http.HttpServletRequest類的實(shí)例。每當(dāng)客戶端請(qǐng)求一個(gè)頁(yè)面時(shí),JSP引擎就會(huì)產(chǎn)生一個(gè)新的對(duì)象來(lái)代表這個(gè)請(qǐng)求。
request對(duì)象提供了一系列方法來(lái)獲取HTTP信息頭,包括表單數(shù)據(jù),cookies,HTTP方法等等。
接下來(lái)將會(huì)介紹一些在JSP編程中常用的獲取HTTP信息頭的方法。詳細(xì)內(nèi)容請(qǐng)見(jiàn)下表:
| 序號(hào) | 方法& 描述 |
|---|---|
| 1 | Cookie[] getCookies() 返回客戶端所有的Cookie的數(shù)組 |
| 2 | Enumeration getAttributeNames() 返回request對(duì)象的所有屬性名稱的集合 |
| 3 | Enumeration getHeaderNames() 返回所有HTTP頭的名稱集合 |
| 4 | Enumeration getParameterNames() 返回請(qǐng)求中所有參數(shù)的集合 |
| 5 | HttpSession getSession() 返回request對(duì)應(yīng)的session對(duì)象,如果沒(méi)有,則創(chuàng)建一個(gè) |
| 6 | HttpSession getSession(boolean create) 返回request對(duì)應(yīng)的session對(duì)象,如果沒(méi)有并且參數(shù)create為true,則返回一個(gè)新的session對(duì)象 |
| 7 | Locale getLocale() 返回當(dāng)前頁(yè)的Locale對(duì)象,可以在response中設(shè)置 |
| 8 | Object getAttribute(String name) 返回名稱為name的屬性值,如果不存在則返回null。 |
| 9 | ServletInputStream getInputStream() 返回請(qǐng)求的輸入流 |
| 10 | String getAuthType() 返回認(rèn)證方案的名稱,用來(lái)保護(hù)servlet,比如 "BASIC" 或者 "SSL" 或 null 如果 JSP沒(méi)設(shè)置保護(hù)措施 |
| 11 | String getCharacterEncoding() 返回request的字符編碼集名稱 |
| 12 | String getContentType() 返回request主體的MIME類型,若未知?jiǎng)t返回null |
| 13 | String getContextPath() 返回request URI中指明的上下文路徑 |
| 14 | String getHeader(String name) 返回name指定的信息頭 |
| 15 | String getMethod() 返回此request中的HTTP方法,比如 GET,,POST,或PUT |
| 16 | String getParameter(String name) 返回此request中name指定的參數(shù),若不存在則返回null |
| 17 | String getPathInfo() 返回任何額外的與此request URL相關(guān)的路徑 |
| 18 | String getProtocol() 返回此request所使用的協(xié)議名和版本 |
| 19 | String getQueryString() 返回此 request URL包含的查詢字符串 |
| 20 | String getRemoteAddr() 返回客戶端的IP地址 |
| 21 | String getRemoteHost() 返回客戶端的完整名稱 |
| 22 | String getRemoteUser() 返回客戶端通過(guò)登錄認(rèn)證的用戶,若用戶未認(rèn)證則返回null |
| 23 | String getRequestURI() 返回request的URI |
| 24 | String getRequestedSessionId() 返回request指定的session ID |
| 25 | String getServletPath() 返回所請(qǐng)求的servlet路徑 |
| 26 | String[] getParameterValues(String name) 返回指定名稱的參數(shù)的所有值,若不存在則返回null |
| 27 | boolean isSecure() 返回request是否使用了加密通道,比如HTTPS |
| 28 | int getContentLength() 返回request主體所包含的字節(jié)數(shù),若未知的返回-1 |
| 29 | int getIntHeader(String name) 返回指定名稱的request信息頭的值 |
| 30 | int getServerPort() 返回服務(wù)器端口號(hào) |
HTTP信息頭示例
在這個(gè)例子中,我們會(huì)使用HttpServletRequest類的getHeaderNames()方法來(lái)讀取HTTP信息頭。這個(gè)方法以枚舉的形式返回當(dāng)前HTTP請(qǐng)求的頭信息。
獲取Enumeration對(duì)象后,用標(biāo)準(zhǔn)的方式來(lái)遍歷Enumeration對(duì)象,用hasMoreElements()方法來(lái)確定什么時(shí)候停止,用nextElement()方法來(lái)獲得每個(gè)參數(shù)的名字。
<%@ page import="java.io.*,java.util.*" %>
HTTP Header Request Example
HTTP Header Request Example
Header Name Header Value(s)
<% Enumeration headerNames = request.getHeaderNames(); while(headerNames.hasMoreElements()) { String paramName = (String)headerNames.nextElement(); out.print("" + paramName + " \n");
String paramValue = request.getHeader(paramName);
out.println(" " + paramValue + " \n");
}
%>
訪問(wèn)main.jsp,將會(huì)得到以下結(jié)果:
HTTP Header Request Example
| Header Name | Header Value(s) |
|---|---|
| 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 |
您可以在上面代碼中嘗試HttpServletRequest類的其它方法。
本文題目:創(chuàng)新互聯(lián)jSP教程:JSP客戶端請(qǐng)求
URL標(biāo)題:http://m.fisionsoft.com.cn/article/cccgjoh.html


咨詢
建站咨詢
