亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

jsp在線參考手冊 / JSP 客戶端請求

JSP 客戶端請求

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

下表列出了瀏覽器端信息頭的一些重要內(nèi)容,在以后的網(wǎng)絡(luò)編程中將會經(jīng)常見到這些信息:

信息描述
                    Accept                    指定瀏覽器或其他客戶端可以處理的MIME類型。它的值通常為 image/png 或 image/jpeg
                    Accept-Charset                    指定瀏覽器要使用的字符集。比如 ISO-8859-1
                    Accept-Encoding                    指定編碼類型。它的值通常為 gzip 或compress
                    Accept-Language                    指定客戶端首選語言,servlet會優(yōu)先返回以當(dāng)前語言構(gòu)成的結(jié)果集,如果servlet支持這種語言的話。比如 en,en-us,ru等等
                    Authorization                    在訪問受密碼保護(hù)的網(wǎng)頁時(shí)識別不同的用戶
                    Connection                    表明客戶端是否可以處理HTTP持久連接。持久連接允許客戶端或?yàn)g覽器在一個(gè)請求中獲取多個(gè)文件。Keep-Alive 表示啟用持久連接
                    Content-Length                    僅適用于POST請求,表示 POST 數(shù)據(jù)的字節(jié)數(shù)
                    Cookie                    返回先前發(fā)送給瀏覽器的cookies至服務(wù)器
                    Host                    指出原始URL中的主機(jī)名和端口號
                    If-Modified-Since                    表明只有當(dāng)網(wǎng)頁在指定的日期被修改后客戶端才需要這個(gè)網(wǎng)頁。 服務(wù)器發(fā)送304碼給客戶端,表示沒有更新的資源
                    If-Unmodified-Since                    與If-Modified-Since相反, 只有文檔在指定日期后仍未被修改過,操作才會成功
                    Referer                    標(biāo)志著所引用頁面的URL。比如,如果你在頁面1,然后點(diǎn)了個(gè)鏈接至頁面2,那么頁面1的URL就會包含在瀏覽器請求頁面2的信息頭中
                    User-Agent                    用來區(qū)分不同瀏覽器或客戶端發(fā)送的請求,并對不同類型的瀏覽器返回不同的內(nèi)容

        HttpServletRequest類

request對象是javax.servlet.http.HttpServletRequest類的實(shí)例。每當(dāng)客戶端請求一個(gè)頁面時(shí),JSP引擎就會產(chǎn)生一個(gè)新的對象來代表這個(gè)請求。

request對象提供了一系列方法來獲取HTTP信息頭,包括表單數(shù)據(jù),cookies,HTTP方法等等。

接下來將會介紹一些在JSP編程中常用的獲取HTTP信息頭的方法。詳細(xì)內(nèi)容請見下表:

序號方法& 描述
                    1Cookie[] getCookies()


返回客戶端所有的Cookie的數(shù)組
                    2Enumeration getAttributeNames()


返回request對象的所有屬性名稱的集合
                    3Enumeration getHeaderNames()


返回所有HTTP頭的名稱集合
                    4Enumeration getParameterNames()


返回請求中所有參數(shù)的集合
                    5HttpSession getSession()


返回request對應(yīng)的session對象,如果沒有,則創(chuàng)建一個(gè)
                    6HttpSession getSession(boolean create)


返回request對應(yīng)的session對象,如果沒有并且參數(shù)create為true,則返回一個(gè)新的session對象
                    7Locale getLocale()


返回當(dāng)前頁的Locale對象,可以在response中設(shè)置
                    8Object getAttribute(String name)


返回名稱為name的屬性值,如果不存在則返回null。
                    9ServletInputStream getInputStream()


返回請求的輸入流
                    10String getAuthType()


返回認(rèn)證方案的名稱,用來保護(hù)servlet,比如 "BASIC" 或者 "SSL" 或 null 如果 JSP沒設(shè)置保護(hù)措施
                    11String getCharacterEncoding()


返回request的字符編碼集名稱
                    12String getContentType()


返回request主體的MIME類型,若未知則返回null
                    13String getContextPath()


返回request URI中指明的上下文路徑
                    14String getHeader(String name)


返回name指定的信息頭
                    15String getMethod()


返回此request中的HTTP方法,比如 GET,,POST,或PUT
                    16String getParameter(String name)


返回此request中name指定的參數(shù),若不存在則返回null
                    17String getPathInfo()


返回任何額外的與此request URL相關(guān)的路徑
                    18String getProtocol()


返回此request所使用的協(xié)議名和版本
                    19String getQueryString()


返回此 request URL包含的查詢字符串
                    20String getRemoteAddr()


返回客戶端的IP地址
                    21String getRemoteHost()


返回客戶端的完整名稱
                    22String getRemoteUser()


返回客戶端通過登錄認(rèn)證的用戶,若用戶未認(rèn)證則返回null
                    23String getRequestURI()


返回request的URI
                    24String getRequestedSessionId()


返回request指定的session ID
                    25String getServletPath()


返回所請求的servlet路徑
                    26String[] getParameterValues(String name)


返回指定名稱的參數(shù)的所有值,若不存在則返回null
                    27boolean isSecure()


返回request是否使用了加密通道,比如HTTPS
                    28int getContentLength()


返回request主體所包含的字節(jié)數(shù),若未知的返回-1
                    29int getIntHeader(String name)


返回指定名稱的request信息頭的值
                    30int getServerPort()


返回服務(wù)器端口號

        HTTP信息頭示例

在這個(gè)例子中,我們會使用HttpServletRequest類的getHeaderNames()方法來讀取HTTP信息頭。這個(gè)方法以枚舉的形式返回當(dāng)前HTTP請求的頭信息。

獲取Enumeration對象后,用標(biāo)準(zhǔn)的方式來遍歷Enumeration對象,用hasMoreElements()方法來確定什么時(shí)候停止,用nextElement()方法來獲得每個(gè)參數(shù)的名字。

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page import="java.io.*,java.util.*" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>php中文網(wǎng)(php.cn)</title>
</head>
<body>
<h2>HTTP 頭部請求實(shí)例</h2>
<table width="100%" border="1" align="center">
<tr bgcolor="#949494">
<th>Header Name</th><th>Header Value(s)</th>
</tr>
<%
   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");
   }
%>
</table>
</body>
</html>

訪問main.jsp,將會得到以下結(jié)果:

jspheadmsg.jpg

您可以在上面代碼中嘗試HttpServletRequest類的其它方法。