On olemassa useita näyttöjä ja servlettejä, jotka yhdessä muodostavat Java-pohjaisen web-sovelluksen. JSP välittää ohjauksen yhdestä servletistä toiseen tai toinen JSP kahdella menetelmällä - Eteenpäin ja Uudelleenohjaus. Eteenpäin-menetelmä välittää pyynnön yhdestä servletistä toiseen resurssiin verkkosovelluksessa, ja tämä resurssi voi olla toinen servlet, JSP-sivu tai HTML-tiedosto.
Uudelleenohjausmenetelmä puolestaan ohjaa pyynnön toiseen sovellukseen. Et voi tehdä tätä eteenpäin-menetelmällä. Jos uudelleenohjaus osuu eri resurssiin samassa sovelluksessa, se käyttää eri URL-osoitetta kuin alkuperäinen pyynnön URL. Jos et halua vastata pyyntöön, voit ohjata pyynnön toiseen URL-osoitteeseen ja selain lähettää sitten uuden pyynnön antamasi URL-osoitteeseen. Tämä viesti tuo esiin pari eroa, jotka selittävät nämä kaksi menetelmää yksityiskohtaisesti.
Verkkopohjaisissa järjestelmissä tai sovelluksissa on usein tarvetta siirtää ohjaus eri resurssien tai JSP: ien välillä. Jos esimerkiksi haluat tehdä tilauksen verkkokauppasivustolta, sinun on rekisteröitävä ensin ennen jatkamista. Jos et ole vielä rekisteröitynyt heidän järjestelmäänsä, ostoskorin on ehkä siirrettävä hallinta JSP-lomakkeeseen, joka vastaa rekisteröintiprosessista. Eteenpäin suuntautuvaa toimintaa käytetään erityisesti tähän tarkoitukseen. Sitä käytetään siirtämään pyyntö yhdestä JSP: stä toiselle tai toiselle resurssille samassa yhteydessä.
Tätä menetelmää käytetään myös HTTP-pyyntöjen edelleenlähettämiseen, mutta toisin kuin edelleenlähetys, se on kaksivaiheinen prosessi, jossa uudelleenohjaus tapahtuu asiakaspuolella toiseen sovellukseen kokonaan. Uudelleenohjausmenetelmä ohjaa käyttäjän uuteen URL-osoitteeseen. Asiakkaan selain tekee uuden pyynnön palvelimelta tulevassa uudelleenohjausotsikossa määritettyyn URL-osoitteeseen. Se vaatii edestakaisen viestinnän asiakkaan kanssa, joten se on suhteellisen hitaampi kuin eteenpäin.
Eteenpäin () -menetelmää käytetään siirtämään pyyntö yhdestä JSP: stä toiselle tai yhdestä JSP: stä servletille tai yhdestä JSP: stä toiseen resurssiin verkkosovelluksessa. Konttori ohjaa ohjauksen sisäisesti, ja selain / asiakas ei ole mukana prosessissa. Eteenpäin -menetelmä ilmoitetaan RequestDispatcher-tiedostossa. SendRedirect () -menetelmä julistetaan HttPServletResponse-tiedostossa ja sitä käytetään ohjaamaan asiakaspyyntö toiseen URL-osoitteeseen, joka on saatavana eri palvelimella tai yhteydessä. Uudelleenohjauksen avulla voit ohjata selaimen kokonaan toiseen sovellukseen.
Yksi tärkeimmistä eroista näiden kahden menetelmän välillä on se, että web-säilö käsittelee kaikki prosessit sisäisesti eteenpäin () tapahtuessa ja URL-osoite ei muutu asiakkaan selaimessa, joten asiakas / selain ei ole mukana jättäen heidät täysin tietämättä, että toiminta on jo tapahtunut. SendRedirect () -menetelmässä menetelmä asettaa asianmukaiset otsikot ja sisällön ohjaamaan pyynnön toiseen URL-osoitteeseen, ja selain huolehtii uuden pyynnön lähettämisestä URL-osoitteeseen, joka on näkyvissä asiakkaalle, kun URL muuttuu selaimessa..
Kun eteenpäin () -menetelmä suoritetaan pyyntöhetkellä, nykyinen pyyntö välitetään edelleen toiselle JSP-sivulle ja nykyisen JSP: n käsittely lopetetaan. Pyyntö voidaan välittää Java-ohjelmointikielellä kirjoitettuun servlet-sovellukseen tai staattiseen HTML-sivulle. SendRedirect () -pyyntö käskee vain selaimen siirtymään toiseen URL-osoitteeseen lähettämällä suorituksen ohjauksen Web-sovelluksen ulkopuolelle. Se käyttää kaksivaiheista prosessia ohjaamaan selaimen URL-osoitteen tekemään uusi pyyntö, joka siirtää ohjauksen asiakkaalle.
Eteenpäin () toimii palvelimella ja suorittaa nopeammin kuin SendRedirect (). Uudelleenohjauksen on mentävä selaimen läpi ja odotettava sen jälkeen, kun selain tekee uuden HTTP-pyynnön. Uudelleenohjaus saa palvelimen lähettämään HTTP-vastauksen tilakoodin 302 sijaintiotsikolla, joka sisältää uuden URL-osoitteen selaimeen, ja sen jälkeen kun selain on vastaanottanut tilakoodin 302, se tekee uuden pyynnön sijaintiotsikosta löytyvälle URL-osoitteelle. Tämä vaatii edestakaisen viestinnän asiakkaan kanssa, mikä tekee siitä suhteellisen hitaamman kuin eteenpäin ().
Eteenpäin oppiminen eteenpäin- ja uudelleenohjausmenetelmien välillä on yksi Java-kehittäjien tärkeimmistä osista. Vaikka ohjain voi suorittaa joko eteenpäin- tai uudelleenohjausmenetelmän pyynnön käsittelyn lopussa, heillä on omat käyttötarkoituksensa. Käytit suurimman osan ajasta eteenpäin () -menetelmää, koska se on hiukan nopeampi kuin SendRedirect (), mikä itse asiassa vaatii edestakaisen viestinnän asiakkaan kanssa, mikä tekee siitä hitaamman kuin eteenpäin. No, ohjaamalla voit ohjata selaimen toiseen sovellukseen. Tätä ei voida tehdä eteenpäin. Lyhyesti sanottuna edelleenlähetys toimii parhaiten, kun yhden komponentin on suoritettava liiketoimintalogiikka ja jaettava tulokset toisen komponentin kanssa, kun taas uudelleenohjaus toimii parhaiten, kun asiakas on ohjattava sivulta toiselle..