החזרת תגובת JSON מ- Servlet

1. הקדמה

במדריך מהיר זה, ניצור יישום אינטרנט קטן ונבדוק כיצד להחזיר תגובת JSON מ- סרוולט.

2. מייבן

ליישום האינטרנט שלנו, נכלול javax.servlet-api ותלות Gson שלנו pom.xml:

 javax.servlet javax.servlet-api $ {javax.servlet.version} com.google.code.gson gson $ {gson.version} 

הגרסאות האחרונות של התלות נמצאות כאן: javax.servlet-api ו- gson.

עלינו גם להגדיר מיכל Servlet לפריסת היישום שלנו אליו. מאמר זה הוא מקום טוב להתחיל כיצד לפרוס WAR ב- Tomcat.

3. יצירת ישות

בואו ניצור עוֹבֵד ישות אשר מאוחר יותר תוחזר מה- סרוולט בתור JSON:

עובד בכיתה ציבורית {מזהה פרטי פרטי; שם מחרוזת פרטי; מחלקת מיתרים פרטית; משכורת פרטית ארוכה; // בונים // גטרים וקובעים סטנדרטיים. }

4. ישות ל- JSON

כדי לשלוח תגובת JSON מה- סרוולט אנחנו צריכים קודם להמיר את עוֹבֵד להתנגד לייצוג JSON שלו.

ישנן ספריות ג'אווה רבות הזמינות להמרת אובייקט לשם ייצוג JSON ולהיפך. הבולטות שבהן היו ספריות Gson ו- Jackson. כדי ללמוד על ההבדלים בין GSON לג'קסון, עיין במאמר זה.

מדגם מהיר להמרת אובייקט לייצוג JSON עם Gson יהיה:

מחרוזת JsonString = Gson חדש (). ToJson (עובד);

5. תגובה וסוג תוכן

עבור HTTP Servlets, ההליך הנכון לאכלוס התגובה:

  1. אחזר זרם פלט מהתגובה
  2. מלא את כותרות התגובה
  3. כתוב תוכן לזרם הפלט
  4. התחייב לתגובה

בתגובה, א סוג תוכן כותרת מספרת ללקוח מהו סוג התוכן של התוכן המוחזר.

להפקת תגובת JSON על סוג התוכן להיות יישום / json:

PrintWriter out = response.getWriter (); response.setContentType ("יישום / json"); response.setCharacterEncoding ("UTF-8"); out.print (עובדJsonString); out.flush ();

יש להגדיר כותרות תגובה תמיד לפני ביצוע התגובה. מיכל האינטרנט יתעלם מכל ניסיון להגדיר או להוסיף כותרות לאחר ביצוע התגובה.

יִעוּד סומק() על PrintWriter מתחייב לתגובה.

6. דוגמה לסולט

עכשיו בואו נראה דוגמא סרוולט שמחזירה תגובת JSON:

@WebServlet (name = "EmployeeServlet", urlPatterns = "/ employeeServlet") מעמד ציבורי EmployeeServlet מרחיב את HttpServlet {Gson gson הפרטי = Gson החדש (); @Override מוגן בטל doGet (HttpServletRequest בקשה, HttpServletResponse תגובה) זורק IOException {עובד עובד = עובד חדש (1, "Karan", "IT", 5000); מחרוזת עובד JsonString = this.gson.toJson (עובד); PrintWriter out = response.getWriter (); response.setContentType ("יישום / json"); response.setCharacterEncoding ("UTF-8"); out.print (עובדJsonString); out.flush (); }}

7. מסקנה

מאמר זה הציג כיצד להחזיר תגובת JSON מסרוולט. זה מועיל ביישומי אינטרנט המשתמשים ב- Servlets ליישום שירותי REST.

את כל דגימות הקוד המוצגות כאן ניתן למצוא ב- GitHub.


$config[zx-auto] not found$config[zx-overlay] not found