โปรแกรม Servlet ใน Java: บทช่วยสอน Servlet สำหรับผู้เริ่มต้น [2022]
เผยแพร่แล้ว: 2021-01-02สารบัญ
Java Servlet
เป็นคลาสภาษาการเขียนโปรแกรม Java โปรแกรม Servlet ใน Java ทำงานบนเว็บแอปพลิเคชันหรือเซิร์ฟเวอร์ที่เปิดใช้งาน Java และใช้เพื่อจัดการคำขอที่ได้รับจากเว็บเซิร์ฟเวอร์ ประมวลผลและสร้างการตอบสนองต่อคำขอ แล้วส่งการตอบกลับกลับไปยังเว็บเซิร์ฟเวอร์
เซิร์ฟเล็ตเหล่านี้ทำงานบนฝั่งเซิร์ฟเวอร์ มันถูกใช้เพื่อขยายความสามารถของเซิร์ฟเวอร์เพื่อโฮสต์แอปพลิเคชันเพื่อโฮสต์โมเดลการตอบสนองต่อคำขอในการเขียนโปรแกรม สามารถจัดการคำขอประเภทใดก็ได้และสามารถจัดการคำขอที่ซับซ้อนได้อย่างมีประสิทธิภาพ
อ่าน: คำถามและคำตอบสัมภาษณ์ Java
โปรแกรม Servlet ที่ใช้ Java ไม่ได้อาศัยแพลตฟอร์ม มันสร้างกระบวนการขึ้นอยู่กับประเภทของคำขอของลูกค้าที่ได้รับ มันทำงานบน JVM ( Java Virtual Machine ) โปรแกรม Java Servlet สอดคล้องกับ Java Bytecode Java Servlet สามารถต้านทานการโจมตีได้ ข้อดีอื่นๆ ได้แก่ ความเร็วที่เร็วขึ้น พกพาสะดวก และประสิทธิภาพ
มันแปลและคอมไพล์สคริปต์ก่อนประมวลผล Java Servlet ช่วยให้สามารถแบ่งปันข้อมูลได้ สามารถสื่อสารกับเว็บเซิร์ฟเวอร์และจัดการคุกกี้ได้โดยตรง มีราคาถูกกว่าวิธีอื่นๆ เช่น CGI ( Common Gateway Interface )
สถาปัตยกรรม Java Servlet
สถาปัตยกรรม Java Servlet ประกอบด้วยอินเทอร์เฟซการสื่อสาร ข้อกำหนดของไคลเอ็นต์และเซิร์ฟเวอร์ โปรโตคอลที่ใช้ และภาษาการเขียนโปรแกรมและซอฟต์แวร์ที่เกี่ยวข้อง

เซิร์ฟเล็ต Java อ่านข้อมูลที่ได้รับจากเบราว์เซอร์ไคลเอ็นต์ที่สามารถอยู่ในรูปแบบใดก็ได้ เช่น HTML (Hypertext Markup Language) โปรแกรม HTTP แบบกำหนดเอง (Hypertext Transfer Protocol) แอปเพล็ตหรือข้อมูลคำขอ HTTP โดยนัย จากนั้นจะประมวลผลข้อมูลที่ได้รับโดยการสื่อสารไปยังฐานข้อมูลที่มีอยู่และดำเนินการตามขั้นตอนอื่นๆ ก่อนสร้างผลลัพธ์
ผลลัพธ์นี้ (ข้อมูลหรือเอกสาร) จะถูกส่งไปยังไคลเอ็นต์ในรูปแบบต่างๆ เช่น ข้อความ (HTML หรือ XML (Extensible Markup Language)) รูปภาพ (ไบนารี) ในท้ายที่สุด จะส่งการตอบสนอง HTTP โดยนัยไปยังไคลเอนต์เพื่อแจ้งประเภทเอกสารที่ส่งคืน
ขั้นตอนของวัฏจักรชีวิตของ Java Servlet
Java Servlet มีวงจรชีวิตสี่ขั้นตอน ซึ่งรวมถึงการโหลด Servlet การเริ่มต้น Servlet การจัดการคำขอ และการทำลาย Servlet คอนเทนเนอร์ Servlet ปรับใช้และโหลดเซิร์ฟเล็ตที่ได้รับทั้งหมดเมื่อเว็บเซิร์ฟเวอร์เริ่มทำงาน
มันเริ่มต้นเซิร์ฟเล็ตโดยการเรียกเมธอดของ int( ) อินสแตนซ์ Servlet ประสบความสำเร็จในการสร้างอินสแตนซ์และบ่งชี้บริการโดยเรียกใช้ เมธอด Servlet.init() คำขอของลูกค้าถูกประมวลผลโดย Servlet โดยใช้วิธี service () คำขอของไคลเอ็นต์ได้รับการแจ้งไปยัง Servlet โดยใช้วิธีนี้
สุดท้าย Servlet ที่สร้างขึ้นนี้จะถูกยกเลิกโดยเรียก destroy() เป็นสัญญาณของการสิ้นสุดของอินสแตนซ์ Servlet int() และ destroy() วิธีการถูกเรียกครั้งเดียวในช่วงอายุของ Java Servlet สุดท้าย ตัวรวบรวมขยะ JVM จะรวบรวมขยะของเซิร์ฟเล็ต และสรุปวงจรชีวิตของเซิร์ฟเล็ต
อ่านเพิ่มเติม: อธิบายสถาปัตยกรรมและส่วนประกอบ Java
ขั้นตอนการดำเนินการของ Java Servlets
Servlets ดำเนินการโดยใช้ขั้นตอนพื้นฐาน 6 ขั้นตอนดังที่ระบุด้านล่าง:
- ลูกค้าส่งคำขอไปยังเว็บแอปพลิเคชัน/เซิร์ฟเวอร์
- เว็บแอปพลิเคชัน/เซิร์ฟเวอร์ได้รับคำขอ
- เว็บแอปพลิเคชัน/เซิร์ฟเวอร์ส่งคำขอไปยังเซิร์ฟเล็ตที่เหมาะสม
- เซิร์ฟเล็ตประมวลผลคำขอผ่านวงจรชีวิตและสร้างการตอบสนองเป็นเอาต์พุต
- เซิร์ฟเล็ตส่งการตอบกลับกลับไปยังเว็บแอปพลิเคชัน/เซิร์ฟเวอร์
- สุดท้ายนี้ เว็บแอปพลิเคชัน/เซิร์ฟเวอร์จะส่งคำขอนี้กลับไปยังไคลเอ็นต์ และเบราว์เซอร์ของไคลเอ็นต์จะแสดงคำขอนี้บนหน้าเว็บ
ลงทะเบียนเรียน หลักสูตรการพัฒนาซอฟต์แวร์ออนไลน์ จากมหาวิทยาลัยชั้นนำของโลก รับโปรแกรม PG สำหรับผู้บริหาร โปรแกรมประกาศนียบัตรขั้นสูง หรือโปรแกรมปริญญาโท เพื่อติดตามอาชีพของคุณอย่างรวดเร็ว
Java Servlet คลาสและอินเทอร์เฟซ
แม้ว่า Java Servlet สามารถสร้างหน้าเว็บแบบไดนามิกได้ แต่สิ่งอำนวยความสะดวกนี้จัดเตรียมให้กับหน้าเว็บโดยคอนเทนเนอร์หรือเว็บเซิร์ฟเวอร์ ผู้ให้บริการเว็บเซิร์ฟเวอร์อิสระเสนอโซลูชันที่เป็นกรรมสิทธิ์เช่น API (Application Programming Interface) เพื่อให้เป็นไปตามข้อกำหนดนี้

การใช้ API เหล่านี้ทำให้สามารถสร้างและเรียกใช้โปรแกรมด้วยเว็บเซิร์ฟเวอร์ได้ Java Servlet คือ Java Platform Enterprise Edition ซึ่งเป็นหนึ่งในส่วนประกอบ API ที่กำหนดมาตรฐานในเว็บแอปพลิเคชันแบบไดนามิกที่สร้างใน Java
Java Servlet API มีแพ็คเกจที่สำคัญสองแพ็คเกจเพื่อสรุปอินเตอร์เฟสและคลาสที่สำคัญทั้งหมดดังที่ระบุด้านล่าง:

- javax.servlet (พื้นฐาน)
- Javax.servlet.http (ขั้นสูง)
ตารางด้านล่างประกอบด้วยคลาสและอินเทอร์เฟซที่สำคัญบางประการของ Java Servlet
เซิร์ฟเล็ต | พิมพ์ | บรรจุุภัณฑ์ | ประกาศวิธี LifeCycle ของเซิร์ฟเล็ต |
ServletConfig | อินเตอร์เฟซ | javax.servlet | อนุญาตให้เซิร์ฟเล็ตสำหรับวิธีการเริ่มต้น |
ServletContext | ระดับ | javax.servlet | มันเปิดใช้งานเซิร์ฟเล็ตสำหรับการบันทึกการเข้าถึงและข้อมูลการเข้าถึง |
ServletRequest | อินเตอร์เฟซ | javax.servlet | ใช้สำหรับอ่านข้อมูลจากคำขอของลูกค้า |
ServletResponse | อินเตอร์เฟซ | javax.servlet | ใช้สำหรับเขียนข้อมูลตอบลูกค้า |
เซิร์ฟเล็ตทั่วไป | ระดับ | javax.servlet | มันใช้ Servlet และ Servlet.config Interface |
ServletInputStream | ระดับ | javax.servlet | ให้สตรีมอินพุตเพื่ออ่านคำขอที่ได้รับจากลูกค้า |
ServletOutputStream | ระดับ | javax.servlet | ให้กระแสข้อมูลขาออกเพื่อเขียนการตอบกลับไปยังไคลเอนต์ |
ServletException | ระดับ | javax.servlet | ข้อบ่งชี้ความไม่พร้อมใช้งานของ servlet |
HttpServlet | อินเตอร์เฟซ | javax.servlet.http | วิธีการจัดการคำขอ HTTP & การตอบสนอง |
Servlet คอนเทนเนอร์
เป็นชุดรวมของอ็อบเจ็กต์ที่จัดเตรียมสภาวะแวดล้อมรันไทม์ให้กับคอมโพเนนต์ Java Servlet ให้บริการต่างๆ เช่น ข้อความบนเครือข่าย การถอดรหัสและการเข้ารหัส MIME ( ส่วนขยายจดหมายทางอินเทอร์เน็ตอเนกประสงค์ ) การจัดการคอนเทนเนอร์ Servlet การจัดการทรัพยากรและเซสชัน และบริการรักษาความปลอดภัย
ต้องอ่าน: โครงการและหัวข้อ Java ที่น่าสนใจ
บทสรุป
ดังนั้น Java Servlets จึงถูกใช้เพื่อให้ได้หน้าเว็บแบบไดนามิกพร้อมกับความเร็วและความยืดหยุ่นที่เพิ่มขึ้นในขณะที่ประมวลผลคำขอของไคลเอ็นต์บนเว็บเซิร์ฟเวอร์
หากคุณสนใจที่จะเรียนรู้เพิ่มเติมเกี่ยวกับ Java, OOP และการพัฒนาซอฟต์แวร์ฟูลสแตก โปรดดูโปรแกรม Executive PG ของ upGrad & IIIT-B ในการพัฒนาซอฟต์แวร์ฟูลสแตก ซึ่งออกแบบมาสำหรับมืออาชีพที่ทำงานและมีการฝึกอบรมที่เข้มงวดมากกว่า 500 ชั่วโมง 9+ โครงการและการมอบหมาย สถานะศิษย์เก่า IIIT-B โครงการหลักในทางปฏิบัติและความช่วยเหลือด้านงานกับ บริษัท ชั้นนำ
จาวาคืออะไร?
Java เป็นภาษาโปรแกรมเป็นภาษาโปรแกรมคอมพิวเตอร์ทั่วไปที่มีลักษณะพร้อมกันตามคลาสและเชิงวัตถุ เป้าหมายของการพัฒนาภาษา Java คือการลดข้อจำกัดในการใช้งานให้เหลือน้อยที่สุด แนวคิด Write Once, Run Anywhere (WORA) ควบคุมภาษาการเขียนโปรแกรม Java ซึ่งหมายความว่าเมื่อสร้างโค้ดแล้ว จะสามารถเรียกใช้โค้ดนั้นบนแพลตฟอร์มที่เข้ากันได้กับ Java โดยไม่ต้องเขียนใหม่ Java เป็นภาษาการเขียนโปรแกรมแบบสแตติกที่ใช้สำหรับการพัฒนาเว็บ แอปพลิเคชันระดับองค์กร การพัฒนา Android และ Internet of Things (IoT)
อะไรคือข้อดีของ Java Servlet เหนืออินเทอร์เฟซเกตเวย์ทั่วไป?
เมื่อเปรียบเทียบกับ Common Gateway Interface แล้ว Java Servlets มีข้อดีที่สำคัญ (CGI) ข้อได้เปรียบแรกและสำคัญที่สุดของ Servlet เหนือ CGI คือ Servlet มีประสิทธิภาพที่ดีกว่า CGI มาก ต่างจาก CGI ตรงที่ ไม่จำเป็นต้องสร้างกระบวนการที่แตกต่างกันสำหรับคำขอของลูกค้าแต่ละราย Servlets ดำเนินการภายในพื้นที่ที่อยู่ของเว็บเซิร์ฟเวอร์เท่านั้น เนื่องจาก Servlets ถูกสร้างขึ้นใน Java จึงเป็นแพลตฟอร์มอิสระ ตัวจัดการความปลอดภัย Java บนเซิร์ฟเวอร์กำหนดชุดของข้อจำกัดเพื่อปกป้องทรัพยากรของเซิร์ฟเวอร์ ด้วยเหตุนี้ เซิร์ฟเล็ตจึงเชื่อถือได้ เซิร์ฟเล็ตสามารถเข้าถึงความสามารถทั้งหมดของไลบรารีคลาส Java ในขณะที่ CGI ไม่สามารถเข้าถึงไลบรารีทั้งหมดได้
กรณีการใช้งานจริงของ Servlets คืออะไร?
เซิร์ฟเล็ตส่วนใหญ่จะใช้ใน HTML และ HTTP ใช้เพื่ออ่านข้อมูลที่ส่งโดยเบราว์เซอร์อย่างชัดเจน ซึ่งอาจอยู่ในรูปแบบของรูปแบบ HTML บนเว็บเพจ แอปพลิเคชัน หรือซอฟต์แวร์ไคลเอ็นต์ HTTP ที่ปรับแต่งได้ พวกเขายังสามารถเข้าถึงข้อมูลคำขอ HTTP โดยนัยของเบราว์เซอร์ได้ ประกอบด้วยคุกกี้ ชนิดสื่อ และอัลกอริธึมการบีบอัดที่เบราว์เซอร์รองรับ และอื่นๆ พวกเขาเป็นผู้ที่ประมวลผลข้อมูลและค้นพบสิ่งที่ค้นพบ การพูดคุยกับฐานข้อมูล การเรียก RMI หรือ CORBA การติดต่อบริการบนเว็บ หรือการคำนวณการตอบสนองโดยตรงอาจมีความจำเป็นในขั้นตอนนี้ นอกจากนี้ยังใช้เพื่อส่งข้อมูลที่ชัดเจนไปยังเบราว์เซอร์ เช่น เอกสาร เอกสารนี้อาจจัดส่งได้หลายรูปแบบ รวมทั้งข้อความ เลขฐานสอง รูปภาพ Excel และอื่นๆ