Servlet konteyneri servletin həyat dövrünü necə idarə edir? Hansı metodlar çağırılır və hansı vaxtlarda?
AI-dan cavab
sobes.tech Süni İntellekt
Konteyner servletin həyat dövrünü aşağıdakı metodlar dəstəsi ilə idarə edir: init, service, destroy.
-
Servlet sinifinin yüklənməsi: Konteyner ilk sorğu alanda və ya tətbiq başladığında (əgər konfiqurasiya edilibsə).
-
Servlet nümunəsinin yaradılması: Konteyner bütün tətbiq üçün bir nümunə yaradır.
-
init()metodunun çağırılması: Nümunə yaradıldıqdan sonrainit(ServletConfig config)metodu bir dəfə çağırılır. Bu metodda konfiqurasiya edilə bilər, resurslar yüklənə və servlet konfiqurasiyası alınabilir. Bu metod yenidən çağırılmamalıdır, servlet məhv edilənə və yenidən yaradılana qədər.// java public void init(ServletConfig config) throws ServletException { // Servletin ilkinləşdirilməsi this.config = config; // İlkin parametrlərin alınması String param = config.getInitParameter("someParam"); } -
service()metodunun çağırılması: Hər daxil olan sorğu üçün konteynerservice(ServletRequest request, ServletResponse response)metodunu çağırır. Bu metod sorğunu emal edir və cavab yaradır. Adətən, o,HttpServletsinifindəkidoGet,doPostvə s. kimi HTTP-ə xüsusi metodlara yönləndirir.servicemetodu çoxmərhələli, konteyner onun bir neçə sorğu üçün eyni zamanda çağırılmasına imkan verir.// java public void service(ServletRequest request, ServletResponse response) throws ServletException, IOException { // Sorğunun növünü yoxlama və müvafiq metodu çağırma if (request instanceof HttpServletRequest && response instanceof HttpServletResponse) { // HttpServlet-ə yönləndirmə super.service(request, response); } else { // Digər növ sorğuların emalı throw new ServletException("Yalnız HTTP sorğuları dəstəklənir"); } } // HttpServlet-də doXXX metodunun nümunəsi protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // GET sorğusunun emalı response.setContentType("text/html"); PrintWriter out = response.getWriter(); out.println("<h1>Salaam</h1>"); } -
destroy()metodunun çağırılması: Konteynerdestroy()metodunu bir dəfə çağırır, servlet nümunəsi məhv edilənə qədər. Bu, tətbiq dayandırıldıqda və ya servlet konteynerdən silindikdə baş verir. Bu metodda resurslar azad edilir (məsələn, bazaya bağlantılar bağlanır və ya fayllar bağlanır).destroyçağırıldıqdan sonra konteyner servlet nümunəsi üçün çöp toplayıcıyı işə sala bilər.// java public void destroy() { // Resursların azad edilməsi // Məsələn, bağlantıların bağlanması }
Həyat dövrü aşağıdakı cədvəldə təqdim oluna bilər:
| Metod | Çağırılır | Təyinatı |
|---|---|---|
init() |
Bir dəfə servlet nümunəsi yaradıldıqdan sonra | İlkinləşdirmə, resursların yüklənməsi |
service() |
Hər daxil olan sorğu üçün | Sorğunun emalı, cavabın yaradılması |
destroy() |
Bir dəfə servlet nümunəsi məhv edilənə qədər | Resursların azad edilməsi, işin tamamlanması |
Konteyner təmin edir ki, init service çağırılmadan əvvəl, destroy isə son service çağırışından sonra çağırılacaq. service metodları paralel şəkildə çağırıla bilər.