Kā saka nosaukums, tā ir saziņa starp servletiem. Servleti runā viens ar otru. [Ir daudzi veidi, kā sazināties starp servletiem, tostarp
- Pieprasīt nosūtīšanu
- HTTP novirzīšana
- Servletu ķēde
- HTTP pieprasījums (izmantojot ligzdas vai URLConnection klasi)
- Koplietojamie sesiju, pieprasījumu vai lietojumprogrammu objekti (pupas)
- Tiešā metodes izsaukšana (novecojusi)
- Kopīgotie statiskie vai gadījumu mainīgie (novecojuši)
Meklējiet FAQ, īpaši tēmā Ziņojumu nodošana (tostarp pieprasījumu nosūtīšana), lai iegūtu informāciju par katru no šiem paņēmieniem. -Alekss]
Būtībā interServlet komunikācija tiek panākta, izmantojot servletu ķēdi. Tas ir process, kurā viena servleta izvadi kā ievadi nododat citam. Šiem servletiem jādarbojas vienā serverī.
piemēram, ServletContext.getRequestDispatcher(HttpRequest, HttpResponse).forward("NextServlet"); Pašreizējo pieprasījuma un atbildes objektu no pēdējās veidlapas iesniegšanas varat nodot nākamajam servletam/JSP. Varat modificēt šos objektus un nodot tos, lai nākamā servleta/JSP varētu izmantot šīs servleta rezultātus.
Ir dažas Servlet dzinējam raksturīgas konfigurācijas servletu ķēdes savienošanai.
Servleti var izsaukt arī citu servletu publiskās funkcijas, kas darbojas tajā pašā serverī. To var izdarīt, izmantojot ServletContext objektu, iegūstot vajadzīgā servleta turi, nododot tam servleta nosaukumu (šis objekts var atgriezt jebkuru serverī darbojošos servletu). Un pēc tam atgrieztā Servlet objekta funkcijas izsaukšana.
piemēram, TestServlet test= (TestServlet)getServletConfig().getServletContext().getServlet("OtherServlet"); otherServletDetails= Test.getServletDetails();
Jums jābūt uzmanīgiem, izsaucot citas servleta metodes. Ja servlet, kuru vēlaties izsaukt, ievieš SingleThreadModel saskarni, jūsu izsaukums var būt pretrunā ar servleta viena pavediena raksturu. (Serveris nevar iejaukties un nodrošināt, lai jūsu zvans notiktu, kad servlets nesadarbojas ar citu klientu.) Šajā gadījumā jūsu servletam ir jāveic HTTP pieprasījums citam servletam, nevis tiešiem izsaukumiem.
Servleti var arī programmatiski izsaukt citus servletus, nosūtot HTTP pieprasījumu. To var izdarīt, atverot URL savienojumu ar vēlamo servletu.







