Chciałbym dołączyć zewnętrzną stronę internetową (np. www.example.com) do div na mojej stronie jsp. Nie chcę używać ramek, bo nie jest to wskazane.

Próbowałem wyszukać rozwiązanie online, ale wszystko, co znalazłem, zawierało wewnętrzną stronę internetową (np. webpage.jsp)…

Naprawdę docenię twoją pomoc.

jsp
5
DalNM 8 sierpień 2011, 14:53

2 odpowiedzi

Najlepsza odpowiedź

Po pierwsze, używanie ramek rzeczywiście nie jest wskazane, jeśli dotyczy dzielenia/włączania lokalnej treści (co jest/było najczęstszym nadużywaniem ramek). Ale zdecydowanie jest to wskazane, jeśli dotyczy treści zewnętrznych. W przypadku treści lokalnych powinieneś raczej używać dołączeń po stronie serwera, takich jak <jsp:include>.

Co do konkretnego pytania, jeśli odpowiedź HTML zewnętrznej strony internetowej nie koliduje z odpowiedzią HTML Twojej własnej strony JSP (tj. nie zwraca kompletnego dokumentu <html>, który spowodowałby, że Twoja ostateczna odpowiedź HTML byłaby kompletna nieprawidłowy z powodu zduplikowanych/zagnieżdżonych elementów <html>, ale zwraca jakiś niezależny od kontekstu fragment HTML, np. <span>blah</span>), możesz użyć JSTL <c:import> w tym celu.

<c:import url="http://external.com/some/fragment.html" />

Ale jeśli zwraca kompletny dokument <html> i/lub jest zależny od kontekstu, to naprawdę musisz użyć <iframe> lub umieścić między nimi serwlet proxy. Aby zapoznać się z konkretnym przykładem uruchomienia takiego serwletu, sprawdź odpowiedź: Spraw, aby HttpURLConnection ładował strony internetowe z obrazami.

7
Community 23 maj 2017, 15:33

Jeśli chcesz dołączyć stronę zewnętrzną tylko do tagu div, napotkasz kilka problemów, żeby wymienić tylko kilka:

  1. obsługa linków wewnątrz zewnętrznej strony internetowej
  2. zarządzanie plikami cookie
  3. zarządzanie zasobami (obrazy, css, javascript)

Istnieją różne opcje obsługi takich wymagań:

  1. iFrame; to nie jest miłe, ale dlaczego nie jest wskazane?
  2. odwrotny serwer proxy po stronie serwera; może stać się skomplikowane, ponieważ musisz filtrować linki zewnętrzne (patrz #3)
  3. prosta ramka (jakoś przestarzała)
  4. dobrze zdefiniowany interfejs dostarczany przez system zewnętrzny (np. niektóre rzeczy RESTful)

Podsumowując: nie ma łatwego sposobu na udostępnienie strony zewnętrznej tylko w div.

1
home 8 sierpień 2011, 18:33