Różnica między do przodu a przekierowaniem
- 3169
- 412
- Pan Antonina Ruciński
Istnieje wiele ekranów i serwletów, które razem tworzą aplikację internetową opartą na Javie. JSP przekazuje kontrolę z jednego serwletu do drugiego serwletu lub JSP przy użyciu dwóch metod - do przodu i przekierowania. Metoda przesyłania przesyła żądanie z jednego serwletu do innego zasobu w aplikacji internetowej, a ten zasób może być kolejnym serwletem, stroną JSP lub plik HTML.
Z drugiej strony metoda przekierowania przekierowuje żądanie do innej aplikacji. Nie możesz tego zrobić metodą do przodu. Jeśli przekierowanie trafi do innego zasobu w tej samej aplikacji, używa innego adresu URL niż oryginalny adres URL żądania. Jeśli nie chcesz odpowiedzieć na żądanie, możesz przekierować żądanie do innego adresu URL, a przeglądarkę, następnie wysyłasz nowe żądanie do dostarczonego przez Ciebie adresu URL. Ten post podkreśla kilka różnic, które szczegółowo wyjaśniają dwie metody.
Co jest naprzód?
W systemach lub aplikacjach internetowych często istnieje potrzeba przesyłania kontroli między różnymi zasobami lub JSP. Na przykład, jeśli chcesz złożyć zamówienie ze strony e-commerce, musisz zarejestrować się najpierw przed kontynuowaniem. Jeśli nie jesteś jeszcze zarejestrowany w ich systemie, koszyk może wymagać przeniesienia kontroli do formularza JSP, który jest odpowiedzialny za proces rejestracji. Działanie do przodu jest używane specjalnie do tego celu. Służy do przekazania żądania z jednego JSP do drugiego lub innego zasobu w tym samym kontekście.
Co jest przekierowani?
Ta metoda jest również stosowana do przekazywania żądań HTTP, ale w przeciwieństwie do napastnika, jest to proces dwuetapowy, w którym przekierowanie odbywa się po stronie klienta do innej aplikacji. Metoda przekierowania przekierowuje użytkownika do nowego adresu URL. Przeglądarka klienta automatycznie składa nowe żądanie w adresie URL określonym w nagłówku przekierowania, który pochodzi z serwera. Wymaga komunikacji w obie strony z klientem, dlatego jest stosunkowo wolniejszy niż naprzód.
Różnica między do przodu a przekierowaniem
Opis naprzód vs. Przeadresować
Metoda Forward () służy do przekazania żądania z jednego JSP do drugiego lub z jednego JSP do serwletu lub z jednego JSP do innego zasobu w aplikacji internetowej. Kontrola jest przekazywana wewnętrznie przez kontener, a przeglądarka/klient nie jest zaangażowany w proces. Metoda przekazania jest zadeklarowana w requestdispatcher. Metoda sendRedirect () jest zadeklarowana w httpservletResponse i służy do przekierowania żądania klienta do innego adresu URL, który jest dostępny na innym serwerze lub kontekście. Za pomocą przekierowania możesz całkowicie przekierować przeglądarkę do innej aplikacji.
Zaangażowanie klienta w naprzód vs. Przeadresować
Jedną z kluczowych różnic między tymi dwiema metodami jest to, że kontener internetowy obsługuje wszystkie procesy wewnętrznie w przypadku napastnika (), a adres URL nie zmienia się w przeglądarce klienta, więc klient/przeglądarka nie jest zaangażowana w całkowitą nieświadomość, że The The Działanie już miało miejsce. W przypadku sendRedirect () metoda ustawia odpowiednie nagłówki i zawartość nadwozia, aby przekierować żądanie do innego adresu URL, a przeglądarka zajmuje się wysyłaniem nowego żądania do adresu URL, ponieważ URL zmienia się w przeglądarce.
Kontrola wykonania
Gdy metoda Forward () jest wykonywana w czasie żądania, bieżące żądanie zostanie przekazane do innej strony JSP, a przetwarzanie bieżącego JSP jest zakończone. Żądanie można przesłać do serwletu napisanego w języku programowania Java lub na statyczną stronę HTML. Żądanie sendRedirect () po prostu poinformuje przeglądarkę, aby poszła do innego adresu URL, wysyłając kontrolę wykonania poza aplikacją internetową. Wykorzystuje dwuetapowy proces, aby poinstruować adres URL przeglądarki, aby złożyć kolejne żądanie, które przenosi kontrolę na klienta.
Prędkość
A Forward () działa na serwerze i wykonuje szybciej niż sendRedirect (). Przekierowanie musi przejść przez przeglądarkę, a następnie poczekać, aż przeglądarka złoży nowe żądanie HTTP. Przekierowanie sprawia, że serwer wysyła kod stanu odpowiedzi HTTP 302 z nagłówkiem lokalizacji zawierającym nowy adres URL do przeglądarki, a po otrzymaniu przeglądarki kod stanu 302 składa nowe żądanie adresu URL znalezionego w nagłówku lokalizacji. Wymaga to komunikacji w obie strony z klientem, co sprawia, że jest stosunkowo wolniejszy niż do przodu ().
Naprzód vs. Przekierowanie: wykres porównawczy
Podsumowanie naprzód vs. Przeadresować
Uczenie się różnicy między metodami do przodu i przekierowania jest jedną z najważniejszych części dla programistów Java. Podczas gdy kontroler może wykonać metodę do przodu lub przekierowania pod koniec przetwarzania żądania, mają swój własny zestaw zastosowań. Przez większość czasu używałbyś metody napastnika (), ponieważ jest nieznacznie szybsza niż sendRedirect (), która w rzeczywistości wymaga komunikacji w obie strony z klientem, co sprawia, że jest wolniejsza niż do przodu. Cóż, dzięki przekierowaniu możesz skierować przeglądarkę do innej aplikacji. Nie można tego zrobić z napastnikiem. Krótko mówiąc, napastnik działa najlepiej, gdy jeden komponent musi wykonać logikę biznesową i udostępniać wyniki z innym komponentem, podczas gdy przekierowanie działa najlepiej, gdy klient powinien zostać przekierowywany z jednej strony na drugą.