Servlet Lifecycle নির্দেশ করে কীভাবে একটি Servlet তৈরি হয়, ক্লায়েন্টের অনুরোধ (Request) পরিচালনা করে এবং শেষ (Destroy) হয়। Servlet Lifecycle তিনটি প্রধান ধাপে বিভক্ত:
- Initialization (init):
- Servlet প্রথমবার লোড হলে
init()মেথড কল হয়।
- Servlet প্রথমবার লোড হলে
- Request Handling (service):
- প্রতিটি ক্লায়েন্ট রিকোয়েস্টে
service()মেথড কল হয়, যাdoGet(),doPost()ইত্যাদি মেথডে ডেলিগেট করে।
- প্রতিটি ক্লায়েন্ট রিকোয়েস্টে
- Destruction (destroy):
- Servlet আনলোড হওয়ার আগে
destroy()মেথড কল হয়।
- Servlet আনলোড হওয়ার আগে
Servlet Lifecycle ধাপসমূহ
1. Servlet Initialization (init):
- কাজ:
- Servlet তৈরি হলে
init()মেথড একবার কল হয়। - এটি সার্ভার বা কন্টেইনারের মাধ্যমে ইনস্ট্যান্স তৈরি এবং ইনিশিয়ালাইজেশন পরিচালনা করে।
- Servlet তৈরি হলে
উদাহরণ:
@Override public void init() throws ServletException { System.out.println("Servlet Initialized."); }
2. Request Handling (service):
- কাজ:
- প্রতিটি HTTP রিকোয়েস্ট
service()মেথডের মাধ্যমে পরিচালিত হয়। service()মেথডdoGet(),doPost()ইত্যাদি মেথডে ডেলিগেট করে।
- প্রতিটি HTTP রিকোয়েস্ট
উদাহরণ:
@Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { resp.setContentType("text/html"); resp.getWriter().println("<h1>Processing GET Request</h1>"); System.out.println("GET Request Processed."); } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { resp.setContentType("text/html"); resp.getWriter().println("<h1>Processing POST Request</h1>"); System.out.println("POST Request Processed."); }
3. Servlet Destruction (destroy):
- কাজ:
- Servlet আনলোড হওয়ার আগে
destroy()মেথড কল হয়। - রিসোর্স মুক্ত করার জন্য এটি ব্যবহৃত হয় (যেমন ডেটাবেস সংযোগ বন্ধ করা)।
- Servlet আনলোড হওয়ার আগে
উদাহরণ:
@Override public void destroy() { System.out.println("Servlet Destroyed."); }
উদাহরণ: Servlet Lifecycle প্রদর্শন
ExampleServlet.java
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@WebServlet("/lifecycle")
public class ExampleServlet extends HttpServlet {
@Override
public void init() throws ServletException {
System.out.println("Servlet Initialized.");
}
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
resp.setContentType("text/html");
resp.getWriter().println("<h1>Welcome to Servlet Lifecycle Example</h1>");
System.out.println("GET Request Processed.");
}
@Override
public void destroy() {
System.out.println("Servlet Destroyed.");
}
}
Lifecycle Work Process (কাজের প্রক্রিয়া)
1. Servlet Initialization:
- ব্রাউজারে
/lifecycleরিকোয়েস্ট করলে Servlet প্রথমবার লোড হয়। Console Output:
Servlet Initialized.
2. Request Handling:
- HTTP GET Request:
- ব্রাউজার
/lifecycleপেজ লোড করলেdoGet()মেথড কল হয়। - Response:
<h1>Welcome to Servlet Lifecycle Example</h1> Console Output:
GET Request Processed.
- ব্রাউজার
3. Servlet Destruction:
- সার্ভার বন্ধ হলে বা Servlet আনলোড হলে
destroy()কল হয়। Console Output:
Servlet Destroyed.
Servlet Lifecycle Sequence
- Servlet Class লোড হয়।
- Servlet Object তৈরি হয়।
init()মেথড কল হয়।service()মেথড এক্সিকিউট হয় এবং রিকোয়েস্ট অনুযায়ীdoGet(),doPost()মেথডে ডেলিগেট করে।- Servlet আনলোড হলে
destroy()মেথড কল হয়।
Lifecycle Diagram
+----------------------+
| Servlet Loaded |
+----------------------+
↓
+----------------------+
| init() |
+----------------------+
↓
+----------------------+
| service() |
+----------------------+
↓
+------------------------------------+
| doGet(), doPost(), doPut(), etc. |
+------------------------------------+
↓
+----------------------+
| destroy() |
+----------------------+
বাস্তবজীবনে Servlet Lifecycle এর ব্যবহার
- Initialization:
- ডেটাবেস কানেকশন স্টার্ট করা।
- কনফিগারেশন লোড করা।
- Request Handling:
- ক্লায়েন্টের HTTP রিকোয়েস্ট প্রসেস করা এবং ডাইনামিক রেসপন্স তৈরি করা।
- Destruction:
- ব্যবহার না করা রিসোর্স (যেমন ডেটাবেস কানেকশন) মুক্ত করা।
উপসংহার
Servlet Lifecycle তিনটি ধাপ (Initialization, Request Handling, এবং Destruction) এর মাধ্যমে কাজ করে। এটি ওয়েব অ্যাপ্লিকেশনের কার্যপ্রণালী এবং রিসোর্স ব্যবস্থাপনার একটি গুরুত্বপূর্ণ অংশ। Servlet Lifecycle বোঝা এবং যথাযথ ব্যবহার ওয়েব অ্যাপ্লিকেশন উন্নয়নে কার্যকর ভূমিকা রাখে।
Content added By
Read more