Podręcznik Java Servlet dla początkujących

Java Servlet to program po stronie serwera, napisany w tym samym języku programowania, który odbiera sygnały klienta i odsyła do niego odpowiedzi. Jest to kluczowy element, który generuje typową Java EE, z wyjątkiem JSP, EJB, XML i innych powiązanych technologii. Aplikację można spakować do pliku WAR (Web AR chive) do wdrożenia na serwerze sieciowym. Serwer, który może uruchomić serwlet Java, nazywa się kontenerem. Program działający na takim serwerze może tworzyć dynamiczne strony internetowe.

Serwlet Java: podstawy

Najbardziej znane i szeroko stosowane są kontenery Tomcat i JBoss. Technicznie servlet - jest to normalne Java klasy, który ma rozszerzenie dla ogólnego protokołu klient-serwer lub HTTP. W praktyce jest używany do obsługi żądań poprzez ponowne zdefiniowanie HttpServlet GET i POST, odpowiednio. Pojemnik Java Servlet zapewnia Http.ServletRequest i Http.ServletResponse - urządzeń, które działają w ramach „challenge-response i zazwyczaj używane w połączeniu z JSP do generowania dynamicznej zawartości


Typowa modeli scenariusz:..
  • JSP reprezentujący użytkownikom wprowadzania danych
  • serwlet odbiera sygnały wejściowe, przetwarza je i wysyła odpowiedź
  • w odniesieniu do jakości pracy, używa specjalnych filtrów
  • filtry Java servlet -... jest podłączony Komponenty Java używane do przechwytywania i przetwarzania zapytań przed wysłaniem ich do serwletów i idpovidi po jego kodem, a przed pojemnika wysyła odpowiedź do klienta Typowe zadania wykonywane z filtrami:
  • .Rejestrowanie parametrów zapytania do rejestracji pliku.
  • Uwierzytelnianie i autoryzacja żądań zasobów.
  • Sformatuj treść zapytania lub nagłówka przed wysłaniem go do serwletu.
  • Kompresja danych odpowiedzi wysłanych do klienta.
  • Zmiana odpowiedzi, dodanie niektórych plików cookie.
  • Informacje nagłówkowe Java Servlet.
  • Filtry są połączone i skonfigurowane w pliku deskryptora wdrażania (web.xml). Serwery i filtry nie znają się nawzajem, dlatego możesz dodać lub usunąć filtr, edytując plik web.xml. Dozwolone jest posiadanie wielu filtrów dla jednego zasobu lub utworzenie łańcucha filtrów dla web.xml lub uruchomienie filtrów Java Servlet poprzez implementację interfejsu javax.servlet.Filter.


    Główne funkcje Serwlet

    Równoległe żądania serwera są przesyłane strumieniowo, co zapewnia ważne wielowątkowość i równoległość w sieci. Najważniejsze cechy:
  • Przenośność. Ponieważ Java jest niezależna od platformy, to samo dotyczy serwletów. Można na przykład utworzyć go w systemie operacyjnym Windows, aby programiści GlassFish używali go jako serwera WWW, a następnie mogli uruchamiać go na dowolnym innym systemie operacyjnym, takim jak Unix, Linux i serwer WWW Apache Java Servlet. Ta funkcja sprawia, że ​​jest przenośny i jest to jego główna przewaga nad CGI.
  • Efektywność i skalowalność. Gdy serwlet zostanie wdrożony i pobrany na serwer, może natychmiast rozpocząć wykonywanie żądań klientów. Jest wywoływany przez strumień świetlny, więc kilka żądań klienta może być wypełnionych w tym samym czasie przy użyciu funkcjiwielowątkowość Java. W przeciwieństwie do CGI, gdzie serwer inicjuje nowy proces dla każdego żądania klienta.
  • Niezawodność. Postępując zgodnie z najwyższymi funkcjami Java, takimi jak usuwanie śmieci, obsługa wyjątków, menedżer zabezpieczeń Java i inne, jest mniej podatny na problemy z zarządzaniem i wycieki pamięci. To sprawia, że ​​tworzenie aplikacji jest bezpieczne i wolne od błędów.
  • Potrzeba korzystania z dynamicznych stron internetowych

    Istnieje wiele powodów, dla których firma chciałaby tworzyć dynamiczne strony internetowe "w locie", na przykład gdy dane na stronie internetowej często się zmieniają. Serwisy informacyjne i pogodowe zazwyczaj polegają na CGI, aby zachować świeże treści, które nie wymagają stałej uwagi od programistów. Strony internetowe handlu elektronicznego, które podają aktualne ceny i poziomy zapasów, wykorzystują CGI do odbierania treści na żądanie, pobierając je z wewnętrznej infrastruktury firmy.
    Wielu użytkowników ma doświadczenie w korzystaniu z technologii Java w celu tworzenia serwisów internetowych opartych na CGI, ale serwlety Java są wydajniejsze, wydajniejsze, łatwiejsze w użyciu i tańsze niż tradycyjne alternatywy dla CGI. Zalety serwletów Java:
  • Efektywność. W tradycyjnym CGI każde żądanie HTTP uruchamia nowy proces CGI. Nawet jeśli jego kod jest doskonale zaimplementowany, często występuje znaczny nadmiar, nie tylko podczas uruchamiania procesu, ale także podczas jego wykonywania. Gdy używane są serwlety, maszyna JVM pozostaje załadowana do pamięci, a każde żądanie przetwarzane jest przez strumień Java. Jako przykład serwletu Java, jeśli w tradycyjnym modelu CGI istnieje wiele równoczesnych zapytań X, to znaczyże kod programu jest ładowany do pamięci X razy. Staje się przeciążeniem na serwerze sieciowym. Jednak w środowisku serwletów istnieją strumienie X, w których uruchamiana jest tylko jedna kopia tej klasy. Rezultatem jest zwiększona wydajność i skalowalność na wielu platformach.
  • Wygoda. Podczas korzystania z programu nie ma sensu uczyć się nowego języka, na przykład Perl, tylko do wykonywania funkcji CGI. Ponadto serwlety mają dużą infrastrukturę dla wielu zadań HTML, co znacznie przyspiesza proces programowania.
  • Moc - niestety tradycyjne skrypty CGI pozostawiają wiele do życzenia. Na przykład ich zwykłe programy nie mogą rozmawiać bezpośrednio z serwerami sieci Web, co oznacza, że ​​musisz utworzyć cały interfejs. Serwlety mogą wchodzić w interakcje bezpośrednio z serwerami sieciowymi, upraszczając operacje wymagające bezpośredniego dostępu do hurtowni danych. Są również wyjątkowe, ponieważ mogą wymieniać dane z innymi serwletami i utrzymywać informacje między żądaniami, co bardzo ułatwia śledzenie sesji.
  • Przenośność Javiera rozciąga się bezpośrednio na serwlety. W rzeczywistości prawie każdy duży serwer WWW, który jest aktualnie używany, obsługuje serwlety Java bezpośrednio lub za pośrednictwem modułu.
  • Ekonomia. W zakresie projektowania, wdrażania aplety znacznie tańsze niż inne opcje, które wymagają niestandardowego kodowania prawidłowo współdziałać z serwerów internetowych. Przekierowanie Java Servlet jest gotowe do pracy i może zminimalizować koszty prowadzenia działalności bez rezygnacji z korzyści dynamicznychtreść.
  • Tworzenie struktury katalogu

    Aby rozpocząć, utwórz następującą strukturę katalogów.
    Gdzie w folderze:
  • Wdróż - umieść utworzony plik.
  • Src - Umieść pliki źródłowe pakietu Java net.codejava.servlet.
  • WebContent - Zapisuj strony JSP i inne zasoby sieciowe.
  • WebContent WEB-INF - zainstalowany jest deskryptor web.xml.
  • WebContent WEB-INF - Skompilowane klasy.
  • Następnie utwórz plik źródłowy o nazwie Java QuickServlet.java w katalogu serwletów src net codejava z następującym kodem.
    Jest serwlet kilka metod HttpServlet
  • init () - metoda powoduje gdy dostęp do pierwszego klienta. Zazwyczaj wprowadza się tutaj kod inicjalizacyjny.
  • doGet () - działa za każdym razem, gdy żądanie HTTP jest GET.
  • serwlet przedstawia dwa elementy:
  • HttpServletRequest - obiekt Okłady nagłówków żądania HTTP, aby uzyskać kontrolę parametrów GET /POST i inne nagłówki HTTP wysyłane przez klienta sposobami getParameter () i (getHeader ).
  • ​​
  • HttpServletResponse - stosowane w odpowiedzi na to żądanie http wykonuje ustawienie nagłówki reakcji i wysyła HTML-zawartości z powrotem do użytkownika. W metodzie doGet () wysyła prosty kod HTML, który wysyła wiadomości, takie jak „Cześć, jestem aplet Java!».
  • Sposób realizacji żądań klienta

  • doPost () - spowodowało w tym czasie, gdy użytkownik zgłasza żądanie POST HTTP.
  • doGet () - i rozumie Http.ServletRequest Http.ServletResponse jako argumentów. W takim przypadku wartości dwóch parametrów szerokości i wysokości prostokąta są uzyskiwane z zapytania, aby obliczyć obszar i wysłaćwynik z powrotem do klienta.
  • Destroy () - Kontener wywoła go, gdy będzie musiał usunąć przystawki Java ee Servlet.
  • Zapisywanie stron JSP

    Utwórz plik o nazwie index.jsp w katalogu WebContent o następującej treści.
    Na tej stronie strona JSP:
  • Umieść hiperłącze za pomocą atrybutu href = Quick.Servlet, który wskazuje względną ścieżkę serwletu i mapowanie adresu URL dla tego hiperłącza.
  • Kliknięcie tego linku powoduje wysłanie żądania HTTP GET do serwera i wywołanie metody doGet ().
  • Aby zademonstrować wysłanie żądania HTTP, utworzyli prosty formularz z dwoma polami tekstowymi: szerokość i wysokość.
  • Atrybut formularza w akcji jest ustawiony na ścieżkę względną.
  • Przycisk "Wyślij" nazywa się "Oblicz".
  • Strona JSP będzie wyglądać następująco.

    Zapowiedzi i ustawienia serwletów Java

    Aby serwlet służył do obsługi zapytań użytkowników, należy zadeklarować i skonfigurować jego mapowanie w pliku deskryptora WWW. Utwórz plik XML z rozszerzeniem web.xml poniżej katalogu WebContent WEB-INF z następującym kodem XML.
    Oczywiście, aplet jest deklarowany za pomocą elementu i jego elementów potomnych, które określają jego opisową nazwę i określają pełną nazwę klasy. Jest skonfigurowany do obsługi zapytań za pomocą elementu i jego części podrzędnych, które określają nazwę zadeklarowaną wraz z elementem i wzorzec adresu URL, który ma być odwzorowany w serwlecie. Szablon może być dokładnym dopasowaniem do katalogu.

    Wykonywanie kompilacji

    Przed ukończeniem kompilacji upewnij się, żeustawić zmienną środowiskową PATH, która zawiera katalog JDK_HOMEbin, dzięki czemu można uzyskać dostęp do wiersza poleceń i dysponować plik, który jest zazwyczaj dostarczane przez kontener serwletów. Podczas korzystania z pliku Tomkat jest umieszczony w TOMCAT_HOMElib nazywa. Otwarty system operacyjny wiersza poleceń i zmienić katalog roboczy na QuickServlet, jak wskazano w strukturze. Wprowadź następujące polecenie:. Javac cp TOMCAT_HOME lib servlet-api.jar „-d CLASS_DIR SRC_DIR QuickServlet.java Zastępuje nazwy TOMCAT.HOME, CLASS_DIR i SRC_DIR wartość. TOMCAT_HOME To Regulacja katalogu na komputerze w folderze Jeśli ścieżka zawiera. luki, umieścić go w następujący sposób:.. CLASS_DIR = WebContent klas WEB-INF SRC_DIR = src codejava aplet netto Ten zespół skompylyruet plik QuickServlet.java i umieścić wygenerowany .class klas WebContent WEB-INF

    Pakowanie aplikacji internetowych

    Standardowy sposób wdrażania aplikacji Java ee rozszerzenie jego opakowania wojennych. W wierszu polecenia wtryskiwanego zespołu zawsze kończy się punkt:
  • jarcfvdeployQuickServletApp.war -C WebContent.
  • Słoik umieści wszystko w jednym katalogu w formacie archiwum zip o nazwie Quick.ServletApp.war w katalogu. Teraz wdrożyć plik Quick.ServletApp.war na serwerze, skopiuj go do Tomcat. Uruchom program uruchamiając katalogu Tomcat 7.exe. Po zalogowaniu do konsoli pokazuje, że Quick.ServletApp.war rozbudowany serwer plików i nasłuchuje na porcie 8080. numerem

    Testowanie QuickServletApp

    Teraz otwórz przeglądarkę internetową i wpisz następujący tekst w pasku adresu: http: //lokalny: 8080 /QuickServletApp. Ponieważ nie określa konkretnej strony jako domyślny index.jsp ładowany niezależnie. aby sprawdzićSerwlet żądający HTTP GET, kliknij hiperłącze "Kliknij tutaj, aby wysłać żądanie GET." Aby to sprawdzić żądania HTTP POST, kliknij przycisk Wstecz przeglądarki i wprowadzić dwa numery w polach Szerokość i Wysokość tekstowych. Kliknij przycisk "Oblicz", a on zwróci obliczony wynik obszaru.

    Przykłady Tomcat

    servlet - komponent web Java, udało jej pojemnika, na przykład, Tomcat, który generuje dynamiczne treści w odpowiedzi na żądania klientów. Pojemnik lub silnik serwletu jest rozszerzeniem serwera WWW, który zapewnia funkcjonalność serwletu. Kontener zawiera i zarządza serwletami przez cały cykl ich życia. Interfejs Servlet - centralna abstrakcja API Java. HttpServlet - najczęstszą aplet, który obsługuje żądań HTTP podklasie GenericServlet, która implementuje interfejs Servlet. Sam interfejs Servleta ogłasza te abstrakcyjne metody. Cykl życiowy serwletów: voidinit (ustawienie Servlet.Config) voiddestroy () prośba voidservice żądanie Java Servlet, Servlet.Response odpowiedź) oraz informacje konfiguracyjne serwletu: Servlet.Config getServlet.Config () String getServlet.Info ().

    Funkcje serwera Java

    JSP to kolejny skuteczny sposób tworzenia dynamicznych treści internetowych przy użyciu Javy. Najprostszym sposobem, aby wyjaśnić różnicę między nimi - jest uznanie, że serwlet - do HTML Java i JSP - Java w HTML. Oba sposoby są skuteczne, i mogą być wykorzystywane niezależnie od siebie, ale są pewne różnice:
  • Zazwyczaj serwlety są szybsze niż JSP, ale mogą być opracowane serwletów JSP Java.
  • Twórca stron WWW w języku Java musi znać obie technologie i ich metodyuzupełniają się w jednej implementacji.
  • Wiele funkcji JSP można uzyskać po stronie klienta przy użyciu javascript. Zmniejsza to obciążenie serwera w okresach maksymalnego wykorzystania i jest często metodą stosowaną przez duże przedsiębiorstwa o stale wysokim natężeniu ruchu.
  • Chociaż autonomiczne aplikacje Java osiągnęły szczyt kilka lat temu, dynamiczna zawartość internetowa oparta na języku Java nadal cieszy się dużym zainteresowaniem firm z całego świata. Jeśli użytkownik nie używa obecnie Java Servlets do tworzenia dynamicznych treści, traci interesujące pole z nieograniczonymi możliwościami kariery.

    Powiązane publikacje