Articles

JSP life cycle events explained

JSP są właściwie serwletami, jak już widzieliście. Kontener przekonwertuje wszystkie pliki JSP na serwlety przed ich wykonaniem. JSP to prosty sposób na tworzenie komponentów zawierających kod inny niż java.

po utworzeniu i wdrożeniu strony JSP kontener wykona pewne zdarzenia cyklu życia, co obejmuje również wywołanie niektórych swoich metod podobnych do zdarzeń cyklu życia servleta.

  1. JSP page translation (validation, translation, compilation phases)
  2. Load Class
  3. Instantiate
  4. jspinit method is called
  5. _jspservice method is called
  6. jspdestroy method is called

tłumaczenie strony JSP (Walidacja, tłumaczenie, fazy kompilacji)

walidacja jest wykonywana przed tłumaczeniem. Sprawdzanie składni odbywa się i wszystkie odwołania do bibliotek znaczników, akcji i funkcji EL w JSP są sprawdzane, aby upewnić się, że istnieją i są dostępne dla strony, a jeśli wystąpią jakiekolwiek problemy, wystąpi błąd i uniemożliwia kontynuowanie procesu tłumaczenia.

przed walidacją strona JSP jest konwertowana do widoku XML, a ten widok xml jest następnie sprawdzany i tłumaczony.

początkowa strona wejścia JSP jest tłumaczona na kod źródłowy servleta. Robiąc to, napisze instrukcje print dla każdej z Twoich linii innych niż java w JSP. Ten wygenerowany servlet powinien zaimplementować HttpJspPage lub jego rodzica jsppage w oparciu o to, czy środowisko jest oparte na HTTP, czy nie. Related blog: angular training in Chennai

  • dostawca Zazwyczaj będzie miał wyspecjalizowany serwlet bazowy JSP, rozszerzający i wdrażający wszystkie wymagane klasy lub Interfejsy. W Tomcacie nazywa się to org.Apacz.jasper.runtime.HttpJspBase. HttpJspBase rozszerza HttpServlet i GenericServlet oraz implementuje HttpJspPage, JspPage, Serializable, Servlet, ServletConfig.

kod źródłowy Servleta jest następnie kompilowany do pliku klasy servleta.

wyjścia

  • w fazie tłumaczenia są dwa wyjścia.
  • pierwszy to tymczasowe wyjście: plik źródłowy Javy dla serwletu.
  • drugi to skompilowany plik klasy ze źródła serwletu.
  • plik klasy jest zachowywany do wykorzystania w przyszłości, a większość kontenerów JSP może zachować lub dać ci opcję, dzięki której możesz zachować źródło serwletu do celów debugowania.
  • w Tomcacie, wygenerowany Servlet Java source i skompilowana Klasa podczas tłumaczenia JSP będą domyślnie przechowywane w katalogu<Tomcat-Installation-Directory>/work/Catalina/localhost/<context – directory > /org/apache/jsp.

Timing

  • mimo że kontener JSP ma swobodę wyboru, Kiedy nastąpi tłumaczenie, domyślnie (w większości przypadków) JSP jest kompilowany do serwletu, a następnie ładowany przy pierwszym dostępie do niego.
  • może to spowodować niewielkie opóźnienie dla pierwszego żądania, ale nie będzie żadnych opóźnień w kolejnych żądaniach.
  • na niektórych serwerach aplikacji można również wstępnie skompilować JSP przed dodaniem ich do słoików.

błędy

  • jeśli strona nie zostanie przetłumaczona, żądanie HTTP dla strony powinno spowodować kod statusu 500 (błąd serwera) przekazany z powrotem w odpowiedzi HTTP.

Klasa obciążenia

  • wygenerowana Klasa serwletu jest ładowana za pomocą programu class loader aplikacji.

Instantiate

  • tworzona jest instancja klasy servlet.
  • dla każdej deklaracji mapowania serwletu JSP w sieci.xml (podobnie jak servlets), oprócz standardowej instancji pliku JSP tworzy się nową instancję. Jeśli mam stronę JSP w korzeniu kontekstu, a także zarejestrowałem tę samą stronę JSP w sieci.xml, stworzę dwie instancje tego JSP.

metoda jspInit nazywa się

  • możesz nadpisać tę metodę.

_jspservice metoda jest wywoływana

  • gdy są wykonywane żądania, kontener wywołuje wygenerowaną metodę Servlet service(request, response), która powinna wywołać metodę _jspService(), przekazując parametry żądania i odpowiedzi.
  • nie powinniśmy nadpisywać _jspservice () z naszej strony JSP. Ta metoda reprezentuje źródło strony w postaci kodu Java — to generatory stron kontenera muszą zaimplementować tę metodę dla każdego pojedynczego JSP.
  • jednak Specyfikacja JSP jest wystarczająco elastyczna, aby pomieścić każdy protokół żądania /odpowiedzi, który chcesz zaimplementować poprzez nadpisanie tej metody; i tylko w tym celu musisz nadpisać metodę _jspService.

metoda jspDestroy jest wywoływana

  • zanim instancja serwletu JSP zostanie anulowana i zostaną usunięte śmieci

ważne punkty do zapamiętania

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.