איך ליצור server side ביתי ?

S h a r k 1 8

New member
איך ליצור server side ביתי ?

אהלן,
נניח שאני מנסה ליצור אפליקצית WEB. את ה frontend אני כותב ב HTML ו CSS, ואת ה Server אני כותב ב Java. השאלה היא איך אני הופך את קוד ה Java שלי ל server? איך כל מחשב ברשת מצליח ליצור קשר עם המחשב שלי?
 

Guy Yafe

New member
מכיר Servlets Container?

גגל את המושג. זה מה שאתה צריך.
אני ממליץ בתור התחלה על Tomcat. הוא הכי פשוט (לדעתי) מבין המוכרים.
 

S h a r k 1 8

New member
מהמעט שקראתי

נראה ש Servlet Container הוא interface שמממומש באופן אינהרנטי ב SDK של Java. אם כך, זה אומר שמה שאני צריך להוריד זה המימוש של ה interface? כלומר, ה Servlet Container כשלעצמו אינו קיים ב SDK ?
&nbsp
 

Guy Yafe

New member
כמעט

מבלי להיכנס להבדלים בין Java לבין JavaEE, המושג Servlet הוא ממשק בJAVA שיודע לקבל בקשות ולהחזיר תשובות.
במקרה שלך אתה תשתמש ב - HttpServlet שמרחיב את Servlet, והמשך התשובה יהיה בהקשר של בקשות HTTP.
ServletContainer הוא אפליקציה בJAVA (רוב האפליקציות כתובות גם בקוד נייטיב) שיודעת להאזין ל-Port מסויים, לקבל בקשות HTTP, ולהעביר אותן ל-Servlet המתאים.
ה-Servlet המתאים הוא אובייקט שאתה כותב, ויודע לקבל את הבקשה הזו ולהחזיר תשובה. תשובה בדר"כ היא מחרוזת HTML כזה או אחר (גגל גם על JSP).
&nbsp
כשאתה מתקין את ה-Container (כאמור, אני ממליץ להתחיל ב-Tomcat), אתה גם מגדיר לו לאיזה Port להאזין, ואיך למפות URL לServlet מסויים. כך הוא יודע לנתב כל בקשה שמגיעה אל הקוד אותו כתבת.
 

S h a r k 1 8

New member
אז בוא נגיד את זה ככה:

אפשר להסתדר גם בלי להוריד את ה Container. נכון?
ה Container מקל על העבודה. הבנתי נכון?
&nbsp
איך אני משלב את ה container בקוד שלי? האם אני צריך לכתוב איזה שורת import שמפנה אליו? בסופו של דבר ה Server זאת תוכנית Java שרצה, וכדי שיהיה ניתן לקרוא ממנה היא חייבת לרוץ בזמן הפעולה של ה client (למשל ע"י לולאה אינסופית)?
&nbsp
 

Guy Yafe

New member
אתה חייב להוריד את ה-Container

אתה לא משלב אותו בקוד שלך אלא אתה משלב את הקוד שלך בו. בגלל זה קוראים לו Container.
&nbsp
ה-Server הוא לא בדיוק תכנית JAVA שרצה אלא קצת יותר מזה.
&nbsp
במקום לדבר באוויר ובנפנופי ידיים, אני מציע שתגגל Tomcat Tutorial, ותתחיל לעבוד על הדוגמאות שלו. אם תהיינה לך שאלות אתה כמובן מוזמן לשאול כאן.
 

hookedatwalla

New member
מה הדרישות מהסרבר?

אני עבדתי עם PLAY
וגם עם WEB API

שניהם מאוד נוחים והPATTERN של סרבר סייד באפליקציות ווביות הוא דומה.
יש לך CONTROLLER ואז SERVICE ואז REPOSITORY כאשר כל אחד עושה את הלוגיקה שלו.
הקונטרולר מקבל את הקריאות, לוקח את הJSON ששמת בבודי והופך אותו לCLASS, הSERVICE יכול לבצע בדיקות על הקלאס וכדומה. ואם עבר מה שצריך לעבור - אז שלח את זה לREPOSITORY שישים בDB או בCACHE.. תלוי בארכיטקטורה.

REST API
 

user32

Well-known member
מנהל
השאלה מה אתה רוצה ללמוד

אם אתה מחפש להתמקצע בפיתוח web בג'אווה אז Servlet Container כמו Tomcat הוא כנראה התצורה הנפוצה ביותר בתעשיה וכדאי להתחיל משם. מורידים TC, עושים את הtutorial ומתקדמים משם. ההקמה של האפליקציה הראשונה קצת מסורבלת כמו כל דבר בג'אווה אבל ברגע שזה עובד קצב ההתקדמות הרבה יותר מהיר.
אם אתה רוצה ללמוד פיתוח Web באופן כללי אז יש אופציות יותר פשוטות ומהירות כמו התקנה של node.js או PHP או שרת מבוסס פיתון כמו Flask ואולי גם Django שאני פחות מכיר אבל מניח שזו התקנה מהירה.
 

GuestOfHonor

New member


 

GuestOfHonor

New member
יופי תפוז

ה
היה על ההמלצה להשתמש בטומקאט.

הצעה חלופית ולא ג'אוואית - ושה' ייסלח לי - חבר הרים שרת Node.JS בזמן די קצר, זאת יכולה להיות חלופה ביתית טובה לשרתים מבוססי Java.

כמובן, Javascript זה לא שפת תכנות וכו'.
 
כואב הלב מהמחשבה שתפעל לפי העצות שקיבלת פה

You do not need a "tomcat" to play with web server in Java
You do not need a "servlet" for that
You do not need a "container" or any other buzzword

Theres surely an httpserver "package" or whatever it's called in Java, just "import" it and extend it per the hello world sample found on SO

Then ngrok it and shazam you have buzz free web server that actually works

You welcome, it's my pleasure to help
 

vinney

Well-known member
יש אחלה http server ב busybox

מה בדיוק אתה צריך שיהיה בשרת שלך? אם כל מה שהוא יודע זה לשרת את הhtml והcss - אז יקח לך יותר זמן להקליד את כל הimportים בJAVA מאשר לכתוב את המימוש (או לקחת קיים) באיזה פיטון או משהו.
 
I think that's your fist pseudo-technical post in this forum

In the last ~3 years.
He wanted Java. Using httpd will now force him to build CGI compliant "server app". That seems redundant for 'playing and learning' (assuming it's not trivial in Java - I don't know).
 

vinney

Well-known member
בגלל זה שאלתי מה בדיוק הוא רוצה לעשות

האם הוא רוצה JAVA רק כי זאת השפה שהוא מכיר? לא יודע.
&nbsp
Java זאת לא דרישה, זה מענה. השאלה היא מה הדרישה.
&nbsp
ותודה על המחמאה, אבל לדעתי לא עקבת אחרי הפוסטים שלי מספיק באדיקות. פיספסת כמה.
 
למעלה