การร้องขอของลูกค้า JSP
เมื่อเบราว์เซอร์ร้องขอหน้าก็จะส่งชุดของข้อมูลที่ไม่สามารถอ่านได้โดยตรงไปยังเว็บเซิร์ฟเวอร์เพราะข้อมูลเหล่านี้เป็นส่วนหนึ่งของข้อมูลส่วนหัวของ HTTP ที่จะส่ง คุณสามารถตรวจสอบโปรโตคอล HTTP ที่จะได้รับข้อมูลเพิ่มเติม
ตารางต่อไปนี้แสดงบางส่วนของเนื้อหาสำคัญของส่วนหัวของเบราว์เซอร์หลังจากเขียนโปรแกรมเครือข่ายคุณมักจะเห็นข้อมูลนี้:
ข้อมูล | ลักษณะ |
---|---|
ยอมรับ | ระบุชนิด MIME ของเบราว์เซอร์หรือโปรแกรมอื่น ๆ สามารถจัดการ ค่าของมันมักจะ image / png หรือ image / jpeg |
ยอมรับรหัสตัวอักษร | ระบุตัวอักษรที่กำหนดให้ใช้เบราว์เซอร์ ยกตัวอย่างเช่น ISO-8859-1 |
ยอมรับการเข้ารหัส | ระบุชนิดของการเข้ารหัส ค่าของมันมักจะ gzip หรือบีบอัด |
ยอมรับภาษา | ระบุภาษาที่ต้องการของลูกค้าเซิร์ฟเล็ตจะให้ความสำคัญกับการกลับชุดผลให้ภาษาปัจจุบันของรัฐธรรมนูญถ้าเซิร์ฟเล็ตสนับสนุนคำพูดภาษานี้ ยกตัวอย่างเช่นในตัว, en-US, RU ฯลฯ |
การอนุญาต | ระบุการเข้าถึงผู้ใช้งานที่แตกต่างกันในการป้องกันด้วยรหัสผ่านหน้าเว็บ |
สัมพันธ์ | มันแสดงให้เห็นว่าลูกค้าสามารถจัดการ HTTP เชื่อมต่อแบบถาวร การเชื่อมต่อแบบต่อเนื่องจะช่วยให้ลูกค้าหรือเบราว์เซอร์เรียกหลายไฟล์ในคำขอเดียว Keep-Alive บ่งชี้เปิดใช้งานการเชื่อมต่อแบบถาวร |
ความยาวของเนื้อหา | เพียงสำหรับการร้องขอ POST จำนวนไบต์ของโพสต์ข้อมูล |
คุกกี้ | ส่งกลับส่งไปยังคุกกี้เบราว์เซอร์ไปยังเซิร์ฟเวอร์ |
เจ้าภาพ | ชี้ให้เห็นว่า URL เดิมของชื่อโฮสต์และหมายเลขพอร์ต |
If-Modified-ตั้งแต่ | แสดงเฉพาะเมื่อเพจมีการปรับเปลี่ยนในไคลเอนต์วันที่ที่ระบุเพียงความต้องการที่เว็บไซต์นี้ เซิร์ฟเวอร์จะส่ง 304 หลาให้กับลูกค้าที่ไม่มีทรัพยากรที่อัปเดต |
หากยังไม่แปร--ตั้งแต่ | และถ้า-Modified-Since ตรงกันข้ามเพียงเอกสารที่ยังไม่ได้รับการแก้ไขหลังจากวันที่ที่ระบุการดำเนินการที่จะประสบความสำเร็จ |
อ้างอิง | URL ของหน้าเว็บการทำเครื่องหมายโดยการอ้างอิง ตัวอย่างเช่นถ้าคุณอยู่ในหน้า 1 แล้วเชื่อมโยงไปยังหน้า 2 จากนั้นหน้า URL ที่ 1 จะรวมอยู่ในเบราว์เซอร์ร้องขอส่วนหัวของหน้า 2 |
ตัวแทนผู้ใช้ | มันใช้ในการแยกแยะความแตกต่างระหว่างเบราว์เซอร์ที่แตกต่างกันหรือการร้องขอที่ส่งมาจากลูกค้าและชนิดของเบราว์เซอร์ที่จะกลับเนื้อหาที่แตกต่าง |
ระดับ HttpServletRequest
javax.servlet.http.HttpServletRequest ขอวัตถุเป็นตัวอย่างของการเรียน เมื่อใดก็ตามที่ลูกค้าร้องขอหน้าเครื่องยนต์ JSP จะผลิตวัตถุใหม่เพื่อเป็นตัวแทนของการร้องขอ
ขอวัตถุมีชุดของวิธีการที่จะได้รับข้อมูลที่ส่วนหัวของ HTTP รวมทั้งข้อมูลในแบบฟอร์ม, คุกกี้, วิธี HTTP, และอื่น ๆ
ต่อไปจะแนะนำบางส่วนหัว HTTP GET ที่พบบ่อยใน JSP วิธีการเขียนโปรแกรม สำหรับรายละเอียดโปรดดูตารางด้านล่าง:
เลขที่ | วิธีการและคำอธิบาย |
---|---|
1 | คุกกี้ [] getCookies () ส่งกลับอาร์เรย์ทั้งหมดของคุกกี้ของลูกค้าด้วย |
2 | getAttributeNames การแจงนับ () ผลตอบแทนที่ได้คอลเลกชันของคุณสมบัติทั้งหมดของชื่อคำขอวัตถุ |
3 | getHeaderNames การแจงนับ () ผลตอบแทนที่ได้รวบรวมรายชื่อทั้งหมดของหัว HTTP ที่ |
4 | getParameterNames การแจงนับ () ผลตอบแทนที่ได้คอลเลกชันของพารามิเตอร์ทั้งหมดของคำขอ |
5 | HttpSession getSession () ผลตอบแทนที่ได้ขอวัตถุเซสชั่นที่สอดคล้องกันหากไม่ได้สร้าง |
6 | HttpSession getSession boolean (สร้าง) ผลตอบแทนที่ได้ขอวัตถุเซสชั่นที่สอดคล้องกันถ้าไม่มีพารามิเตอร์และสร้างเป็นความจริงส่งกลับวัตถุเซสชันใหม่ |
7 | getLocale Locale () ส่งคืนวัตถุ Locale หน้านี้อาจจะให้ในการตอบสนอง |
8 | วัตถุ getAttribute (ชื่อ String) ส่งกลับชื่อชื่อค่าแอตทริบิวต์และถ้าไม่มี null ผลตอบแทน |
9 | ServletInputStream getInputStream () ส่งคืนคำขอสตรีมใส่ |
10 | สตริง getAuthType () ผลตอบแทนที่ได้ชื่อของโครงการตรวจสอบที่ใช้ในการปกป้องเซิร์ฟเล็ตเช่น "พื้นฐาน" หรือ "SSL" หรือ NULL ถ้าไม่มีมาตรการป้องกัน JSP ไปที่ |
11 | สตริง getCharacterEncoding () ส่งคืนคำขอตัวอักษรชื่อชุดการเข้ารหัส |
12 | สตริง getContentType () ส่งกลับชนิด MIME ของการร้องขอหลักหรือ NULL ถ้าไม่เป็นที่รู้จัก |
13 | สตริง getContextPath () ส่งกลับเส้นทางบริบทที่ระบุไว้ในคำขอ URI |
14 | สตริง getHeader (ชื่อ String) ส่งกลับชื่อที่ระบุไว้ในส่วนหัวของข้อความ |
15 | สตริง GetMethod () วิธีการส่งกลับร้องขอ HTTP เช่น GET ,, POST หรือวาง |
16 | String getParameter (ชื่อ String) ส่งกลับชื่อร้องขอพารามิเตอร์ที่กำหนดไว้หรือ NULL ถ้าไม่ได้อยู่แล้ว |
17 | สตริง getPathInfo () ส่งกลับ URL เส้นทางพิเศษใด ๆ ที่เกี่ยวข้องกับคำขอนี้ |
18 | สตริง getProtocol () ผลตอบแทนที่ได้ชื่อและรุ่นของโปรโตคอลที่ใช้โดยคำขอนี้ |
19 | สตริง getQueryString () นี้จะส่งกลับ URL คำขอสตริงมี |
20 | สตริง getRemoteAddr () ส่งกลับที่อยู่ IP ของลูกค้า |
21 | สตริง getRemoteHost () กลับชื่อเต็มของลูกค้า |
22 | สตริง getRemoteUser () กลับไปยังลูกค้าผ่านการตรวจสอบผู้ใช้เข้าสู่ระบบหากผู้ใช้ไม่ได้รับรองความถูกต้องหรือ null |
23 | สตริง getRequestURI () ส่งคืนคำขอ URI |
24 | สตริง getRequestedSessionId () ส่งคืนคำขอ ID เซสชั่นที่ระบุ |
25 | สตริง getServletPath () เส้นทางกลับเซิร์ฟเล็ตร้องขอ |
26 | String [] getParameterValues (ชื่อ String) ส่งกลับพารามิเตอร์ระบุชื่อของค่าทั้งหมดหรือโมฆะถ้าไม่ได้อยู่แล้ว |
27 | บูลีน isSecure () ผลตอบแทนที่ได้ไม่ว่าจะเป็นคำขอเข้ารหัสช่องทางเช่น HTTPS |
28 | int getContentLength () ส่งกลับจำนวนไบต์ที่มีอยู่ในร่างกายคำขอหรือ -1 ถ้าไม่รู้จัก |
29 | int getIntHeader (ชื่อ String) ค่าส่งกลับระบุชื่อของส่วนหัวคำขอ |
30 | int getServerPort () ส่งกลับจำนวนพอร์ตของเซิร์ฟเวอร์ |
ตัวอย่างหัว HTTP
ในตัวอย่างนี้เราจะใช้ getHeaderNames HttpServletRequest ระดับ () วิธีการอ่านส่วนหัวของ HTTP วิธีการนี้จะส่งกลับการแจกแจงของข้อมูลส่วนหัวสำหรับการร้องขอ HTTP ปัจจุบัน
หลังจากได้รับวัตถุแจงนับเป็นวิธีมาตรฐานในการสำรวจการแจงนับวัตถุที่ hasMoreElements () วิธีการกำหนดเวลาที่จะหยุดการใช้ nextElement () วิธีการที่จะได้รับชื่อของแต่ละพารามิเตอร์
<%@ 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>本教程(w3big.com)</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>
การเข้าถึง main.jsp จะได้รับผลลัพธ์ที่ต่อไปนี้:
คุณสามารถลองวิธีการอื่น ๆ ของชั้น HttpServletRequest ในรหัสดังกล่าวข้างต้น