דרך
חלופית נוספת לשימוש בטכנולוגיות
CGI
או ב SSI/ASP
היא ליצור שירותים אשר ירוצו על המכונה של שרת
ה WEB
ויהיו מסוגלים לטפל בקלט ה WEB
, לעבד אותו ולהחזיר את תוצאות הקלט המעובד
בחזרה דרך שרת ה WEB.
אחת השפות המועדפות למימוש דבר זה היא ג'אווה (למרות
שגם C++ או
VB
יכולים לעבוד גם כן עבור שרתים(.
ישנן
2 דרכים עיקריות לעשות זאת: 1) שרתי ג'אווה (Java
Servers) ו 2) Java
Servlets.
יישום
שרת בג'אווה זהו דבר טריויאלי יחסית מכיוון
שהשפה עוצבה ותוכננה כאשר הרשת נלקחה בחשבון
כגורם חשוב ביותר. כעיקרון אתה יוצר שקעים (sockets)
עבור כל לקוח ואז מעבד את הנתונים הנכנסים דרך
שקע זה.
ברמה
הפשטנית ביותר , יהיה לך משהו כזה:
try { ServerSocket socket = new ServerSocket(1969); Socket s = server.accept; PrintStream ps = new printStream(s.getOutputStream()); ps.println("Hello Cyberspace"); ps.flush; } catch (IOException e) { System.out.println(e); } |
ברגע שכתבת את השרת , עליך להתחיל אותו ועליו לחכות בסבלנות ללקוחות שיתחברו אליו. קוד להתקשרות עשוי להיות פשוט כגון הקטע הבא:
try { Socket s = new Socket("www.mydomain.com", 1969); DataInputStream dis = new DataInputStream(s.getInputStream()); String serverResponse = dis.readLine(); System.out.println(serverResponse); } catch (IOException e) { System.out.println(e); } |
בכל
אופן , רוב האנשים מיישמים דווקא את צד השרת
בעזרת Java Servlets.
ה Servlets
מאפשרים לך לשבץ שירות של שרת ג'אווה בתוך שרת
ה WEB.
אתה יכול לחשוב עליהם כעל יישום קטן (applet)
בצד השרת. שרת ה WEB
יטען ויריץ אותם באותו האופן בו דפדפן יריץ
יישום קטן (applet).
מחזור
חיי הרצת Servlet
יראה כך:
כפי
שאתה רואה , העסק עובד בצורה דומה מאוד ל CGI
ו ASP.
למעשה , בדומה ל ASP
ול Perl
משובץ CGI
גם Servlets עובדים בצורה מהירה מאוד מכיון שהם
נטענים לתוך שרת ה WEB.
יתרון
נוסף שיש ל Servlets
הינו בכך שהם משוחררים מהגבלות אבטחה ותקשורת
האופיינים לתכנות עם Java applet
מכיוון שהם רצים בצד השרת. ה servlets
משוחררים מ Java Sandbox.
כמו
כן , Servlets יכולים לשמור מצב והם בלתי תלויים
בפלטפורמה וניתנים להרחבה מכיוון שנכתבים בג'אווה
מונחית עצמים.
ה Catch
היחידי הינו שעליך להשתמש בשרת WEB
אשר מכיר את ה Servlets.
שרתי ה WEB
הנפוצים כוללים JWS(Java Web Server)
, Apache(Jserv)
. בכל אופן , גם אם אין לך שרת WEB
הכולל תמיכה ישירה ב Servlets
, שרתי WEB
רבים כוללים אפשרות לתוספת Add-on אשר מטפל ב Servlets
, כגון ServletExec
ו Jrun.