ServletConfig হলো Java Servlet API-এর একটি ইন্টারফেস, যা প্রতিটি Servlet-এর কনফিগারেশন সম্পর্কিত তথ্য সংরক্ষণ এবং সরবরাহ করে। এটি মূলত ডিপ্লয়মেন্ট ডেসক্রিপ্টর (যেমন, web.xml) বা অ্যানোটেশন থেকে কনফিগারেশন ডেটা নিয়ে কাজ করে এবং Servlet-এর লাইফসাইকেল ম্যানেজমেন্টের জন্য ব্যবহার হয়।
ServletConfig-এর কাজ
ServletConfig এর প্রধান কাজ হলো:
- কনফিগারেশন ডেটা সরবরাহ করা:
Servlet-এর ইনিশিয়ালাইজেশনের জন্য প্রয়োজনীয় ডেটা সরবরাহ করা। - ServletContext অ্যাক্সেস:
অ্যাপ্লিকেশন-লেভেলের ডেটা পেতে এবং শেয়ার করতে সাহায্য করে। - ডিপ্লয়মেন্ট ডেসক্রিপ্টর ডেটা অ্যাক্সেস:
web.xmlফাইলে সংরক্ষিতinit-paramডেটা সরবরাহ করে। - Servlet সম্পর্কিত তথ্য প্রাপ্তি:
Servlet-এর নাম এবং কনটেক্সট সম্পর্কিত তথ্য সরবরাহ করে।
ServletConfig API
ServletConfig ইন্টারফেসের প্রধান মেথডসমূহ:
String getServletName()
Servlet-এর নাম প্রদান করে।ServletContext getServletContext()
ServletContext অবজেক্ট প্রদান করে, যা অ্যাপ্লিকেশন-লেভেলের ডেটা অ্যাক্সেসের জন্য ব্যবহৃত হয়।String getInitParameter(String name)
নির্দিষ্টinit-param-এর মান (value) প্রদান করে।Enumeration<String> getInitParameterNames()
সমস্তinit-param-এর নামের একটি Enumeration প্রদান করে।
ServletConfig এর ব্যবহার
ServletConfig সাধারণত web.xml বা অ্যানোটেশন-এর মাধ্যমে কনফিগার করা হয়।
উদাহরণ: web.xml ব্যবহার করে
web.xml ফাইল:
<web-app>
<servlet>
<servlet-name>MyServlet</servlet-name>
<servlet-class>com.example.MyServlet</servlet-class>
<init-param>
<param-name>username</param-name>
<param-value>admin</param-value>
</init-param>
<init-param>
<param-name>password</param-name>
<param-value>12345</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>MyServlet</servlet-name>
<url-pattern>/config</url-pattern>
</servlet-mapping>
</web-app>
Servlet ক্লাস:
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class MyServlet extends HttpServlet {
@Override
public void init(ServletConfig config) throws ServletException {
super.init(config); // ServletConfig ইনিশিয়ালাইজ করা
}
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
ServletConfig config = getServletConfig();
// init-param থেকে ডেটা পড়া
String username = config.getInitParameter("username");
String password = config.getInitParameter("password");
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<html><body>");
out.println("<h1>ServletConfig Example</h1>");
out.println("<p>Username: " + username + "</p>");
out.println("<p>Password: " + password + "</p>");
out.println("</body></html>");
}
}
আউটপুট:
<h1>ServletConfig Example</h1>
<p>Username: admin</p>
<p>Password: 12345</p>
উদাহরণ: অ্যানোটেশন ব্যবহার করে
ServletConfig অ্যানোটেশনের মাধ্যমেও কনফিগার করা যায়।
Servlet ক্লাস:
import java.io.*;
import javax.servlet.*;
import javax.servlet.annotation.WebInitParam;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.*;
@WebServlet(
name = "MyServlet",
urlPatterns = {"/config"},
initParams = {
@WebInitParam(name = "username", value = "admin"),
@WebInitParam(name = "password", value = "12345")
}
)
public class MyServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
ServletConfig config = getServletConfig();
// init-param থেকে ডেটা পড়া
String username = config.getInitParameter("username");
String password = config.getInitParameter("password");
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<html><body>");
out.println("<h1>ServletConfig Example</h1>");
out.println("<p>Username: " + username + "</p>");
out.println("<p>Password: " + password + "</p>");
out.println("</body></html>");
}
}
ServletConfig বনাম ServletContext
| বৈশিষ্ট্য | ServletConfig | ServletContext |
|---|---|---|
| স্কোপ | শুধুমাত্র একটি নির্দিষ্ট Servlet-এর জন্য। | সমস্ত Servlet-এর জন্য শেয়ার করা। |
| কনফিগারেশন উৎস | init-param বা অ্যানোটেশন থেকে। | অ্যাপ্লিকেশন-লেভেল কনফিগারেশন। |
| প্রধান ব্যবহার | Servlet-এর নির্দিষ্ট ডেটা প্রদান। | অ্যাপ্লিকেশন-বিস্তৃত ডেটা শেয়ার করা। |
ServletConfig এর সুবিধা
- ইনিশিয়ালাইজেশন সহজতর:
Servlet-এর জন্য প্রয়োজনীয় কনফিগারেশন সরবরাহ করে। - পোর্টেবল:
কোড পরিবর্তন না করে কনফিগারেশন পরিবর্তন করা যায়। - ডাটা অ্যাক্সেস সহজ:
ServletConfig ইন্টারফেসের মাধ্যমে সহজেinit-paramঅ্যাক্সেস করা যায়।
ServletConfig হলো Servlet-এর জন্য ইনিশিয়ালাইজেশন ডেটা সরবরাহের একটি আদর্শ উপায়। এটি init-param ব্যবস্থাপনার মাধ্যমে Servlet কনফিগারেশনকে সহজ এবং কার্যকর করে তোলে।
Read more