Java Servlet คืออะไร


277

ฉันอ่านบทความจำนวนมากเพื่อทำความเข้าใจกับ java servlet แต่ฉันไม่ประสบความสำเร็จ

คุณช่วยแนะนำสั้น ๆ เกี่ยวกับ java servlets (เป็นภาษาง่าย ๆ ) ได้ไหม เหมือน servlet คืออะไร? อะไรคือข้อได้เปรียบ และทั้งหมดนั้น

ฉันไม่เข้าใจความแตกต่างระหว่างภาษาการเขียนโปรแกรมฝั่งเซิร์ฟเวอร์ (PHP, ASP) และ servlets


38
วางservletsแท็กด้านล่างคำถามของคุณจนกว่ากล่องดำจะปรากฏขึ้น คลิกที่ลิงค์ข้อมูล
BalusC

1
Servletsคุณสามารถดูได้ ฉันคิดว่านี่เป็นรายละเอียดและเป็นของแท้
shohan

คำตอบ:


336

servlet เป็นคลาสที่ตอบสนองต่อคำขอเครือข่ายประเภทใดประเภทหนึ่งโดยทั่วไปมักจะเป็นคำขอ HTTP โดยทั่วไปแล้ว servlets มักจะใช้ในการใช้งานเว็บแอพพลิเคชั่น - แต่ยังมีเฟรมเวิร์กต่าง ๆ ที่ใช้งานบน servlets (เช่น Struts) เพื่อให้มีนามธรรมที่สูงกว่าระดับ "นี่คือคำร้องขอ HTTP ให้.

Servlets ทำงานในภาชนะ servletซึ่งจัดการด้านเครือข่าย (เช่นการแยกคำขอ HTTP การจัดการการเชื่อมต่อ ฯลฯ ) หนึ่งที่ดีที่สุดที่รู้จักกันมาเปิดภาชนะ servlet เป็นTomcat


16
Servlets เป็นตัวอย่างของรหัสจาวาที่เรียกโดยเว็บเซิร์ฟเวอร์ภายในเว็บเซิร์ฟเวอร์เอง หากคุณต้องการบางสิ่งที่ดูเหมือน PHP หรือ ASP คุณต้องมี JSP (ซึ่งเป็น servlets ชนิดพิเศษ)
Thorbjørn Ravn Andersen

3
ขอบคุณสำหรับคำตอบ แต่ฉันก็ยังไม่สามารถใช้ servlets ได้จริงมันจะดีกว่าถ้าคุณสามารถอธิบายได้ด้วยตัวอย่างเช่น sitution ที่เราสามารถใช้ servlets ได้ ฉันไม่เข้าใจการใช้ servlet เหมือนที่ servlet สามารถทำได้ที่ภาษาการเขียนโปรแกรมฝั่งเซิร์ฟเวอร์อื่นไม่สามารถทำได้
hardik

4
@ Hardik: ไม่ใช่ว่าพวกเขาสามารถทำอะไรที่ไม่สามารถทำได้อีกทาง Servlets เป็นเพียงเทคโนโลยีทั่วไปสำหรับการทำงาน Java ฝั่งเซิร์ฟเวอร์ Servlets ไม่ใช่ภาษาและไม่ใช่ ASPX ทั้งสองเป็นแพลตฟอร์มที่คุณใช้ร่วมกับภาษาอื่น - โดยปกติแล้ว Java ในกรณีของเซิร์ฟเล็ต
Jon Skeet

7
@Hardik: ตามที่ฉันเขียนในโพสต์ servlets เป็นคลาสที่ทำงานภายในคอนเทนเนอร์ servlet คอนเทนเนอร์เซิร์ฟเล็ตสามารถโฮสต์หลายเซิร์ฟเล็ตในเวลาเดียวกัน
Jon Skeet

5
@Hardik: ใช่แน่นอน เซิร์ฟเล็ตสามารถจัดเตรียม HTML เพื่อแสดงแบบฟอร์มและดำเนินการกับการส่ง Servlets ยังสามารถใช้เพื่อให้บริการเว็บ พวกเขาสามารถนำมาใช้สำหรับโปรโตคอลอื่น ๆ นอกเหนือจาก HTTP, HTTP แต่เป็นขาดลอยการขนส่งที่พบมากที่สุดจัดการโดย Servlets
Jon Skeet

102

servlet ที่สำคัญมากของมันคือคลาส Java; ซึ่งสามารถจัดการคำขอ HTTP โดยทั่วไปแล้ว nitty-gritty ภายในของการอ่านคำร้องขอ HTTP และการตอบสนองผ่านสายสัญญาณจะได้รับการดูแลโดยบรรจุภัณฑ์เช่น Tomcat สิ่งนี้ทำเพื่อให้เป็นนักพัฒนาฝั่งเซิร์ฟเวอร์คุณสามารถมุ่งเน้นว่าจะทำอย่างไรกับคำขอ HTTP และการตอบสนองและไม่ต้องกังวลเกี่ยวกับการจัดการกับรหัสที่เกี่ยวข้องกับระบบเครือข่าย ฯลฯ คอนเทนเนอร์จะดูแลสิ่งต่าง ๆ เช่นห่อสิ่งทั้งหมดใน วัตถุการตอบสนอง HTTP และส่งไปยังลูกค้า (พูดเบราว์เซอร์)

ตอนนี้คำถามเชิงตรรกะถัดไปที่ถามคือใครเป็นผู้ตัดสินใจว่าควรทำคอนเทนเนอร์แบบใด และคำตอบคือ; ในโลก Java อย่างน้อยมันมีคำแนะนำ (หมายเหตุฉันไม่ได้ใช้คำที่ควบคุม) ตามข้อกำหนด ตัวอย่างเช่นข้อกำหนดของเซิร์ฟเล็ต (ดูทรัพยากร 2) กำหนดสิ่งที่เซิร์ฟเล็ตต้องสามารถทำได้ ดังนั้นถ้าคุณสามารถเขียนการใช้งานสำหรับข้อกำหนดได้ขอแสดงความยินดีที่คุณเพิ่งสร้างคอนเทนเนอร์ (ในทางเทคนิคคอนเทนเนอร์เช่น Tomcat ยังใช้ข้อกำหนดอื่น ๆ

สมมติว่าคุณมีคอนเทนเนอร์แล้วเซิร์ฟเล็ตของคุณจะเป็นคลาส Java ซึ่งวงจรชีวิตจะได้รับการดูแลโดยคอนเทนเนอร์ แต่จะมีการตอบสนองต่อคำขอ HTTP ขาเข้าของคุณ คุณทำได้โดยการเขียนสิ่งที่คุณต้องการทำในวิธีที่กำหนดไว้ล่วงหน้าเช่น init (), doGet (), doPost () ฯลฯ ดูทรัพยากร 3

นี่คือการออกกำลังกายที่สนุกสำหรับคุณ สร้าง servlet อย่างง่ายเช่นเดียวกับใน Resource 3 และเขียนคำสั่ง System.out.println () สองสามคำในวิธี constructor (ใช่คุณสามารถมี constructor ของ servlet), init (), doGet (), doPost () และเรียกใช้เมธอด servlet ในคราว ดูบันทึกคอนโซลและบันทึก Tomcat

หวังว่านี้จะช่วยให้การเรียนรู้มีความสุข

ทรัพยากร

  1. ดูว่า HTTP servlet มีลักษณะอย่างไรที่นี่ (ตัวอย่าง Tomcat)

  2. servlet ข้อมูลจำเพาะ

  3. Servlet ง่ายตัวอย่างเช่น

  4. เริ่มอ่านหนังสือออนไลน์ / PDF นอกจากนี้ยังให้คุณดาวน์โหลดหนังสือทั้งเล่ม อาจเป็นสิ่งนี้จะช่วย หากคุณเพิ่งเริ่มต้น servlets อาจเป็นความคิดที่ดีที่จะอ่านเนื้อหาพร้อมกับ servlet API มันเป็นกระบวนการเรียนรู้ที่ช้าลง แต่มีประโยชน์มากขึ้นในการทำให้ข้อมูลพื้นฐานชัดเจนขึ้น


12
คำตอบสำหรับลิงก์อย่างเดียวนั้นไม่ควรใช้กับ Stack Overflow เนื่องจากทรัพยากรที่ลิงก์ไปอาจไม่พร้อมใช้งานในอนาคตหรืออาจมีการเปลี่ยนแปลง พิจารณาสรุปเนื้อหาที่เกี่ยวข้องของลิงก์ในคำตอบของคุณเพื่อปรับปรุง

6
@Cupcake ชื่นชมความคิดเห็นที่สร้างสรรค์ของคุณ ฉันพยายามเพิ่มเนื้อสัตว์ลงในคำตอบ ขอบคุณที่ทำให้ชุมชนดีขึ้น
Ayusman

34

นอกเหนือจากข้างต้นและเพื่อชี้ให้เห็นถึงความชัดเจนของ ...

สำหรับหลาย ๆ คนนี่เป็นเรื่องที่ชัดเจนมาก แต่สำหรับบางคนที่เคยเขียนแอพที่เพิ่งจะเปิดใช้งานและสิ้นสุดแล้ว: servlet ใช้เวลาส่วนใหญ่ไปกับการทำอะไรเลย ... รอที่จะส่งอะไรบางอย่างคำขอจากนั้นตอบกลับ . ด้วยเหตุนี้ servlet จึงมีอายุการใช้งาน: มัน initalised แล้วรอรอบตอบสนองต่อสิ่งที่โยนไปแล้วมันก็จะถูกทำลาย ซึ่งหมายความว่าจะต้องมีการสร้าง (และทำลายในภายหลัง) โดยสิ่งอื่น (กรอบ) ว่ามันทำงานในเธรดหรือกระบวนการของตัวเองและมันไม่ทำอะไรเลยนอกจากขอให้ และด้วยวิธีการบางอย่างหรือกลไกอื่น ๆ จะต้องดำเนินการโดย "นิติบุคคล" นี้สามารถ "รับฟัง" สำหรับการร้องขอ

ฉันขอแนะนำว่าการอ่านเกี่ยวกับเธรดกระบวนการและซ็อกเก็ตจะทำให้เกิดแสง: สิ่งนี้ค่อนข้างแตกต่างจากวิธีการทำงานของแอพ "Hello world" พื้นฐาน

อาจเป็นที่ถกเถียงกันอยู่ว่าคำว่า "เซิร์ฟเวอร์" หรือ "servlet" เป็นบิตของ overkill ชื่อที่สมเหตุสมผลและเรียบง่ายกว่าอาจเป็น "ผู้ตอบ" เหตุผลในการเลือกคำว่า "เซิร์ฟเวอร์" เป็นเรื่องที่เกิดขึ้นก่อน: การจัดเรียงแบบแรกคือ "ไฟล์เซิร์ฟเวอร์" ซึ่งผู้ใช้หลายคน / เครื่องปลายทางจะขอไฟล์จากเครื่องกลางจากนั้นไฟล์นี้จะถูก "เสิร์ฟ" "เหมือนหนังสือหรือจานปลาและมันฝรั่งทอด


1
มันไม่ถูกต้องหรือไม่ที่จะดูว่าเซิร์ฟเล็ตคล้ายกับ "คอนโทรลเลอร์" ในกรอบ MVC มาตรฐานหรือไม่?
user2490003

โดยส่วนตัวฉันไม่สามารถเห็นได้ว่าการเปรียบเทียบนั้นเป็นอย่างไร ฉันมักจะคิดว่าคนที่คิดว่าคำตอบของฉันเป็นประโยชน์ (ช่วยชี้แจงสิ่งต่าง ๆ สำหรับพวกเขา) อาจสับสนโดยคำแนะนำของคุณ
ไมค์หนู

ฉันคิดว่าคำตอบนี้มีประโยชน์ แต่ฉันยังสงสัย (เป็นอิสระจากคำตอบนี้และก่อนอ่าน) คำถามเดียวกันกับที่ @ user2490003 ถูกวางไว้ด้านบน อะไรคือความแตกต่างระหว่าง Servlet และ MVC-framework Controller? ทำไมการเปรียบเทียบโดย user2490003 ไม่ถือ?
cellepo

การจัดเรียง MVC นั้นซับซ้อนกว่าและซับซ้อนน้อยกว่า ไม่จำเป็นต้องเกี่ยวข้องกับการรออินพุต ในการกำหนดแนวคิดพื้นฐานของการตั้งค่าไคลเอนต์เซิร์ฟเวอร์มันเป็นความเรียบง่ายที่ฉันพยายามจะเน้น ดูแผนภาพ MVC ขั้นพื้นฐานที่นี่: en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller ในการตั้งค่าไคลเอนต์ - เซิร์ฟเวอร์อย่างง่ายผู้ใช้โต้ตอบเฉพาะกับไคลเอนต์ไม่ใช่กับสองวัตถุคือมุมมองและตัวควบคุม ด้วย MVC คุณสามารถมีหลายมุมมองตัวควบคุมหลายตัวและหลายรุ่น และการรอคอยสำหรับการป้อนข้อมูลไม่จำเป็นต้องมีส่วนร่วม
mike rodent

นอกเหนือจากข้างต้นเซิร์ฟเวอร์สามารถให้บริการผู้ใช้หลายคนในขณะที่ไม่มีข้อกำหนดดังกล่าวด้วยการตั้งค่า MVC การตั้งค่า MVC เป็นของโลกแห่งการคำนวณแบบคลาสสิคเช่นแอพแบบสแตนด์อโลน ด้วยเซิร์ฟเวอร์เราใช้ขั้นตอนแรกสู่จักรวาลแห่งการประมวลผลเชิงโต้ตอบ ไม่ใช่ว่าการเปรียบเทียบนั้นผิด 100% ผิดมากกว่า 90% และเหนือสิ่งอื่นใดการเปรียบเทียบก็ไม่มีประโยชน์ถ้ามันไม่ได้ช่วยใครหรืออะไรในทางใดทางหนึ่ง การจัดเรียงไคลเอนต์ของเซิร์ฟเวอร์นั้นเรียบง่ายอย่างมากโดยที่ไม่มีใครต้องการความคล้ายคลึงใด ๆ เลยเพื่อทำความเข้าใจ
ไมค์หนู

10

Servlet คืออะไร

  • servlet เป็นคลาสที่ตอบสนองต่อคำขอเครือข่ายประเภทใดประเภทหนึ่งโดยทั่วไปมักจะเป็นคำขอ HTTP
  • โดยทั่วไปแล้ว servlets มักจะใช้ในการใช้งานเว็บแอพพลิเคชั่น - แต่ยังมีเฟรมเวิร์กต่าง ๆ ที่ใช้งานบน servlets (เช่น Struts) เพื่อให้มีนามธรรมที่สูงกว่าระดับ "นี่คือคำร้องขอ HTTP ให้.
  • Servlets ทำงานในภาชนะ servlet ที่จัดการด้านเครือข่าย (เช่นการแยกคำขอ HTTP การจัดการการเชื่อมต่อ ฯลฯ ) หนึ่งใน servlet container ที่เป็นที่รู้จักดีที่สุดคือ Tomcat

  • ในกระบวนทัศน์คำขอ / ตอบกลับเว็บเซิร์ฟเวอร์สามารถให้บริการเฉพาะหน้าสแตติกกับไคลเอ็นต์

  • ในการแสดงหน้าแบบไดนามิกเราจำเป็นต้องใช้ Servlets
  • Servlet ไม่ได้เป็นเพียงแค่โปรแกรมจาวา
  • โปรแกรม Java นี้ไม่มีวิธีการหลัก มันมีวิธีการโทรกลับบางส่วนเท่านั้น
  • เว็บเซิร์ฟเวอร์สื่อสารกับ servlet อย่างไร ผ่านตู้คอนเทนเนอร์หรือเอนจิ้น Servlet
  • Servlet ใช้ชีวิตและตายภายในเว็บคอนเทนเนอร์
  • เว็บคอนเทนเนอร์มีหน้าที่ในการเรียกใช้เมธอดในเซิร์ฟเล็ต มันรู้วิธีการโทรกลับที่ Servlet มี

การไหลของการร้องขอ

  • ไคลเอนต์ส่งคำขอ HTTP ไปยังเว็บเซิร์ฟเวอร์
  • เว็บเซิร์ฟเวอร์ส่งต่อคำขอ HTTP ไปยังที่เก็บเว็บ
  • เนื่องจาก Servlet ไม่เข้าใจ HTTP ซึ่งเป็นโปรแกรม Java จึงเข้าใจเฉพาะวัตถุดังนั้นเว็บคอนเทนเนอร์จะแปลงคำขอนั้นเป็นวัตถุคำขอที่ถูกต้อง
  • เว็บคอนเทนเนอร์หมุนเธรดสำหรับแต่ละคำขอ
  • ตรรกะทางธุรกิจทั้งหมดอยู่ในเมธอด doGet () หรือ doPost () ภายใน servlets
  • Servlet สร้างวัตถุตอบกลับ Java และส่งไปยังคอนเทนเนอร์ มันแปลงการตอบสนอง HTTP อีกครั้งเพื่อส่งไปยังลูกค้า

คอนเทนเนอร์ทราบได้อย่างไรว่าไคลเอนต์ Servlet ใดร้องขอ

  • มีไฟล์ชื่อ web.xml
  • นี่คือไฟล์หลักสำหรับเว็บคอนเทนเนอร์
  • คุณมีข้อมูลเกี่ยวกับ servlet ในไฟล์นี้ -

    • Servlets
      • Servlet ชื่อ
      • Servlet ระดับ
    • servlet-mappings - เส้นทางเช่น / เข้าสู่ระบบหรือ / การแจ้งเตือนถูกแมปที่นี่มา
      • Servlet ชื่อ
      • url ของรูปแบบ
    • และอื่น ๆ
  • เซิร์ฟเล็ตทุกตัวในเว็บแอปควรมีรายการในไฟล์นี้

  • ดังนั้นการค้นหานี้จึงเกิดขึ้นเช่น - url-pattern -> servlet-name -> servlet-class

วิธีการ "ติดตั้ง" servlets * วัตถุ servlet นั้นสืบทอดมาจาก library- javax.servlet. * สามารถใช้ Tomcat และ Spring เพื่อใช้ประโยชน์จากวัตถุเหล่านี้เพื่อให้เหมาะกับการใช้งาน

Ref- นาฬิกานี้บน 1.5x- https://www.youtube.com/watch?v=tkFRGdUgCsE นี่มีคำอธิบายที่ยอดเยี่ยม


1
ยินดีต้อนรับลิงก์ไปยังโซลูชัน แต่โปรดมั่นใจว่าคำตอบของคุณมีประโยชน์หากไม่มี: เพิ่มบริบทรอบลิงก์เพื่อให้ผู้ใช้เพื่อนของคุณมีความคิดว่ามันคืออะไรและเพราะเหตุใดจึงอยู่ที่นั่นแล้วอ้างอิงส่วนที่เกี่ยวข้องที่สุดของหน้า กำลังเชื่อมโยงไปยังในกรณีที่หน้าเป้าหมายไม่พร้อมใช้งาน คำตอบที่น้อยกว่าลิงก์อาจถูกลบ
Mogsdad

1
โปรดทราบว่าโลกได้ย้ายไป ในปี 2020 เราใช้คำอธิบายประกอบบนรหัสแทนที่จะเป็นไฟล์การกำหนดค่าตามสตริงกลางใน XML
Thorbjørn Ravn Andersen

5

Servlet เป็นเทคโนโลยีด้านเซิร์ฟเวอร์ที่ใช้สร้างเว็บเพจแบบไดนามิกในเว็บแอปพลิเคชัน servlet จริง ๆ แล้วเป็น api ซึ่งประกอบด้วยกลุ่มของคลาสและอินเทอร์เฟซซึ่งมีฟังก์ชันบางอย่าง เมื่อเราใช้ Servlet API เราสามารถใช้ฟังก์ชันการทำงานที่กำหนดไว้ล่วงหน้าของคลาส servlet และอินเทอร์เฟซ

วงจรชีวิตของ Servlet:

เว็บคอนเทนเนอร์รักษาวงจรชีวิตของอินสแตนซ์ของเซิร์ฟเล็ต

1. โหลดคลาสเซิร์ฟเล็ตแล้ว

2. สร้างอินสแตนซ์ของ servlet

3. วิธีการ init () ถูกเรียก

4. วิธีการบริการ () ถูกเรียก

5. destroy () วิธีการที่เรียกใช้

เมื่อคำขอเพิ่มโดยไคลเอนต์ (เบราว์เซอร์) จากนั้นเว็บคอนเทนเนอร์จะตรวจสอบว่าเซิร์ฟเล็ตทำงานอยู่หรือไม่ถ้าใช่แล้วมันจะเรียกใช้บริการ () วิธีการและให้การตอบสนองต่อเบราว์เซอร์ ..

เมื่อ servlet ไม่ได้ทำงานจากนั้นเว็บคอนเทนเนอร์ทำตามขั้นตอนต่อไปนี้ ..

1. classloader โหลดคลาส servlet

2. สร้างเซิร์ฟเล็ตให้เป็นอินสแตนซ์

3. เริ่มต้น servlet

4. เรียกใช้บริการ () วิธีการ

หลังจากให้บริการเว็บคอนเทนเนอร์คำขอรอเวลาที่กำหนดในเวลานี้ถ้าคำขอมาแล้วมันจะเรียกวิธีการบริการ () เท่านั้นมิฉะนั้นมันเรียกวิธีทำลาย () ..


5

หากคุณเป็นผู้เริ่มต้นฉันคิดว่าบทช่วยสอนนี้อาจให้แนวคิดพื้นฐานเกี่ยวกับWhat Servlet คือ ...

คะแนนที่มีค่าบางอย่างอยู่ด้านล่างจากลิงก์ที่ให้มา

เทคโนโลยี Servlet ใช้เพื่อสร้างเว็บแอปพลิเคชั่นซึ่งอยู่ด้านเซิร์ฟเวอร์และสร้างหน้าเว็บแบบไดนามิก

Servlet สามารถอธิบายได้หลายวิธีขึ้นอยู่กับบริบท

  • Servlet เป็นเทคโนโลยีที่ใช้ในการสร้างเว็บแอปพลิเคชัน
  • Servlet เป็น API ที่มีอินเตอร์เฟสและคลาสมากมายรวมถึงเอกสาร
  • Servlet เป็นอินเตอร์เฟสที่ต้องนำไปใช้ในการสร้างเซิร์ฟเล็ตใด ๆ
  • Servlet เป็นคลาสที่ขยายขีดความสามารถของเซิร์ฟเวอร์และตอบสนองต่อการร้องขอที่เข้ามา มันสามารถตอบสนองต่อคำขอประเภทใดก็ได้
  • Servlet เป็นองค์ประกอบของเว็บที่ปรับใช้บนเซิร์ฟเวอร์เพื่อสร้างเว็บเพจแบบไดนามิก อ้างอิง: ที่นี่

1
นั่นเป็นบทเรียนที่ดีมากที่อธิบายแนวคิดจากพื้นฐาน
Nikhil Sahu

3

Java Servlets เป็นโมดูลโปรแกรม Java ฝั่งเซิร์ฟเวอร์ที่โพรซีเดอร์และตอบสนองความต้องการของลูกค้าและทำให้อินเตอร์เฟสเซิร์ฟเล็ตเป็นจริง ช่วยในการปรับปรุงประโยชน์ของเว็บเซิร์ฟเวอร์ด้วยค่าใช้จ่ายเล็กน้อยค่าบำรุงรักษาและการสนับสนุน

servlet เป็นสื่อกลางระหว่างลูกค้าและเซิร์ฟเวอร์ ในขณะที่โมดูล servlet ยังคงทำงานบนเซิร์ฟเวอร์พวกเขาสามารถรับและตอบสนองต่อความต้องการของลูกค้า วัตถุความต้องการและปฏิกิริยาของ servlet เสนอวิธีการที่เป็นประโยชน์ในการจัดการกับ HTTP ที่ขอและส่งข้อมูลเนื้อหากลับไปยังลูกค้า

เนื่องจากเซิร์ฟเล็ตมีการประสานงานกับภาษาจาวาจึงมีไฮไลต์ Java ทั้งหมดเช่นความสามารถในการเคลื่อนย้ายสูงขั้นตอนอิสระความปลอดภัยและความพร้อมใช้งานของฐานข้อมูล Java


2

Servlet เป็นคลาส java เพื่อตอบสนองคำขอ HTTP และสร้างการตอบสนอง HTTP ...... เมื่อเราสร้างเพจด้วยการใช้ HTML ดังนั้นมันจะเป็นหน้าสแตติกดังนั้นเพื่อให้เป็นแบบไดนามิกเราใช้ SERVLET {ด้วยคำง่ายๆ สามารถเข้าใจได้} ในการใช้ประโยชน์จาก servlet นั้น overcomed โดย JSP จะใช้รหัสและแท็ก HTML ทั้งในตัวเอง ..


2

Servlets เป็นคลาส Java ที่ทำงานบางอย่างเมื่อผู้ใช้เว็บไซต์ร้องขอ URL จากเซิร์ฟเวอร์ ฟังก์ชั่นเหล่านี้สามารถทำงานให้เสร็จสมบูรณ์เช่นการบันทึกข้อมูลไปยังฐานข้อมูลรันตรรกะและส่งคืนข้อมูล (เช่นข้อมูล JSON) ที่จำเป็นสำหรับการโหลดหน้า

โปรแกรม Java ส่วนใหญ่ใช้main()วิธีการที่เรียกใช้รหัสเมื่อโปรแกรมทำงาน Java servlets มีdoGet()และdoPost()วิธีการที่ทำหน้าที่เหมือนกับmain()วิธี ฟังก์ชันเหล่านี้จะถูกดำเนินการเมื่อผู้ใช้สร้างGETหรือPOSTร้องขอ URL ที่แมปกับเซิร์ฟเล็ตนั้น ดังนั้นผู้ใช้สามารถโหลดหน้าสำหรับการGETร้องขอหรือเก็บข้อมูลจากการPOSTร้องขอ

เมื่อผู้ใช้ส่งGETหรือPOSTร้องขอเซิร์ฟเวอร์จะอ่าน@WebServletที่ด้านบนของแต่ละคลาส servlet ในไดเรกทอรีของคุณเพื่อตัดสินใจว่าจะเรียกคลาส servlet ใด ตัวอย่างเช่นสมมติว่าคุณมีคลาส ChatBox และมีสิ่งนี้อยู่ด้านบน:

@WebServlet("/chat")
public class ChatBox extends HttpServlet {

เมื่อผู้ใช้ร้องขอ/chatURL ChatBoxคลาสของคุณจะถูกเรียกใช้งาน


0

ตามที่อธิบายในบทความนี้ Servlet เป็นวิธีมาตรฐานในการขยายเซิร์ฟเวอร์ Java และการเข้าถึงความสามารถ

Servlet แต่ละตัวสามารถมองเห็นเป็นเซิร์ฟเวอร์เล็ก ๆ (ดังนั้นชื่อ) ที่เข้าถึงการร้องขอและการตอบสนองที่จำลองในโค้ด Java พร้อมกับข้อมูลบริบทอื่น ๆ เช่นเซสชัน

ด้วยสิ่งเหล่านี้ในมือโค้ด Java ของเซิร์ฟเล็ตสามารถเชื่อมต่อกับทุกสิ่งที่จำเป็นในการสร้างการตอบสนองรวมถึงการส่งมอบหน้าเพจ JSP เพื่อสร้างมุมมอง HTML


-1

ฉันคิดว่า servlet นั้นเป็นคลาสจาวาซึ่งทำหน้าที่เป็นตัวกลางระหว่างการร้องขอ HTTP และการตอบสนอง HTTP นอกจากนี้ servlet ยังใช้เพื่อทำให้หน้าเว็บของคุณเป็นแบบไดนามิก ตัวอย่างเช่นหากคุณต้องการเปลี่ยนเส้นทางไปยังหน้าเว็บอื่นบนเซิร์ฟเวอร์คุณต้องใช้ servlets อีกสิ่งที่สำคัญคือ servlet สามารถทำงานบน localhost เช่นเดียวกับเว็บเบราว์เซอร์


-2

คุณเพิ่งได้คำตอบสำหรับ servlet ปกติ อย่างไรก็ตามฉันต้องการแบ่งปันบางอย่างเกี่ยวกับ Servlet 3.0

Servlet แรกคืออะไร

servlet เป็นส่วนประกอบของเว็บที่จัดการโดยคอนเทนเนอร์และสร้างเนื้อหาแบบไดนามิก Servlets เป็นคลาส Java ที่ถูกคอมไพล์ไปยังโค้ดไบต์ที่สามารถโหลดเข้าและเรียกใช้แบบไดนามิกโดยเว็บเซิร์ฟเวอร์ที่เปิดใช้งานเทคโนโลยี Java หรือคอนเทนเนอร์ Servlet

Servlet 3.0 เป็นการอัพเดทข้อมูลจำเพาะ Servlet 2.5 ที่มีอยู่ Servlet 3.0 API ที่ต้องการของแพลตฟอร์ม Java, Enterprise Edition 6. Servlet 3.0 เน้นไปที่การเพิ่มความสามารถและความสามารถในการวางกรอบเว็บ Servlet 3.0 นำคุณสู่ส่วนขยายบางอย่างเช่นความง่ายในการพัฒนา (EoD), ความสามารถในการเสียบ, การสนับสนุน Async และการปรับปรุงความปลอดภัย

ความง่ายในการพัฒนา

คุณสามารถประกาศ Servlets, Filter, Listeners, Init Params และเกือบทุกอย่างสามารถกำหนดค่าได้โดยใช้คำอธิบายประกอบ

Pluggability

คุณสามารถสร้างโครงการย่อยหรือโมดูลด้วย web-fragment.xml มันหมายความว่ามันจะช่วยให้การใช้ข้อกำหนดการทำงานที่เสียบได้อย่างอิสระ

การสนับสนุน Async

Servlet 3.0 มอบความสามารถในการประมวลผลแบบอะซิงโครนัสตัวอย่างเช่นกำลังรอให้ทรัพยากรพร้อมใช้งานสร้างการตอบสนองแบบอะซิงโครนัส

การปรับปรุงความปลอดภัย

รองรับวิธีการรับรองความถูกต้องล็อกอินและออกจากระบบเซิร์ฟเล็ต

ฉันพบจากการสอน Java Servlet

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.