Fl-iżvilupp dinamiku ta' applikazzjoni tal-web, l-interazzjonijiet bejn il-klijenti u s-server huma essenzjali biex tintbagħat u tirċievi informazzjoni fuq l-Internet. F'dan it-tutorja ser nidħlu fil-metodi fl-Oġġett Impliċitu tar-Rispons JSP, jiġifieri l-metodi tal-oġġett impliċitu Rispons.
Meta l-browser teħtieġ paġna web , tintbagħat ħafna informazzjoni lis-server tal-web u lill- web server jirrispondi wara l-ipproċessar tat-talba HTTP. Hemmhekk Rispons JSP jimmaniġġja r-rispons billi jimmaniġġja l-informazzjoni li ġejja:
- linja ta' status,
- xi headers tar-rispons,
- linja vojta e
- id-dokument.
Tipikament tweġiba tidher bħal din:
HTTP/1.1 200 OK
Content-Type: text/html
Header2: ...
...
HeaderN: ...
(Blank Line)
<!doctype ...>
<html>
<head>...</head>
<body>
...
</body>
</html>
- Il-linja tal-istatus tikkonsisti mill-verżjoni HTTP (fl-eżempju HTTP/1.1),
- kodiċi tal-istatus (fl-eżempju 200) e
- messaġġ qasir ħafna li jikkorrispondi għall-kodiċi tal-istatus (fl-eżempju OK).
Fil-qiegħ tal-paġna se ssib sommarju tal-intestaturi tar-rispons HTTP 1.1 l-aktar użati rritornati lill-browser mis-server tal-web.
F'din il-kariga se naraw il-metodi varji pprovduti minn JSP għall-immaniġġjar tar-rispons JSP
Rispons JSP
Ir-Rispons JSP jista 'jkun definite bħala a oġġett impliċitu hija eżempju ta’” HttpServletResponse ” u hija ffurmata għal kull talba JSP maħluqa mill-kontenitur JSP.
JSP Rispons Oġġett Impliċitu
- Oġġett ta’ Rispons huwa oġġett impliċitu implimentat biex jimmodifika jew jimmaniġġja r-rispons mibgħut lill-klijent (eż. browser) wara li t-talba tkun ġiet ipproċessata, bħal direzzjoni mill-ġdid tar-rispons għal riżors ieħor jew żball mibgħut lil klijent.
- L-oġġett ta' rispons impliċitu huwa eżempju ta' interface javax.servlet.http.HttpServletResponse .
- Il-kontenitur joħloqha għal kull talba.
Hawn eżempju ta’ oġġetti impliċiti ta’ talba u rispons JSP fejn utent jibgħat informazzjoni ta’ login u paġna JSP oħra tirċeviha għall-ipproċessar:
<!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>
Hawn taħt hemm il-fajl 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");
}
%>
Metodu ta' Risposta Għan Impliċitu
JSP għandu metodi differenti biex jimmaniġġja oġġetti ta' Rispons, li huwa tat-tip HttpServeltResponse. Kull wieħed minn dawn il-metodi għandu l-funzjonalità tiegħu stess.
- String encodeURL(String url): Jintuża biex jikkodifika URL partikolari billi jinkludi l-ID tas-sessjoni flimkien miegħu. Inkella, meta l-kodifikazzjoni mhix meħtieġa, se terġa 'lura l-URL mhux mibdula.
- String encodeRedirectURL(String url): tintuża biex tikkodifika URL partikolari għall-użu fil-metodu sendRedirect. Inkella, meta l-kodifikazzjoni mhix meħtieġa, se terġa 'lura l-URL mhux mibdula.
- boolean fihHeader(Isem String): jintuża biex jirritorna boolean li jindika jekk l-header tar-rispons tal-isem huwiex diġà stabbilit jew le.
- null addDateHeader(Isem String, data twila): Dan jintuża biex iżżid header ta' rispons bl-isem speċifikat flimkien ma' valur ta' data.
- null addHeader(Isem String, Valur String): jintuża biex iżżid header tar-rispons bl-isem speċifikat u valur.
- boolean huwa Impenjat(): jintuża biex jirritorna valur boolean li jindika jekk ir-rispons kienx ikkonfermat jew le.
- null addIntHeader(Isem String, valur int): Jintuża biex iżżid header ta' rispons bl-isem speċifikat flimkien ma' valur sħiħ.
- null flushBuffer(): jintuża biex iġġiegħel kwalunkwe kontenut fil-buffer jinkiteb lill-klijent.
- null addCookie(cookie tal-cookie): jintuża biex iżżid cookie partikolari mar-rispons.
- null reset(): Jintuża biex ineħħi d-dejta kollha preżenti fil-buffer, l-header jew il-kodiċi tal-istatus.
- null sendError(int sc): Jintuża biex jibgħat tweġiba ta' żball (permezz ta' kodiċi ta' status partikolari) lill-klijent tiegħek.
- null sendError(int sc, String msg): tintuża biex tibgħat tweġiba ta' żball (permezz ta' string ta' status partikolari) lill-klijent tiegħek.
- null resetBuffer(): tintuża biex tneħħi l-kontenut tal-buffer sottostanti mingħajr ma tneħħi l-kodiċi tal-istatus jew l-intestatura.
- null sendRedirect(post ta' string): Jintuża biex jibgħat rispons ta' direzzjoni mill-ġdid għal żmien qasir lill-klijent.
- null setBufferSize(daqs int): jintuża biex jiġi stabbilit daqs tal-buffer ideali għall-korp tar-rispons.
- null setCharacterEncoding(Sett ta' karattri ta' string): tintuża biex tissettja l-kodifikazzjoni tal-karattri (normalment MIME charset – UTF 8) li għandha tintbagħat lill-klijent.
- null setContentType(Tip ta' string): Jintuża biex jiġi stabbilit it-tip ta' kontenut mibgħut lill-klijent meta r-rispons ikun għadu ma ġiex ikkonfermat.
- null setDateHeader(Isem is-string, data twila): tintuża biex tissettja header tar-rispons bl-isem speċifikat u l-valur tad-data.
- null setContentLength(int len): jintuża biex jiġi stabbilit it-tul tal-korp tal-kontenut fir-rispons.
- null setHeader(Isem String, Valur String): tintuża biex tissettja header tar-rispons bl-isem u l-valur speċifikati.
- null setIntHeader(Isem String, valur int): tintuża biex tissettja header tar-rispons bl-isem speċifikat u valur sħiħ.
- null setLocal(lok lokali): tintuża biex tissettja l-lokalizzazzjoni tat-tweġiba f'każ li t-tweġiba għadha ma ġietx salvata.
- null setStatus(int sc): jintuża biex jiġi stabbilit il-kodiċi tal-istatus għat-tweġiba.
Eżempju Rispons oġġett impliċitu
Hawn taħt naraw eżempju ieħor ta 'oġġett impliċitu ta' Rispons li jimplimenta aġġornament fuq il-browser, billi juża l-metodu setIntHeader(), billi jikteb Sigħat, Minuti, Sekondi li jissimula arloġġ diġitali. Eżempju Clock.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>
Issa tpoġġi l-kodiċi f'clock.jsp, tipprova tibda, se turi l-ħin tas-sistema kurrenti wara kull 5 sekondi.
Sommarju tal-intestaturi tar-rispons HTTP 1.1 l-aktar użati, mibgħuta lura lill-browser mis-server tal-web
- Ħalli: Din l-intestatura tispeċifika l-metodi tat-talba (GET, POST, eċċ.) appoġġjati mis-server.
- Kontroll tal-Cache: Din l-intestatura tispeċifika ċ-ċirkustanzi li taħthom id-dokument tar-rispons jista' jiġi miżmum fil-cache b'mod sigur. Jista' jkollu valuri pubbliċi, privati jew mingħajr cache eċċ. Pubbliku jfisser li d-dokument jista 'jkollhom fil-cache, Privat ifisser li d-dokument huwa għal utent wieħed u jista' jinħażen biss f'caches privati (mhux kondiviżi), u no-cache ifisser li d-dokument qatt m'għandu jiġi miżmum fil-cache.
- konnessjoni: Din l-intestatura tgħid lill-browser jekk għandux juża konnessjonijiet HTTP persistenti jew le. Valur mill-qrib jgħid lill-browser biex ma jużax konnessjonijiet HTTP persistenti, u jżommu ħaj ifisser li juża konnessjonijiet persistenti.
- Kontenut-Disposizzjoni: Din l-intestatura tippermettilek titlob li l-browser jitlob lill-utent biex isalva r-rispons fuq disk f'fajl bl-isem speċifikat.
- Kodifikazzjoni tal-Kontenut: Din l-intestatura tispeċifika kif il-paġna ġiet kodifikata waqt it-trażmissjoni.
- Kontenut-Lingwa: din l-intestatura tindika l-lingwa li biha jinkiteb id-dokument. Per eżempju, en, en-us, ru, eċċ.
- Kontenut-Tul: Din l-intestatura tindika n-numru ta’ bytes fir-rispons. Din l-informazzjoni hija meħtieġa biss jekk il-browser tiegħek juża konnessjoni HTTP persistenti (keep-alive).
- Tip ta 'Kontenut: Din l-intestatura tipprovdi t-tip Multipurpose Internet Mail Extension (MIME) tad-dokument tar-rispons.
- Jiskadi: Din l-intestatura tispeċifika l-ħin li fih il-kontenut għandu jitqies bħala skadut u għalhekk m'għadux jinżamm fil-cache.
- Modifikat l-aħħar: Din l-intestatura tindika meta d-dokument ġie modifikat l-aħħar. Il-klijent imbagħad jista 'jaħdef id-dokument fil-cache u jipprovdi data permezz ta' header ta 'talba If-Modified-Since fuq talbiet sussegwenti.
- post: Din l-intestatura trid tkun inkluża fit-tweġibiet kollha li għandhom kodiċi tal-istatus fi żmien 300 sekonda. Dan jinnotifika lill-browser bl-indirizz tad-dokument. Il-browser jerġa’ jqabbad awtomatikament ma’ dan il-post u jġib id-dokument il-ġdid.
- riffriskar: Din l-intestatura tispeċifika kemm il-browser għandu jitlob paġna aggornata. Tista' tispeċifika l-ħin f'numru ta' sekondi li warajh paġna tiġi aggornata.
- Ipprova mill-ġdid-Wara: Din l-intestatura tista 'tintuża flimkien ma' tweġiba 503 (servizz mhux disponibbli) biex tgħid lill-klijent kemm jista 'jirrepeti t-talba.
- Issettja l-cookies: Din l-intestatura tispeċifika cookie assoċjata mal-paġna.
Ercole Palmeri
10 ta’ Frar, 2022 9:17 am