Latest web development tutorials

การร้องขอของลูกค้า 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 ในรหัสดังกล่าวข้างต้น