permintaan pelanggan JSP


Apabila penyemak imbas meminta halaman web, ia menghantar satu siri maklumat kepada pelayan rangkaian yang tidak boleh dibaca secara langsung kerana maklumat itu dihantar sebagai sebahagian daripada pengepala HTTP. Anda boleh merujuk protokol HTTP untuk mendapatkan maklumat lanjut.

Jadual berikut menyenaraikan beberapa kandungan penting pengepala maklumat sebelah penyemak imbas Anda akan sering melihat maklumat ini dalam pengaturcaraan rangkaian masa hadapan:

MaklumatPenerangan
Terima Menentukan jenis MIME yang boleh dikendalikan oleh penyemak imbas atau pelanggan lain. Nilainya biasanya imej/png atau imej/jpeg
Accept-Charset                 Menentukan set aksara untuk digunakan oleh penyemak imbas. Contohnya, ISO-8859-1
Terima-Pengekodan                 Nyatakan jenis pengekodan. Nilainya biasanya gzip atau compress
Terima-Bahasa                 Tentukan bahasa pilihan pelanggan Servlet akan memberi keutamaan untuk mengembalikan set hasil dalam bahasa semasa, jika servlet menyokong bahasa ini. Contohnya, en, en-us, ru, dsb.
Keizinan               Kenal pasti pengguna yang berbeza apabila mengakses halaman web yang dilindungi kata laluan
                       Sambungan                 Menunjukkan sama ada klien boleh mengendalikan sambungan berterusan HTTP. Sambungan berterusan membolehkan klien atau penyemak imbas mengambil berbilang fail dalam satu permintaan.Keep-Alive bermaksud mendayakan sambungan berterusan
Panjang Kandungan                 Hanya terpakai untuk permintaan POST, menunjukkan bilangan bait data POST
Kuki                 Kembalikan kuki yang dihantar sebelum ini ke penyemak imbas ke pelayan
Hos Nyatakan nama hos dan nombor port dalam URL asal
Jika-Diubahsuai-Sejak                 Menunjukkan bahawa pelanggan hanya memerlukan halaman web ini jika ia telah diubah suai pada tarikh yang ditetapkan. Pelayan menghantar kod 304 kepada pelanggan, menunjukkan bahawa tiada sumber yang dikemas kini
Jika-Tidak Diubah-Sejak                 Bertentangan dengan If-Modified-Since, operasi akan berjaya hanya jika dokumen tidak diubah suai selepas tarikh yang ditentukan
Perujuk               Menandai URL halaman yang dirujuk. Contohnya, jika anda berada di halaman 1 dan kemudian klik pada pautan ke halaman 2, maka URL halaman 1 akan disertakan dalam pengepala permintaan penyemak imbas untuk halaman 2
Ejen Pengguna                 Digunakan untuk membezakan permintaan yang dihantar oleh penyemak imbas atau pelanggan yang berbeza dan mengembalikan kandungan yang berbeza kepada jenis penyemak imbas yang berbeza

Kelas HttpServletRequest

objek permintaan ialah contoh kelas javax.servlet.http.HttpServletRequest. Setiap kali pelanggan meminta halaman, enjin JSP menjana objek baharu untuk mewakili permintaan tersebut.

Objek permintaan menyediakan satu siri kaedah untuk mendapatkan pengepala maklumat HTTP, termasuk data borang, kuki, kaedah HTTP, dsb.

Seterusnya, kami akan memperkenalkan beberapa kaedah yang biasa digunakan dalam pengaturcaraan JSP untuk mendapatkan pengepala maklumat HTTP. Sila lihat jadual di bawah untuk butiran:

Nombor siriKaedah& Penerangan
                       1Kuki[] getCookies()


Mengembalikan tatasusunan semua kuki pada klien
2Enumeration getAttributeNames()


Mengembalikan set semua nama atribut objek permintaan
3Enumeration getHeaderNames()


Mengembalikan set nama semua pengepala HTTP
4Enumeration getParameterNames()


Mengembalikan set semua parameter dalam permintaan
5HttpSession getSession()


Kembalikan objek sesi yang sepadan dengan permintaan Jika tidak, buat satu
6HttpSession getSession(cipta boolean)


Mengembalikan objek sesi yang sepadan dengan permintaan Jika tidak dan parameter ciptaan adalah benar, objek sesi baharu
dikembalikan. 7Locale getLocale()


Mengembalikan objek Tempatan halaman semasa, yang boleh ditetapkan sebagai respons
8Objek getAttribute(Nama rentetan)


Mengembalikan nilai atribut bernama nama, atau null jika ia tidak wujud.
9ServletInputStream getInputStream()


Mengembalikan strim input yang diminta
10String getAuthType()


Mengembalikan nama skim pengesahan yang digunakan untuk melindungi servlet, seperti "BASIC" atau "SSL" atau batal jika tiada langkah perlindungan ditetapkan untuk JSP
11String getCharacterEncoding()


Mengembalikan nama set pengekodan aksara permintaan
12String getContentType()


Mengembalikan jenis MIME badan permintaan, atau batal jika tidak diketahui
13String getContextPath()


Mengembalikan laluan konteks yang dinyatakan dalam permintaan URI
14String getHeader(String name)


Mengembalikan pengepala maklumat yang ditentukan mengikut nama
15String getMethod()


Kembalikan kaedah HTTP dalam permintaan ini, seperti GET, POST atau PUT
16String getParameter(String name)


Mengembalikan parameter yang dinyatakan mengikut nama dalam permintaan ini, atau batal jika ia tidak wujud
17String getPathInfo()


Mengembalikan sebarang laluan tambahan yang dikaitkan dengan URL permintaan ini
                  18String getProtocol()


Mengembalikan nama protokol dan versi yang digunakan oleh permintaan ini
19String getQueryString()


Mengembalikan rentetan pertanyaan
yang terkandung dalam URL permintaan ini 20String getRemoteAddr()


Mengembalikan alamat IP pelanggan
21String getRemoteHost()


Mengembalikan nama penuh pelanggan
22String getRemoteUser()


Mengembalikan pengguna yang telah lulus pengesahan log masuk pada klien Jika pengguna tidak disahkan, mengembalikan null
. 23String getRequestURI()


Kembalikan URI permintaan
24String getRequestedSessionId()


Mengembalikan ID sesi yang ditentukan mengikut permintaan
25String getServletPath()


Mengembalikan laluan servlet yang diminta
26String[] getParameterValues(Nama rentetan)


Mengembalikan semua nilai parameter dengan nama yang ditentukan, atau batal jika ia tidak wujud
27boolean isSecure()


Mengembalikan sama ada permintaan menggunakan saluran yang disulitkan, seperti HTTPS
28int getContentLength()


Mengembalikan bilangan bait yang terkandung dalam isi permintaan Jika tidak diketahui, mengembalikan -1
29int getIntHeader(Nama rentetan)


Mengembalikan nilai pengepala permintaan dengan nama yang ditentukan
30int getServerPort()


Kembalikan nombor port pelayan

Contoh pengepala HTTP

Dalam contoh ini, kami akan menggunakan kaedah getHeaderNames() kelas HttpServletRequest untuk membaca pengepala HTTP. Kaedah ini mengembalikan maklumat pengepala permintaan HTTP semasa dalam bentuk penghitungan.

Selepas mendapatkan objek Enumeration, gunakan kaedah standard untuk melintasi objek Enumeration, gunakan kaedah hasMoreElements() untuk menentukan masa untuk berhenti dan gunakan kaedah nextElement() untuk mendapatkan nama setiap parameter.

<%@ 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中文网(php.cn)</title>
</head>
<body>
<h2>HTTP 头部请求实例</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>

Akses main.jsp, anda akan mendapat keputusan berikut:

jspheadmsg.jpg

Anda boleh mencuba kaedah lain kelas HttpServletRequest dalam kod di atas.