metoda Sendredirect () w Servlet

sendRedirect() metoda przekierowuje odpowiedź do innego zasobu. Ta metoda faktycznie sprawia, że klient (przeglądarka), aby utworzyć nowe żądanie, aby dostać się do zasobu. Klient może zobaczyć nowy adres url w przeglądarce.

sendredirect () akceptuje względny adres URL, więc może przejść do zasobów wewnątrz lub na zewnątrz serwera.

Servlet: sendredirect () i Request Dispatcher

główną różnicą między przekierowaniem a wysyłaniem żądania jest to, że przekierowanie sprawia, że klient(przeglądarka) tworzy nowe żądanie, aby dostać się do zasobu, użytkownik może zobaczyć nowy adres URL, podczas gdy request Dispatcher otrzymuje zasób w tym samym żądaniu, a URL nie zmienia się.

inną bardzo ważną różnicą jest to, że sendredirect() działa na obiekcie odpowiedzi, podczas gdy request dispatch działa na obiekcie żądania.

przykład demonstrujący użycie 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(); } }}

różnica między forward () I sendRedirect()

forward() sendRedirect()
działa po stronie serwera. działa po stronie klienta.
zawsze wysyła ten sam obiekt żądania i odpowiedzi. zawsze wysyła nowe żądanie dla obiektu.
działa tylko wewnątrz serwera. działa zarówno wewnątrz, jak i na zewnątrz serwera.
w tej metodzie całe przetwarzanie jest obsługiwane wewnętrznie przez kontener sieciowy. w tej metodzie wszystkie przetwarzanie jest obsługiwane przez inny servlet.
jest szybszy. jest wolniej.
za pomocą metody forward () adres można zobaczyć w pasku adresu. użycie adresu metody forward() nie jest widoczne w pasku adresu.
interfejs RequestDispatcher jest używany do deklaracji. httpservletresponse jest używany do deklaracji.
jest to bardzo przydatne w wzorcu projektowym MVC, aby ukryć bezpośredni dostęp. w wzorcu projektowym MVC nie jest przydatne ukrywanie bezpośredniego dostępu.
ponownie wykorzystuje obiekt. nie używa ponownie obiektu.
przykład: żądanie.getRequestDispacher(„servlet_1”).forward (odpowiedź żądania); przykład: odpowiedź.sendRedirect („Servlet_1”);

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.