sendRedirect()
menetelmä ohjaa vastauksen toiseen resurssiin. Tämä menetelmä todella tekee asiakas (selain) luoda uuden pyynnön päästä resurssi. Asiakas näkee uuden url-osoitteen selaimessa.
sendRedirect () hyväksyy suhteellisen URL-osoitteen, joten se voi hakea resursseja palvelimen sisä-tai ulkopuolelta.
Servlet: sendRedirect () ja pyynnön lähettäjä
tärkein ero uudelleenohjauksen ja pyynnön lähettämisen välillä on se, että uudelleenohjaus saa asiakkaan (selaimen) luomaan uuden pyynnön päästäkseen resurssiin, käyttäjä näkee uuden URL: n, kun taas pyynnön lähettäminen saa resurssin samaan pyyntöön ja URL ei muutu.
myös toinen erittäin tärkeä ero on se, että sendRedirect() toimii response-objektissa, kun taas request dispatch toimii request-objektissa.
esimerkki, joka osoittaa suoran lähetyksen käytön()
import java.io.*;import javax.servlet.*;import javax.servlet.http.*;public class MyServlet extends HttpServlet { protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=UTF-8"); PrintWriter out = response.getWriter(); try { response.sendRedirect("https://www.studytonight.com"); } finally { out.close(); } }}
term (): n ja sendredirectin välinen ero()
eteenpäin () | sendRedirect() |
---|---|
se toimii palvelimen puolella. | se toimii asiakaspuolella. |
se lähettää aina saman pyynnön ja vastauksen objektin. | se lähettää aina uuden pyynnön kohteelle. |
se toimii vain palvelimen sisällä. | se toimii sekä palvelimella että sen ulkopuolella. |
tässä menetelmässä kaikki käsittely käsitellään web-säiliössä sisäisesti. | tässä menetelmässä kaiken käsittelyn hoitaa toinen servletti. |
se on nopeampi. | se on hitaampi. |
käyttämällä forward () – menetelmää osoite näkyy osoiterivillä. | käyttämällä forward () – menetelmää osoitetta ei voi nähdä osoiterivillä. |
RequestDispatcher-käyttöliittymää käytetään ilmoitukseen. | Httpservletvastausta käytetään ilmoitukseen. |
se on erittäin hyödyllinen MVC suunnittelu kuvio piilottaa suoran pääsyn. | MVC-suunnittelukuviossa ei ole hyödyllistä piilottaa suoraa pääsyä. |
se käyttää esinettä uudelleen. | se ei käytä esinettä uudelleen. |
esimerkki: pyyntö.getRequestDispacher (”servlet_1”).forward (request response); | Example: response.sendRedirect (”Servlet_1”); |