sendRedirect()
metoda redirecționează răspunsul la o altă resursă. Această metodă face de fapt clientul(browserul) să creeze o nouă solicitare pentru a ajunge la resursă. Clientul poate vedea noua adresă url în browser.
sendRedirect() acceptă URL-ul relativ, astfel încât să poată merge pentru resurse în interiorul sau în afara serverului.
Servlet: sendRedirect () și cerere Dispecer
principala diferență între o redirecționare și o cerere de dispecerizare este că, redirecționarea face clientul(browser-ul) a crea o nouă cerere pentru a ajunge la resursa, utilizatorul poate vedea noua adresă URL în timp ce cererea de expediere obține resursa în aceeași cerere și URL-ul nu se schimbă.
de asemenea, o altă diferență foarte importantă este că, sendRedirect() funcționează pe obiect răspuns în timp ce cererea de lucru expediere pe obiect cerere.
exemplu care demonstrează utilizarea sendRedirect()
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(); } }}
diferența dintre forward () și sendRedirect()
înainte() | sendRedirect() |
---|---|
acesta funcționează la partea de server. | funcționează la partea clientului. |
acesta trimite întotdeauna același obiect cerere și răspuns. | trimite întotdeauna o nouă cerere pentru obiect. |
funcționează numai în cadrul serverului. | funcționează atât în interiorul cât și în afara serverului. |
în această metodă, toată procesarea este gestionată de web container intern. | în această metodă, toată procesarea este gestionată de un alt servlet. |
este mai rapid. | este mai lent. |
utilizarea forward () adresa metoda poate fi văzut în bara de adrese. | utilizarea adresei metodei forward() nu poate fi văzută în bara de adrese. |
interfața RequestDispatcher este utilizată pentru Declarație. | HttpServletResponse este utilizat pentru Declarație. |
este foarte util în modelul de design MVC pentru a ascunde accesul direct. | nu este util în modelul de design MVC pentru a ascunde accesul direct. |
reutilizează obiectul. | nu reutilizează obiectul. |
Exemplu: cerere.getRequestDispacher („servlet_1”).redirecționare (răspuns la cerere); | exemplu: răspuns.sendRedirect („Servlet_1”); |