מאמרים

JSP Response, כל השיטות של אובייקט ה-Implicit Response

בפיתוח אפליקציות אינטרנט דינאמיות, אינטראקציות בין לקוח ושרת חיוניות לשליחת מידע וקבלה דרך האינטרנט. במדריך זה נעמיק בשיטות ב-JSP Response Implicit Object, כלומר השיטות של ה-Implicit Response Object.

כאשר הדפדפן דורש דף אינטרנט , מידע רב נשלח לשרת האינטרנט ול- שרת האינטרנט מגיב לאחר עיבוד בקשת ה-HTTP. שם תגובת JSP מנהל את התגובה על ידי ניהול המידע הבא:

  • שורת סטטוס,
  • כמה כותרות תגובות,
  • שורה ריקה ה
  • המסמך.

בדרך כלל תשובה נראית כך:

HTTP/1.1 200 OK
Content-Type: text/html
Header2: ...
...
HeaderN: ...
   (Blank Line)
<!doctype ...>

<html>
   <head>...</head>
   <body>
      ...
   </body>
</html>
  • שורת המצב מורכבת מגרסת ה-HTTP (בדוגמה HTTP / 1.1),
  • קוד סטטוס (בדוגמה 200) ה
  • הודעה קצרה מאוד המתאימה לקוד המצב (בדוגמה אישור).

בתחתית העמוד תמצאו תקציר של כותרות התגובה של HTTP 1.1 הנפוצות ביותר, שהוחזרו לדפדפן משרת האינטרנט.

בפוסט זה נבחן את השיטות השונות שמספק JSP לטיפול בתגובת JSP

תגובת JSP

תגובת JSP יכולה להיות defiנייט כמו א אובייקט מרומז הוא דוגמה של " HttpServletResponse "ונוצר עבור כל בקשת JSP נוצר על ידי מיכל JSP.

JSP Response Object Implicit
  • אובייקט תגובה הוא אובייקט מרומז המיושם כדי לשנות או לנהל את התגובה שנשלחה ללקוח (למשל דפדפן) לאחר עיבוד הבקשה, למשל על ידי הפניית התגובה למשאב אחר או שגיאה שנשלחה ללקוח.
  • האובייקט המרומז של התגובה הוא מופע של ממשק javax.servlet.http.HttpServletResponse .
  • המיכל יוצר אותו עבור כל בקשה.

הנה דוגמה לאובייקטים מרומזים של בקשה ותגובה של JSP שבהם משתמש אחד שולח פרטי התחברות ודף JSP אחר מקבל אותם לעיבוד:

ניוזלטר חדשנות
אל תחמיצו את החדשות החשובות ביותר בנושא חדשנות. הירשם כדי לקבל אותם במייל.
<!DOCTYPE html>
<html>
    <head>
        <title>User login form</title>
    </head>
    <body>
        <form action="login.jsp">
            Username: <input type="text" name="user_name" /> <br />
            <input type="submit" value="Submit" />
        </form>
    </body>
</html>

להלן קובץ login.jsp

<%@ page import = " java.util.* " %>
<% 
String username = request.getParameter("user_name"); 
if(username.equals("admin")){
    response.sendRedirect("home.jsp");  
}else{
    out.print("Invalid Username");  
}
%>
Response Implicit Object Method

ל-JSP יש שיטות שונות לטיפול באובייקטי תגובה, שהיא מסוג HttpServeltResponse. לכל אחת מהשיטות הללו יש פונקציונליות משלה.

  • מחרוזת encodeURL (כתובת אתר מחרוזת): משמש לקידוד כתובת אתר מסוימת על ידי הכללת מזהה ההפעלה יחד איתה. אחרת, כאשר אין צורך בקידוד, הוא יחזיר את כתובת האתר ללא שינוי.
  • מחרוזת encodeRedirectURL (כתובת אתר מחרוזת): משמש לקידוד כתובת URL מסוימת לשימוש בשיטת sendRedirect. אחרת, כאשר אין צורך בקידוד, הוא יחזיר את כתובת האתר ללא שינוי.
  • בוליאני containsHeader (שם מחרוזת): משמש להחזרת ערך בוליאני המציין אם כותרת תגובת השם כבר מוגדרת או לא.
  • לבטל את addDateHeader (שם מחרוזת, תאריך ארוך)- משמש להוספת כותרת תגובה עם השם שצוין יחד עם ערך תאריך.
  • לבטל את addHeader (שם מחרוזת, ערך מחרוזת)- משמש להוספת כותרת תגובה עם השם והערך שצוינו.
  • בוליאני מחויב (): משמש להחזרת ערך בוליאני המציין אם התגובה אושרה או לא.
  • לבטל את addIntHeader (שם מחרוזת, ערך int)- משמש להוספת כותרת תגובה עם השם שצוין יחד עם ערך מספר שלם.
  • לבטל את flushBuffer (): משמש לאלץ כל תוכן במאגר להיכתב ללקוח.
  • לבטל את addCookie (עוגיית עוגיות): משמש להוספת קובץ Cookie מסוים עם התגובה.
  • לבטל את אִתחוּל(): הוא משמש לניקוי כל הנתונים הנמצאים במאגר, בכותרת או בקוד המצב.
  • לבטל את sendError (int sc): הוא משמש לשליחת תגובת שגיאה (דרך קוד סטטוס מסוים) ללקוח שלך.
  • לבטל את sendError (int sc, String msg): משמש לשליחת תגובת שגיאה (דרך מחרוזת סטטוס מסוימת) ללקוח שלך.
  • לבטל את resetBuffer (): משמש לניקוי התוכן של המאגר הבסיסי מבלי לנקות את קוד המצב או הכותרת.
  • לבטל את sendRedirect (מיקום מחרוזת)- משמש לשליחת תגובת הפניה קצרת טווח ללקוח.
  • לבטל את setBufferSize (גודל int)- משמש להגדרת גודל חיץ אידיאלי עבור גוף התגובה.
  • לבטל את setCharacterEncoding (ערכת תווים מחרוזת): הוא משמש להגדרת קידוד התווים (בדרך כלל ערכת תווים MIME - UTF 8) שיישלח ללקוח.
  • לבטל את setContentType (סוג מחרוזת): משמש להגדרת סוג התוכן שנשלח ללקוח כאשר התגובה טרם אושרה.
  • לבטל את setDateHeader (שם מחרוזת, תאריך ארוך): משמש להגדרת כותרת תגובה עם השם וערך התאריך שצוינו.
  • לבטל את setContentLength (int len)- משמש להגדרת אורך הגוף של התוכן בתגובה.
  • לבטל את setHeader (שם מחרוזת, ערך מחרוזת): משמש להגדרת כותרת תגובה עם השם והערך שצוינו.
  • לבטל את setIntHeader (שם מחרוזת, ערך int): משמש להגדרת כותרת תגובה עם השם שצוין וערך מספר שלם.
  • לבטל את setLocale (Locale loc): משמש להגדרת מיקום התגובה במקרה שהתגובה טרם נשמרה.
  • לבטל את setStatus (int sc): משמש להגדרת קוד המצב עבור התגובה.
דוגמה לאובייקט מרומז של תגובה

אנו רואים להלן דוגמה נוספת לאובייקט מרומז ב-Response המיישם רענון בדפדפן, תוך שימוש בשיטת setIntHeader (), כתיבת שעות, דקות, שניות המדמה שעון דיגיטלי. שעון לדוגמה.jsp

<%@ page import = "java.io.*,java.util.*" %>

<html>
   
   <head>
      <title>Auto Refresh Header Example</title>
   </head>
   
   <body>
      <center>
         <h2>Auto Refresh Header Example</h2>
         <%
            // Set refresh, autoload time as 5 seconds
            response.setIntHeader("Refresh", 5);
            
            // Get current time
            Calendar calendar = new GregorianCalendar();
            
            String am_pm;
            int hour = calendar.get(Calendar.HOUR);
            int minute = calendar.get(Calendar.MINUTE);
            int second = calendar.get(Calendar.SECOND);
            
            if(calendar.get(Calendar.AM_PM) == 0) 
               am_pm = "AM";
            else
               am_pm = "PM";
               String CT = hour+":"+ minute +":"+ second +" "+ am_pm;
               out.println("Current Time is: " + CT + "\n");
         %>
      </center>
   
   </body>
</html>

כעת הזנת הקוד לתוך clock.jsp, מנסה להפעיל אותו, זה יציג את זמן המערכת הנוכחי לאחר כל 5 שניות.

סיכום של כותרות התגובה של HTTP 1.1 הנפוצות ביותר, שהוחזרו לדפדפן משרת האינטרנט
  • להתיר: כותרת זו מציינת את שיטות הבקשה (GET, POST וכו') הנתמכות על ידי השרת.
  • בקרת מטמון- כותרת זו מציינת את הנסיבות שבהן ניתן לאחסן את מסמך התגובה בצורה מאובטחת. זה יכול להיות ערכי ציבורי, פרטי או ללא מטמון וכו'. ציבורי פירושו שהמסמך ניתן לקובץ שמור, פרטי פירושו שהמסמך מיועד למשתמש יחיד וניתן לאחסן אותו רק במטמון פרטי (לא משותף), ו-no-cache פירושו שלעולם אין לאחסן את המסמך במטמון.
  • הקשר: כותרת זו אומרת לדפדפן אם להשתמש בחיבורי HTTP קבועים או לא. ערך קרוב אומר לדפדפן לא להשתמש בחיבורי HTTP מתמשכים, ו- Keep-alive פירושו להשתמש בחיבורים מתמשכים.
  • דיספוזיציה של תוכן- כותרת זו מאפשרת לבקש מהדפדפן לבקש מהמשתמש לשמור את התגובה בדיסק בקובץ עם השם שצוין.
  • קידוד תוכן: כותרת זו מציינת כיצד הדף קודד במהלך השידור.
  • תוכן-שפה: כותרת זו מציינת את השפה בה נכתב המסמך. לדוגמה, en, en-us, ru וכו'.
  • אורך תוכן: כותרת זו מציינת את מספר הבתים בתגובה. מידע זה נחוץ רק אם הדפדפן משתמש בחיבור HTTP מתמשך (לשמור בחיים).
  • Content-Type: כותרת זו מספקת את הסוג Multipurpose Internet Mail Extension (MIME) של מסמך התגובה.
  • פג תוקף- כותרת זו מציינת את הזמן שבו יש להתייחס לתוכן מיושן ולכן לא יישמר עוד במטמון.
  • שונה לאחרונה: כותרת זו מציינת מתי המסמך שונה לאחרונה. לאחר מכן הלקוח יכול לשמור את המסמך במטמון ולספק תאריך באמצעות כותרת הבקשה If-Modified-Since בבקשות עוקבות.
  • מקום: כותרת זו חייבת להיכלל בכל התגובות שיש להן קוד סטטוס של 300 שניות. זה מודיע לדפדפן על כתובת המסמך. הדפדפן מתחבר אוטומטית למיקום זה ומחזיר את המסמך החדש.
  • לרענן: כותרת זו מציינת תוך כמה זמן על הדפדפן לבקש דף מעודכן. ניתן לציין את הזמן במספר שניות שאחריו דף ירענן.
  • נסה-לאחר- ניתן להשתמש בכותרת זו בשילוב עם תגובת 503 (השירות אינו זמין) כדי לומר ללקוח כמה זמן הוא יכול לחזור על הבקשה.
  • קבע עוגיה: כותרת זו מציינת קובץ Cookie המשויך לדף.

Ercole Palmeri

ניוזלטר חדשנות
אל תחמיצו את החדשות החשובות ביותר בנושא חדשנות. הירשם כדי לקבל אותם במייל.

מאמרים אחרונים

עיקרון הפרדת ממשק (ISP), עקרון SOLID רביעי

עקרון הפרדת הממשק הוא אחד מחמשת העקרונות המוצקים של עיצוב מונחה עצמים. לכיתה צריכה להיות…

14 מאי 2024

כיצד לארגן בצורה הטובה ביותר נתונים ונוסחאות באקסל, לניתוח מוצלח

Microsoft Excel הוא כלי ההתייחסות לניתוח נתונים, מכיוון שהוא מציע תכונות רבות לארגון מערכי נתונים,...

14 מאי 2024

מסקנה חיובית לשני פרויקטים חשובים של Walliance Equity Crowdfunding: Jesolo Wave Island ו-Milano Via Ravenna

Walliance, SIM ופלטפורמה בין המובילות באירופה בתחום מימון המונים בנדל"ן מאז 2017, מכריזה על השלמת...

13 מאי 2024

מהו פילאמנט וכיצד להשתמש ב-Laravel Filament

Filament הוא מסגרת פיתוח "מואצת" של Laravel, המספקת מספר רכיבים מלאים. זה נועד לפשט את התהליך של...

13 מאי 2024

תחת שליטה של ​​בינה מלאכותית

"אני חייב לחזור כדי להשלים את האבולוציה שלי: אני אשליך את עצמי בתוך המחשב ואהפוך לאנרגיה טהורה. לאחר שהתמקמו…

10 מאי 2024

הבינה המלאכותית החדשה של גוגל יכולה לדגמן DNA, RNA ו"כל מולקולות החיים"

Google DeepMind מציגה גרסה משופרת של מודל הבינה המלאכותית שלה. הדגם החדש המשופר מספק לא רק...

9 מאי 2024

חקר האדריכלות המודולרית של לראוול

Laravel, המפורסמת בתחביר האלגנטי והתכונות החזקות שלו, מספקת גם בסיס איתן לארכיטקטורה מודולרית. שם…

9 מאי 2024

Cisco Hypershield ורכישת Splunk העידן החדש של אבטחה מתחיל

סיסקו ו-Splunk עוזרות ללקוחות להאיץ את המסע שלהם אל מרכז התפעול האבטחה (SOC) של העתיד עם...

8 מאי 2024