2011-01-12 9 views
11

Jest nieco niejasna różnica między zasadami: encodeURL i encodeRedirectURL, czy istnieją przykłady takich dokładnych reguł? Kiedy wyjś cie encodeURL różni się od encodeRedirectURL?Różnica między encodeURL i encodeRedirectURL

Dla konkretnego przykładu, już generuję adres URL przekierowania, którego użyję pod numerem response.sendRedirect(url). Mam ten adres URL już zakodowane, ale chcę, aby dodać parametr do tego co ma wartość, która jest inna url:

param2=http://google.com 

Która z tych dwóch funkcji mogę użyć do zakodowania tego?

Odpowiedz

5

encodeURL() jest używany do wszystkich adresów URL na wyjściu serwletu. Pomaga to kodować identyfikatory sesji z adresem URL.

encodeRedirectURL() jest używany tylko z res.sendRedirect. Jest również używany do kodowania identyfikatorów sesji z URL-em, ale tylko podczas przekierowywania.

+6

Kiedy wyjście encodeURL różnią się od encodeRedirectURL? –

10

Salam Alekom Abduallah, Rozejrzałem się i spojrzał na odpowiedź wiedziałem, że znajdę go w obu stackoverflow lub coderanch i tam znalazłem answer Charles Lyons autor książki w ręku teraz to był wesoły zbieg okoliczności.

pisał 8/9/2008 11:41 Dokładnie - z tą różnicą, że encodeURL zawsze zapisuje identyfikator sesji do adresu URL (jeśli jest wymagane np bo ciasteczka są niepełnosprawnej), natomiast encodeRedirectURL zawiera dodatkowe logika określić, czy pożądane jest zapisanie identyfikatora sesji. Jest to bardzo zły pomysł, aby dać zagranicznym stronom internetowym identyfikator sesji, na przykład , ponieważ wtedy mogliby podszywać się pod sesję użytkownika. Stąd encodeRedirectURL wstawi plik jsessionid tylko pod adres URL, jeśli ten URL znajduje się w bieżącej aplikacji sieci Web i nie wykonuje żadnego przepisywania w inny sposób niż .

Charles Lyons (SCJP 1.4, kwiecień 2003 roku; SCJP 5, grudzień 2006; SCWCD 1.4b, kwiecień 2004) Autor OCEJWCD Study Companion for Oracle egzamin 1Z0-899 (ISBN 0955160340)

również ja które oceniły tę answer zbyt który został opublikowany wcześniej

pisał 4/19/2006 8:02 AM Quote Post do moderatora Witam,

encodeURL służy do kodowania URL do śledzenia sesji w mechanizm przekazywania i dołączania. EncodeRedirectURL koduje określony adres URL do użycia w metodzie sendRedirect.

Główną różnicą między nimi jest, realizacja metody encodeRedirectURL zawiera logikę do ustalenia, czy identyfikator sesja musi być zakodowany w adresie URL w przypadku, gdy jesteś przekierowanie URL do różnych sytuacji, gdy sesja informacja nie jest wymagana lub jest nieprawidłowa. Metoda encodeURL nie dołącza identyfikatora widoku , jeśli włączone są pliki cookie.Oprócz tego encodeRedirectURL nie dołączają informacji o sesji, jeśli adres URL to przekierowany do innego kontekstu (aplikacja internetowa). Ponieważ reguły określające to ustalenie mogą się różnić od tych używanych do uzyskania decydują, czy kodować normalne łącze, ta metoda jest oddzielna od metody metody encodeURL.

Mam nadzieję, że ci to pomoże.

Dzięki

narendra Dhande