Servlets הינם Java classes
שנועדו להרחיב את היכולות של Web servers המכילים
יישומים הנגישים ע"י מודל בקשה-תשובה.
בהיותם כאלו, Servlets
הינם תשובת טכנולוגית Java לתכנות
.CGI
Servletsמתפקדים כשכבת ביניים בין בקשת HTTP מ-Web browser (או מ-HTTP client
אחר) לבין בסיסי נתונים ויישומים שבצד השרת.
ה-Servlets
מאפשרים לשרת ה-HTTP ליצור דפי Web
באופן דינאמי הנדרשים במקרים כגון:
דף Web המבוסס על נתונים המסופקים ע"י המשתמש, כגון
דפי תוצאה של חיפוש, אישור הזמנה בחנויות מקוונות וכו'.
דף Web המכיל נתונים המשתנים באופן תכוף,
כגון שרתי מזג אויר, חדשות וכו'.
דף Web המשתמש במידע מבסיסי נתונים או מקורות שרת
משניים .
תפקידם כולל:
קריאת הנתונים הנשלחים ע"י המשתמש
נתוני הבקשה מוזנים
בד"כ בטופס שבדף ה-Web אך הם יכולים להגיע גם מתוכנית
HTTP client אחרת.
עיבוד מידע אודות בקשת
HTTP
מידע זה כולל פרטים אודות יכולות הדפדפן, שם ה-Host
של הלקוח, coockies וכדומה.
עיבוד הבקשה עצמה
העיבוד יכול לכלול קריאה ליישום מרוחק (ע"י RMI
למשל), דו שיח עם בסיס נתונים או הפעלת התגובה ישירות.
יצירת מסמך HTML שיכיל את התוצאות
תוצאות העיבוד מפורמטות לדף HTML שהלקוח מצפה לקבל
בתגובה לבקשה.
הגדרת פרמטרים מתאימים לתגובת HTTP
כגון הודעה לדפדפן מהו סוג המסמך המוחזר, הגדרת coockies
וכדומה.
החזרת מסמך ה-HTTP ללקוח
המסמך שנשלח ללקוח יכול להיות בפורמט HTML ,GIF
או אפילו בתבנית דחוסה כגון GZIP.
למרות ש-Servlets אינם מוגבלים ל-Web או לשרתי יישומים המטפלים בדרישות HTTP, השימוש
הנפוץ ביותר הוא טיפול בדרישות HTTP ולכן אתר זה
יתרכז ב-HTTP Servlets בלבד.