Dziś wszyscy jesteśmy świadomi potrzeby tworzenia dynamiczne strony internetowe czyli takie, które potrafią zmieniać zawartość witryny w zależności od czasu lub mogą generować treść zgodnie z żądaniem otrzymanym od klienta. Jeśli lubisz kodować w Javie, z przyjemnością dowiesz się, że przy użyciu Java istnieje również sposób na generowanie dynamicznych stron internetowych i w ten sposób jest to Serwlet Java . Zanim jednak przejdziemy dalej z naszym tematem, najpierw zrozummy potrzebę rozszerzeń po stronie serwera.
Co to jest serwlet Java?
Serwlety Java to programy Java działające na serwerze WWW lub serwerze aplikacji obsługującym język Java. Służą do obsługi żądania otrzymanego z serwera WWW, przetworzenia żądania, wygenerowania odpowiedzi, a następnie wysłania odpowiedzi z powrotem do serwera WWW.
Właściwości serwletu Java
Właściwości serwletów są następujące:
- Serwlety działają po stronie serwera.
- Serwlety są w stanie obsługiwać złożone żądania otrzymywane z serwera WWW.
Architektura serwletów Java
Architekturę serwletów można przedstawić na podstawie samego obrazu, jak pokazano poniżej:

Wykonywanie serwletów Java
Zasadniczo wykonywanie serwletów obejmuje sześć podstawowych kroków:
- Klienci wysyłają żądanie do serwera WWW.
- Serwer WWW odbiera żądanie.
- Serwer WWW przekazuje żądanie do odpowiedniego serwletu.
- Serwlet przetwarza żądanie i generuje odpowiedź w postaci danych wyjściowych.
- Serwlet wysyła odpowiedź z powrotem do serwera WWW.
- Serwer WWW wysyła odpowiedź z powrotem do klienta, a przeglądarka klienta wyświetla ją na ekranie.
Omówmy teraz ekscentryczny punkt, dlaczego potrzebujemy rozszerzeń po stronie serwera?
Potrzeba rozszerzeń po stronie serwera
The Rozszerzenia po stronie serwera to nic innego jak technologie, które służą do tworzenia dynamicznych stron internetowych. W rzeczywistości, aby zapewnić możliwość tworzenia dynamicznych stron internetowych, strony internetowe wymagają kontenera lub serwera sieci Web. Aby sprostać temu wymaganiu, niezależni dostawcy serwerów WWW oferują kilka autorskich rozwiązań w postaci API ( Interfejs aplikacji do programowania).
Te Pszczoła pozwalają nam budować programy, które mogą działać z serwerem internetowym. W tym przypadku, Serwlet Java jest także jednym z komponentów API Java Platform Enterprise Edition (obecnie znana jako „Jakarta EE”) który wyznacza standardy tworzenia dynamicznych aplikacji internetowych w języku Java.
Zanim się czegoś nauczysz, ważne jest, aby wiedzieć, że jest to potrzebne, to nie jest tak, że jest to jedyna dostępna technologia do tworzenia dynamicznych stron internetowych. Technologia serwletów jest podobna do innych rozszerzeń serwerów WWW, takich jak Wspólny interfejs bramy ( CGI) skrypty i Preprocesor hipertekstu (PHP). Jednakże serwlety Java są bardziej akceptowalne, ponieważ eliminują ograniczenia Grafika komputerowa takie jak niska wydajność i niski stopień skalowalności.
Co to jest CGI (wspólny interfejs bramy)?
Grafika komputerowa w rzeczywistości jest aplikacją zewnętrzną napisaną przy użyciu dowolnego języka programowania, np C Lub C++ i jest on odpowiedzialny za przetwarzanie żądań klientów i generowanie treści dynamicznych.
JavaScript do rozwijania
W aplikacji CGI, gdy klient wysyła żądanie dostępu do dynamicznych stron WWW, serwer WWW wykonuje następujące operacje:
- Najpierw lokalizuje żądaną stronę internetową tj wymaganą aplikację CGI za pomocą adresu URL.
- Następnie tworzy nowy proces do obsługi żądania klienta.
- Wywołuje aplikację CGI w procesie i przekazuje informacje o żądaniu do aplikacji.
- Zbiera odpowiedź z aplikacji CGI.
- Niszczy proces, przygotowuje odpowiedź HTTP i wysyła ją do klienta.

Więc w Grafika komputerowa serwer musi utworzyć i zniszczyć proces dla każdego żądania. Łatwo zrozumieć, że to podejście ma zastosowanie w przypadku obsługi niewielkiej liczby klientów, ale wraz ze wzrostem liczby klientów zwiększa się obciążenie serwera, a co za tym idzie, wydłuża się czas przetwarzania żądań.
Różnica między serwletami Java a CGI
| Serwlet | CGI (wspólny interfejs bramy) |
|---|---|
| Serwlety są przenośne i wydajne. | CGI nie jest przenośne. |
| W serwletach możliwe jest udostępnianie danych. | W CGI udostępnianie danych nie jest możliwe. |
| Serwlety mogą bezpośrednio komunikować się z serwerem WWW. | CGI nie może bezpośrednio komunikować się z serwerem WWW. |
| Serwlety są tańsze niż CGI. | CGI jest droższe niż serwlety. |
| Serwlety mogą obsługiwać pliki cookie. | CGI nie obsługuje plików cookie. |
API serwletów
Serwlety są zbudowane z dwóch pakietów:
- javax.servlet (podstawowy)
- javax.servlet.http (zaawansowane)
Różne klasy i interfejsy obecne w tych pakietach to:
wilk kontra lis
| Część | Typ | Pakiet |
|---|---|---|
| Serwlet | Interfejs | javax.servlet.* |
| Żądanie serwletu | Interfejs | javax.servlet.* |
| Odpowiedź serwletu | Interfejs | javax.servlet.* |
| Ogólny serwlet | Klasa | javax.servlet.* |
| Serwlet HTTP | Klasa | javax.servlet.http.* |
| Żądanie serwletu Http | Interfejs | javax.servlet.http.* |
| Odpowiedź serwletu HTTP | Interfejs | javax.servlet.http.* |
| Filtr | Interfejs | javax.servlet.* |
| Konfiguracja serwletu | Interfejs | javax.servlet.* |
Zalety serwletu Java
- Serwlet jest szybciej niż CGI, ponieważ nie wiąże się z tworzeniem nowego procesu dla każdego nowego otrzymanego żądania.
- Serwlety napisane w Javie są niezależne od platformy.
- Usuwa obciążenie związane z tworzeniem pliku nowy proces dla każdego żądania, ponieważ serwlet nie działa w oddzielnym procesie. Istnieje tylko jedna instancja, która obsługuje wszystkie żądania jednocześnie. Oszczędza to również pamięć i umożliwia serwletowi łatwe zarządzanie stanem klienta.
- Jest to komponent po stronie serwera, więc Servlet dziedziczy bezpieczeństwo udostępniane przez serwer WWW.
- The API zaprojektowany dla Java Servlet automatycznie przejmuje zalety platform Java, takie jak niezależność od platformy i przenośność. Ponadto może oczywiście korzystać z szerokiej gamy API tworzonych na platformach Java takich jak JDBC aby uzyskać dostęp do bazy danych.
- Wiele serwerów internetowych, które nadają się do użytku osobistego lub stron internetowych o niskim natężeniu ruchu, jest oferowanych bezpłatnie lub po bardzo atrakcyjnych cenach tanie koszty np. Serwlet Java. Jednak większość komercyjnych serwerów internetowych jest dość droga, z godnym uwagi wyjątkiem Apache, który jest bezpłatny.
Kontener serwletów
Kontener serwletów , znany również jako Silnik serwletów, to zintegrowany zestaw obiektów zapewniający środowisko wykonawcze dla komponentów Java Servlet. Krótko mówiąc, jest to system zarządzający komponentami serwletu Java na serwerze WWW w celu obsługi żądań klientów WWW.
Usługi świadczone przez kontener Servlet:
- Usługi sieciowe: Ładuje klasę serwletu. Ładowanie może odbywać się z lokalnego systemu plików, zdalnego systemu plików lub innych usług sieciowych. Kontener serwletów udostępnia usługi sieciowe, przez które przesyłane są żądania i odpowiedzi.
- Dekoduj i koduj wiadomości oparte na MIME: Świadczy usługę dekodowania i kodowania wiadomości opartych na MIME.
- Zarządzaj kontenerem serwletów: Zarządza cyklem życia serwletu.
- Zarządzanie zasobami Zarządza zasobami statycznymi i dynamicznymi, takimi jak pliki HTML, serwlety i strony JSP.
- Służba Bezpieczeństwa: Obsługuje autoryzację i uwierzytelnianie dostępu do zasobów.
- Zarządzanie sesją: Utrzymuje sesję, dołączając plik a identyfikator sesji do ścieżki URL.
Wniosek
Serwlety Java są kluczowymi komponentami do definiowania logiki biznesowej i obsługi złożonych żądań internetowych. Komponenty te sprzyjają dynamicznemu rozwojowi witryny internetowej i mają duży potencjał zmiany dynamiki aplikacji. Oto niektóre z kluczowych funkcji, o których dowiadujemy się z tego artykułu:
- Serwlety Java pomagają w tworzeniu aplikacji po stronie serwera i umożliwiają radzenie sobie z dynamiczną zawartością w celu tworzenia solidnych i interaktywnych witryn internetowych.
- Gdy tylko żądanie dotrze do serwera WWW, instancja serwletu jest inicjowana za pomocą ciepło() a żądanie HTTP w zależności od jego typu może zostać obsłużone metodami doGet() lub doPost().
- Serwlety sprawiają, że nasza aplikacja internetowa jest bardziej responsywna i wydajna, ponieważ nie tworzy i nie niszczy procesu za każdym razem, gdy otrzymane zostanie żądanie.
Często zadawane pytania dotyczące serwletu Java
Pytanie 1. Jaki jest cykl życia serwletu Java?
Serwlet Java ma wstępnie zdefiniowany cykl życia, począwszy od inicjalizacji (alokacja pamięci), aż do zniszczenia obiektu (zwolnienie alokacji pamięci). Odbywa się to w następujących krokach:
- init() – wywoływana jest natychmiast po otrzymaniu żądania przez serwer WWW i zainicjowaniu nowej instancji serwletu.
- service() – do obsługi żądania klienta i przekierowania żądania do odpowiedniej funkcji doGet() lub doPost()
- zniszcz() – wywoływana po obsłużeniu żądania, wysłaniu odpowiedzi do klienta i na koniec zwolnieniu pamięci przydzielonej serwletowi.
Pytanie 2. Jak skonfigurować serwlet Java?
Konfiguracja serwletu Java jest zdefiniowana wewnątrz pliku deskryptor wdrożenia plik - web.xml. Chociaż jest to już przeżytek, ponieważ większość aplikacji opartych na serwletach używa obecnie konfiguracji opartej na adnotacjach do konfigurowania serwletu Java przy użyciu adnotacji @WebServlet.
Przykład: @WebServlet(name = MójServlet, urlPatterns = /myServlet)
Pytanie 3. Co to jest filtr serwletów?
Filtr serwletów to dodatkowy komponent do wykonywania prac przed przetwarzaniem żądań internetowych, takich jak rejestrowanie, monitorowanie, debugowanie i rozwiązywanie problemów.