HTTPServlet হল Servlet এর একটি বিশেষত্ব যা HTTP (Hypertext Transfer Protocol) রিকোয়েস্ট এবং রেসপন্স পরিচালনা করে। এটি Java Servlet API এর অংশ এবং ওয়েব অ্যাপ্লিকেশনের মধ্যে HTTP যোগাযোগের জন্য ব্যবহৃত হয়। HTTPServlet মূলত HttpServlet ক্লাস থেকে এক্সটেন্ড করা হয়, যা HTTP নির্দিষ্ট কার্যাবলি যেমন GET, POST, PUT, DELETE রিকোয়েস্ট হ্যান্ডল করার জন্য ডিফাইন করা হয়েছে।
HTTPServlet প্রধানত ওয়েব অ্যাপ্লিকেশনগুলিতে ক্লায়েন্ট থেকে HTTP রিকোয়েস্ট গ্রহণ করে এবং সেই অনুযায়ী রেসপন্স প্রেরণ করে। এটি ক্লায়েন্ট-সাইড (যেমন ওয়েব ব্রাউজার) এবং সার্ভার-সাইড (যেমন Java Servlet container) এর মধ্যে যোগাযোগের মাধ্যম হিসেবে কাজ করে।
এই টিউটোরিয়ালে আমরা HTTPServlet এর কার্যকারিতা, মেথড এবং এর ব্যবহারের প্রক্রিয়া সম্পর্কে বিস্তারিত জানবো।
HttpServlet হলো একটি ক্লাস যা javax.servlet.http.HttpServlet থেকে এক্সটেন্ড করা হয়। এটি Servlet API এর মাধ্যমে HTTP রিকোয়েস্ট এবং রেসপন্স হ্যান্ডল করার জন্য তৈরি করা হয়েছে। এটি মূলত একটি abstract class, যার মধ্যে doGet(), doPost() এবং অন্যান্য HTTP মেথড গুলির জন্য স্ট্যান্ডার্ড মেথড ডিফাইন করা রয়েছে।
HTTPServlet এর জীবনচক্র অনেকটা সাধারণ সার্ভলেটের মতোই। যখন একটি HTTPServlet প্রথমবার ওয়েব সার্ভারে লোড হয়, তখন এটি init() মেথড কল করে। এরপর HTTP রিকোয়েস্ট আসলে service() মেথড কল হয় এবং রেসপন্স প্রদান করা হয়। এর পরে, সার্ভলেটটি ব্যবহৃত না হলে destroy() মেথড কল হয়।
HttpServlet ক্লাসে কিছু গুরুত্বপূর্ণ মেথড ডিফাইন করা হয়েছে, যা HTTP রিকোয়েস্টের জন্য ব্যবহৃত হয়:
package com.example;
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
public class HelloWorldServlet extends HttpServlet {
// Handling GET request
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<h1>Hello, World! This is a GET request</h1>");
}
// Handling POST request
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<h1>This is a POST request</h1>");
}
}
এখানে, doGet() এবং doPost() মেথড দুটি HTTP GET এবং POST রিকোয়েস্টের জন্য ব্যবহার করা হয়েছে।
Servlet HTTP রিকোয়েস্ট হ্যান্ডল করার জন্য মূলত দুটি প্রধান পদ্ধতি ব্যবহার করে:
Request Parameters: HTTP রিকোয়েস্টের সাথে পাঠানো তথ্য (যেমন ফর্ম ডেটা, URL প্যারামিটার) হ্যান্ডল করতে HttpServletRequest অবজেক্ট ব্যবহার করা হয়।
উদাহরণ:
String name = request.getParameter("name");
String age = request.getParameter("age");
Response Handling: সার্ভলেট HTTP রেসপন্স ফেরত দেওয়ার জন্য HttpServletResponse অবজেক্ট ব্যবহার করে।
উদাহরণ:
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<h1>Welcome, " + name + "</h1>");
Servletকে ওয়েব অ্যাপ্লিকেশনের অংশ হিসেবে মেপ করার জন্য আপনাকে web.xml ফাইলে সেটি কনফিগার করতে হবে। এছাড়া, ওয়েব সার্ভারের সাথে সঠিক URL প্যাটার্নে সার্ভলেটটি মেপ করতে হবে।
web.xml
কনফিগারেশন<web-app>
<servlet>
<servlet-name>helloWorldServlet</servlet-name>
<servlet-class>com.example.HelloWorldServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>helloWorldServlet</servlet-name>
<url-pattern>/hello</url-pattern>
</servlet-mapping>
</web-app>
এখানে, helloWorldServlet সার্ভলেটটি /hello
URL প্যাটার্নের জন্য মেপ করা হয়েছে।
HTTPServlet HTTP সেশন পরিচালনার জন্য HttpSession ব্যবহার করে। সেশন ব্যবহার করে আপনি ক্লায়েন্টের তথ্য (যেমন লগিন স্টেটাস) ট্র্যাক করতে পারেন।
HttpSession session = request.getSession();
session.setAttribute("username", "john_doe");
String username = (String) session.getAttribute("username");
এখানে, HttpSession ব্যবহার করে ক্লায়েন্টের সেশন তথ্য সেট এবং রিট্রিভ করা হয়েছে।
HTTPServlet এর মাধ্যমে নিরাপত্তা নিশ্চিত করতে HTTPServletRequest এবং HTTPServletResponse এর মাধ্যমে নিরাপত্তা হ্যান্ডলিং করা যায়। উদাহরণস্বরূপ, Basic Authentication, Session Management, এবং Role-Based Access Control (RBAC) নিরাপত্তা বৈশিষ্ট্যগুলি যোগ করা যায়।
String authHeader = request.getHeader("Authorization");
if (authHeader == null || !authHeader.startsWith("Basic ")) {
response.sendError(HttpServletResponse.SC_UNAUTHORIZED, "Authentication required.");
} else {
// Process authentication
}
এখানে, HTTP রিকোয়েস্টে Authorization header চেক করে Basic Authentication হ্যান্ডল করা হয়েছে।
HTTPServlet হল একটি বিশেষ Servlet যা HTTP রিকোয়েস্ট এবং রেসপন্স হ্যান্ডল করার জন্য ব্যবহৃত হয়। এটি HttpServlet ক্লাস থেকে এক্সটেন্ড করা হয় এবং HTTP GET, POST, PUT, DELETE রিকোয়েস্টগুলির জন্য পৃথক মেথড (যেমন doGet(), doPost()) ব্যবহার করা হয়। HTTPServlet ব্যবহার করে আপনি ওয়েব অ্যাপ্লিকেশনের ব্যাকএন্ড লজিক পরিচালনা করতে পারেন, HTTP রিকোয়েস্টের প্যারামিটার প্রসেস করতে পারেন এবং রেসপন্স হিসেবে ডাইনামিক HTML বা JSON প্রদান করতে পারেন। web.xml ফাইলের মাধ্যমে সার্ভলেট কনফিগারেশন এবং URL মেপিং করা হয়, এবং HttpSession ব্যবহার করে সেশন ম্যানেজমেন্ট করা যায়।
HTTP Servlet হল একটি বিশেষ ধরনের Servlet যা HTTP (Hypertext Transfer Protocol) রিকোয়েস্ট এবং রেসপন্স প্রসেস করতে ব্যবহৃত হয়। এটি একটি Java class যা HTTP প্রোটোকল ব্যবহার করে ক্লায়েন্ট (যেমন ব্রাউজার) থেকে রিকোয়েস্ট গ্রহণ করে এবং উপযুক্ত HTTP রেসপন্স তৈরি করে। HTTP Servlets ওয়েব অ্যাপ্লিকেশন ডেভেলপমেন্টের মূল অংশ এবং Java EE (Enterprise Edition) প্রযুক্তির একটি গুরুত্বপূর্ণ উপাদান।
Servlets সাধারণত Servlet Containers (যেমন Apache Tomcat, Jetty) এ রান করে, যেখানে তারা web servers এর সাথে ইন্টিগ্রেট হয়ে HTTP রিকোয়েস্ট এবং রেসপন্স ম্যানেজ করে।
HTTP Servlet হল javax.servlet.http.HttpServlet ক্লাসের একটি সাবক্লাস, যা HTTP প্রোটোকল (যেমন GET, POST, PUT, DELETE) ব্যবহার করে ক্লায়েন্ট থেকে ইনকামিং রিকোয়েস্ট হ্যান্ডল এবং রেসপন্স তৈরি করতে সক্ষম।
এই সার্ভলেটগুলি HttpServletRequest এবং HttpServletResponse অবজেক্টগুলির মাধ্যমে HTTP রিকোয়েস্ট এবং রেসপন্সকে প্রক্রিয়া করে। HttpServlet ক্লাসে কয়েকটি পদ্ধতি থাকে (যেমন doGet()
, doPost()
, doPut()
, doDelete()
), যা HTTP মেথড অনুসারে রিকোয়েস্ট প্রক্রিয়া করার জন্য ব্যবহৃত হয়।
HTTP Servlet ক্লাস HTTP রিকোয়েস্ট এবং রেসপন্স সিস্টেমের মাধ্যমে ডাইনামিক কনটেন্ট তৈরি করার জন্য ব্যবহৃত হয়। এটি HttpServletRequest (যা ইনকামিং HTTP রিকোয়েস্টের তথ্য ধারণ করে) এবং HttpServletResponse (যা HTTP রেসপন্স তৈরির জন্য ব্যবহৃত হয়) অবজেক্টগুলির মাধ্যমে রিকোয়েস্ট এবং রেসপন্স ম্যানেজ করে।
Servlet-এ বিভিন্ন HTTP মেথড হ্যান্ডল করার জন্য doGet()
, doPost()
, doPut()
, doDelete()
মেথড প্রদান করা হয়। এই মেথডগুলো HTTP রিকোয়েস্টের প্রকারভেদ অনুসারে কল করা হয়।
doGet()
: HTTP GET রিকোয়েস্টের জন্য ব্যবহৃত হয় (যেমন, ক্লায়েন্টের কাছ থেকে তথ্য নেয়া)।doPost()
: HTTP POST রিকোয়েস্টের জন্য ব্যবহৃত হয় (যেমন, ক্লায়েন্টের কাছ থেকে ডেটা সাবমিট করা)।HTTP Servlets HTTP session management সাপোর্ট করে, যার মাধ্যমে সার্ভার ব্যবহারকারীদের সেশন ট্র্যাক করতে পারে। সেশন ব্যবহার করে সার্ভিসের সাথে প্রাসঙ্গিক তথ্য (যেমন ইউজার লগইন ইনফরমেশন) সংরক্ষণ করা যায়।
Servlets মাল্টি-থ্রেডেড উপাদান হওয়ায় এটি thread-safe হয়ে থাকে। এর মানে, একাধিক ক্লায়েন্ট একসাথে রিকোয়েস্ট পাঠালেও প্রতিটি রিকোয়েস্ট আলাদা থ্রেডে প্রসেস হবে।
HTTP Servlet এর একটি জীবনচক্র (Lifecycle) থাকে, যা কয়েকটি গুরুত্বপূর্ণ ধাপে বিভক্ত:
init()
method):init()
মেথড কল করা হয়। এই মেথডে সার্ভলেট ইনিশিয়ালাইজেশন কনফিগারেশন করা হয়।উদাহরণ:
public void init() {
// Initialization code
}
service()
method):service()
মেথড কল হয়। এই মেথড রিকোয়েস্টের ধরণ (GET, POST ইত্যাদি) অনুযায়ী উপযুক্ত মেথড (যেমন doGet()
, doPost()
) কল করে রিকোয়েস্ট প্রক্রিয়া করে।উদাহরণ:
public void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// Call the appropriate method based on request type
}
destroy()
method):destroy()
মেথড কল করা হয়। এই মেথড সার্ভলেটটির রিসোর্স ক্লিনআপ করে।উদাহরণ:
public void destroy() {
// Cleanup resources
}
এখানে একটি সাধারণ HTTP Servlet এর উদাহরণ দেওয়া হয়েছে যা HTTP GET এবং POST রিকোয়েস্ট হ্যান্ডল করে:
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
public class HelloWorldServlet extends HttpServlet {
// Handling GET request
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<h1>Hello, World! This is a GET request.</h1>");
}
// Handling POST request
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String name = request.getParameter("name");
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<h1>Hello, " + name + "! This is a POST request.</h1>");
}
}
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3_1.xsd" version="3.1">
<servlet>
<servlet-name>HelloWorldServlet</servlet-name>
<servlet-class>com.example.HelloWorldServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>HelloWorldServlet</servlet-name>
<url-pattern>/hello</url-pattern>
</servlet-mapping>
</web-app>
http://localhost:8080/hello
URL এ গেলে আপনি "Hello, World!" দেখতে পাবেন।POST
রিকোয়েস্টে ইউজার নাম পাঠালে "Hello, [name]!" দেখাবে।HTTP Servlet হল Java EE (Enterprise Edition) এর একটি গুরুত্বপূর্ণ অংশ যা HTTP রিকোয়েস্ট এবং রেসপন্স প্রক্রিয়া করতে ব্যবহৃত হয়। এটি HttpServletRequest এবং HttpServletResponse অবজেক্টের মাধ্যমে ক্লায়েন্টের HTTP রিকোয়েস্ট গ্রহণ করে এবং ডাইনামিক রেসপন্স প্রদান করে। HTTP Servlets ওয়েব অ্যাপ্লিকেশন ডেভেলপমেন্টের জন্য খুবই কার্যকরী এবং এটি একটি শক্তিশালী server-side প্রযুক্তি। Servlet Lifecycle, HTTP মেথড হ্যান্ডলিং, এবং Servlet API এর মাধ্যমে এটি ওয়েব সার্ভার এবং ক্লায়েন্টের মধ্যে ডাইনামিক কনটেন্ট সৃষ্টি করতে সক্ষম।
HttpServlet হল Java Servlet API-এর একটি ক্লাস যা HTTP protocol ভিত্তিক ওয়েব অ্যাপ্লিকেশন তৈরি করার জন্য ব্যবহৃত হয়। এটি javax.servlet.http প্যাকেজের অন্তর্গত এবং Servlet ইন্টারফেসটি ইমপ্লিমেন্ট করে, যা ওয়েব অ্যাপ্লিকেশনগুলির HTTP রিকোয়েস্ট এবং রেসপন্স পরিচালনা করে।
HttpServlet মূলত HTTP requests (যেমন GET, POST, PUT, DELETE) গ্রহণ করে এবং HTTP responses (যেমন HTML, JSON, XML) তৈরি করে। এটি Servlet এর একটি বিশেষায়িত সংস্করণ যা শুধুমাত্র HTTP প্রোটোকলের জন্য ডিজাইন করা হয়েছে, এবং এটিই সবচেয়ে বেশি ব্যবহৃত সার্ভলেট।
HttpServlet এর প্রধান কাজ হল HTTP রিকোয়েস্ট প্রক্রিয়া করা এবং HTTP রেসপন্স তৈরি করা। এটি doGet(), doPost(), doPut() ইত্যাদি মেথডের মাধ্যমে HTTP মেথডগুলোকে প্রসেস করে।
HttpServlet
ওয়েব ক্লায়েন্ট (যেমন, ব্রাউজার) থেকে প্রাপ্ত HTTP রিকোয়েস্ট গ্রহণ করে এবং তার ভিত্তিতে প্রাসঙ্গিক প্রক্রিয়া সম্পাদন করে। GET, POST, PUT, DELETE ইত্যাদি HTTP মেথডের জন্য উপযুক্ত মেথড ব্যবহার করে।
HttpServlet
HTTP রিকোয়েস্ট প্রক্রিয়ার পর একটি HTTP response তৈরি করে এবং তা ক্লায়েন্টে পাঠায়। এটি সাধারণত HTML বা অন্য ফরম্যাটে রেসপন্স তৈরি করে, যেমন JSON, XML, ইত্যাদি। সার্ভলেট সাধারণত PrintWriter বা OutputStream ব্যবহার করে রেসপন্স লেখে।
HttpServlet এর ভূমিকা হলো HTTP রিকোয়েস্টের মাধ্যমে ডেটা গ্রহণ করে, প্রক্রিয়া করা এবং রেসপন্স তৈরি করে ক্লায়েন্টকে পাঠানো। এটি মূলত web server বা servlet container এর সাথে কাজ করে, যেমন Apache Tomcat বা Jetty। একটি সার্ভলেট অ্যাপ্লিকেশন তৈরির জন্য HttpServlet ব্যবহৃত হয়, যেটি Java EE বা Spring Framework-এর মতো প্ল্যাটফর্মের অন্তর্গত।
HttpServlet
এর মাধ্যমে ডাইনামিক ওয়েব পেজ এবং ওয়েব সার্ভিস তৈরি করা হয়। সার্ভলেটটি একটি server-side প্রযুক্তি হিসেবে কাজ করে, যা client-side থেকে আসা রিকোয়েস্ট প্রক্রিয়া করে।
HttpServlet মূলত business logic বা data processing এর জন্য ব্যবহৃত হয়। সার্ভলেট রিকোয়েস্টের ডেটা নিয়ে এটি প্রক্রিয়া করে এবং সার্ভার সাইডে ডেটাবেস বা অন্য সিস্টেমের সাথে ইন্টারঅ্যাক্ট করে প্রয়োজনীয় ফলাফল তৈরি করে।
HttpServlet জাভা প্ল্যাটফর্মের অন্যান্য প্রযুক্তির সাথে ইন্টিগ্রেট করতে সক্ষম, যেমন JSP (JavaServer Pages), EJB (Enterprise JavaBeans), এবং Spring Framework। এটি front-end এবং back-end এর মধ্যে সংযোগ স্থাপন করতে সাহায্য করে।
HttpServlet
এর লাইফসাইকেল সাধারণত ৩টি প্রধান পর্যায়ে বিভক্ত:
init()
):init()
মেথড কল করে ইনিশিয়ালাইজেশন প্রক্রিয়া শুরু হয়।service()
):service()
মেথড কল হয়। এই মেথডটি HTTP GET, POST, PUT, DELETE মেথডের জন্য আলাদা আলাদা মেথড (যেমন doGet()
, doPost()
) কল করে।destroy()
):destroy()
মেথড কল হয়।এখানে একটি সাধারণ HttpServlet উদাহরণ দেওয়া হলো, যা HTTP GET রিকোয়েস্টের মাধ্যমে Hello, World! মেসেজ রিটার্ন করে।
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
public class HelloWorldServlet extends HttpServlet {
// Initialization method
public void init() throws ServletException {
// Initialization code (if any)
}
// Service method (handles GET requests)
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// Set content type of response
response.setContentType("text/html");
// Get PrintWriter to send the response
PrintWriter out = response.getWriter();
// Write HTML content
out.println("<html><body>");
out.println("<h1>Hello, World!</h1>");
out.println("</body></html>");
}
// Cleanup method (called when servlet is destroyed)
public void destroy() {
// Cleanup code (if any)
}
}
এখানে:
doGet()
: HTTP GET রিকোয়েস্টের জন্য মেথড। এটি Hello, World! মেসেজ রিটার্ন করবে।init()
: সার্ভলেট ইনিশিয়ালাইজেশন জন্য ব্যবহৃত।destroy()
: সার্ভলেট ডেস্ট্রাকশন বা ক্লিনআপের জন্য ব্যবহৃত।<web-app xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
version="3.0">
<servlet>
<servlet-name>HelloWorldServlet</servlet-name>
<servlet-class>com.example.HelloWorldServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>HelloWorldServlet</servlet-name>
<url-pattern>/hello</url-pattern>
</servlet-mapping>
</web-app>
এখানে:
<servlet>
: সার্ভলেট কনফিগারেশন।<servlet-mapping>
: URL প্যাটার্ন দ্বারা সার্ভলেটটি ম্যাপ করা হয়েছে।HttpServlet হল Java Servlet API এর একটি ক্লাস যা HTTP রিকোয়েস্ট গ্রহণ এবং রেসপন্স তৈরি করার জন্য ব্যবহৃত হয়। এটি ওয়েব অ্যাপ্লিকেশনে ডাইনামিক কন্টেন্ট তৈরি করতে সহায়তা করে এবং ওয়েব ক্লায়েন্টের সাথে যোগাযোগ পরিচালনা করে। HttpServlet এর লাইফসাইকেল অন্তর্ভুক্ত initialization, request handling, এবং destruction মেথড, যা সার্ভলেটের কার্যক্রম পরিচালনা করে। এটি একটি শক্তিশালী এবং কার্যকরী প্রযুক্তি যা ওয়েব অ্যাপ্লিকেশন ডেভেলপমেন্টের জন্য অপরিহার্য।
Servlet একটি Java প্রোগ্রাম যা ওয়েব অ্যাপ্লিকেশনে HTTP প্রোটোকল এর মাধ্যমে ক্লায়েন্ট থেকে রিকোয়েস্ট গ্রহণ করে এবং সার্ভার থেকে রেসপন্স প্রদান করে। সার্ভলেটের মধ্যে HTTP রিকোয়েস্ট প্রক্রিয়ার জন্য প্রধানত doGet()
, doPost()
, doPut()
, এবং doDelete()
মেথডগুলি ব্যবহৃত হয়। এগুলি HttpServlet
ক্লাসের মেথড যা ক্লায়েন্টের HTTP রিকোয়েস্টের প্রকার অনুযায়ী কার্যকরী হয়।
এই মেথডগুলি HTTP প্রটোকলের বিভিন্ন অ্যাকশন যেমন GET, POST, PUT, DELETE রিকোয়েস্ট হ্যান্ডল করতে ব্যবহৃত হয়।
doGet()
মেথডdoGet()
মেথডটি HTTP GET রিকোয়েস্ট হ্যান্ডল করতে ব্যবহৃত হয়। এটি সাধারণত ক্লায়েন্টের কাছ থেকে তথ্য পুনরুদ্ধার করার জন্য ব্যবহৃত হয়। GET রিকোয়েস্ট সার্ভারে কোনো ডেটা পরিবর্তন করে না, শুধুমাত্র ডেটা রিট্রিভ (retrieving) করা হয়।
doGet()
মেথডের ব্যবহার:উদাহরণ:
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// Content type সেট করা
response.setContentType("text/html");
// PrintWriter ব্যবহার করে রেসপন্স লেখার জন্য
PrintWriter out = response.getWriter();
out.println("<html><body>");
out.println("<h1>Hello, this is a GET request</h1>");
out.println("</body></html>");
}
এই উদাহরণে, doGet()
মেথডটি একটি সাধারণ HTML পেজ রিটার্ন করছে যা GET রিকোয়েস্টের মাধ্যমে ব্রাউজারে প্রদর্শিত হবে।
doPost()
মেথডdoPost()
মেথডটি HTTP POST রিকোয়েস্ট হ্যান্ডল করতে ব্যবহৃত হয়। এটি সাধারণত ডেটা সার্ভারে পাঠানোর জন্য ব্যবহৃত হয়, যেমন ফর্ম ডাটা সাবমিট করা বা কোনো নতুন রিসোর্স তৈরি করা।
doPost()
মেথডের ব্যবহার:উদাহরণ:
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String userName = request.getParameter("userName");
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<html><body>");
out.println("<h1>Hello, " + userName + "!</h1>");
out.println("</body></html>");
}
এখানে, doPost() মেথডটি ফর্মের মাধ্যমে পাঠানো userName
প্যারামিটারটি গ্রহণ করে এবং এটি ব্রাউজারে রিটার্ন করছে।
doPut()
মেথডdoPut()
মেথডটি HTTP PUT রিকোয়েস্ট হ্যান্ডল করতে ব্যবহৃত হয়। PUT রিকোয়েস্ট সাধারণত সার্ভারে একটি সম্পূর্ণ নতুন রিসোর্স আপডেট বা তৈরি করার জন্য ব্যবহৃত হয়।
doPut()
মেথডের ব্যবহার:উদাহরণ:
@Override
protected void doPut(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String updatedData = request.getParameter("data");
// ডেটা আপডেট করা
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<html><body>");
out.println("<h1>Data has been updated: " + updatedData + "</h1>");
out.println("</body></html>");
}
এখানে doPut() মেথডটি সার্ভারে একটি ডেটা আপডেট বা তৈরি করতে ব্যবহৃত হয়েছে। ক্লায়েন্ট থেকে যে ডেটা পাঠানো হবে তা সার্ভারে আপডেট করা হবে।
doDelete()
মেথডdoDelete()
মেথডটি HTTP DELETE রিকোয়েস্ট হ্যান্ডল করতে ব্যবহৃত হয়। এটি সাধারণত সার্ভার থেকে কোনো রিসোর্স মুছে ফেলার জন্য ব্যবহৃত হয়।
doDelete()
মেথডের ব্যবহার:উদাহরণ:
@Override
protected void doDelete(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String resourceId = request.getParameter("resourceId");
// রিসোর্স মুছে ফেলা
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<html><body>");
out.println("<h1>Resource with ID " + resourceId + " has been deleted</h1>");
out.println("</body></html>");
}
এখানে doDelete() মেথডটি একটি নির্দিষ্ট রিসোর্স ID গ্রহণ করে এবং সেটি সার্ভার থেকে মুছে ফেলে।
doGet()
, doPost()
, doPut()
, এবং doDelete()
মেথডের পার্থক্যHTTP Method | Purpose | Usage Example |
---|---|---|
GET | Retrieves data from the server | Retrieving a web page or data |
POST | Sends data to the server (creates new resource) | Submitting form data |
PUT | Updates or creates a resource | Updating a record or creating a new one |
DELETE | Deletes a resource from the server | Deleting a resource |
Servlets এর doGet(), doPost(), doPut(), এবং doDelete() মেথডগুলি HTTP প্রোটোকলের বিভিন্ন ক্রিয়ার জন্য ব্যবহৃত হয়। GET রিকোয়েস্ট তথ্য রিট্রিভ করতে, POST রিকোয়েস্ট নতুন ডেটা তৈরি করতে, PUT রিকোয়েস্ট কোনো রিসোর্স আপডেট বা তৈরি করতে এবং DELETE রিকোয়েস্ট কোনো রিসোর্স মুছে ফেলতে ব্যবহৃত হয়। সার্ভলেটের এই মেথডগুলো ওয়েব অ্যাপ্লিকেশন ডেভেলপমেন্টে গুরুত্বপূর্ণ ভূমিকা পালন করে এবং HTTP রিকোয়েস্টের উপযুক্ত কার্যাবলী সম্পন্ন করতে সাহায্য করে।
HTTP Servlet হল একটি জাভা প্রোগ্রাম যা HttpServlet ক্লাসের এক্সটেনশন হিসেবে কাজ করে এবং HTTP রিকোয়েস্ট এবং রেসপন্স হ্যান্ডেল করে। এটি ওয়েব অ্যাপ্লিকেশন তৈরি করার জন্য ব্যবহৃত হয়। HTTP Servlet এর সাহায্যে ওয়েব সার্ভারের সাথে যোগাযোগ করা হয় এবং ওয়েব পেজ বা অন্য কোন ডেটা ক্লায়েন্টকে রিটার্ন করা হয়। HTTP Servlet সাধারণত doGet(), doPost(), doPut() বা doDelete() মেথডের মাধ্যমে HTTP রিকোয়েস্টগুলো প্রক্রিয়া করে।
এই উদাহরণে, আমরা একটি সাধারণ HTTP Servlet তৈরি করব যা HTTP GET রিকোয়েস্ট হ্যান্ডেল করবে এবং "Hello, World!" মেসেজ রিটার্ন করবে।
প্রথমে একটি HttpServlet ক্লাস তৈরি করতে হবে যা doGet() মেথড ওভাররাইড করে এবং HTTP GET রিকোয়েস্টে একটি সিম্পল রেসপন্স দেয়।
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
public class HelloWorldServlet extends HttpServlet {
// doGet() মেথড যা HTTP GET রিকোয়েস্ট হ্যান্ডেল করে
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// রেসপন্সের কনটেন্ট টাইপ সেট করা
response.setContentType("text/html");
// আউটপুট লেখার জন্য PrintWriter ব্যবহার করা
PrintWriter out = response.getWriter();
out.println("<html><body>");
out.println("<h1>Hello, World!</h1>");
out.println("</body></html>");
}
}
এখানে:
একটি Servlet তৈরি করার পর, এটি ওয়েব কন্টেইনারে (যেমন Apache Tomcat) মেপিং করতে হয়, যাতে ওয়েব অ্যাপ্লিকেশনের মাধ্যমে এটি অ্যাক্সেস করা যায়। Servlet মেপিং সাধারণত web.xml ফাইল বা @WebServlet অ্যানোটেশন দ্বারা করা হয়।
এটি ওয়েব অ্যাপ্লিকেশনটির WEB-INF ফোল্ডারে অবস্থিত। এখানে সার্ভলেটের কনফিগারেশন এবং URL প্যাটার্ন মাপিং করা হয়।
<web-app>
<servlet>
<servlet-name>HelloWorldServlet</servlet-name>
<servlet-class>com.example.HelloWorldServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>HelloWorldServlet</servlet-name>
<url-pattern>/hello</url-pattern>
</servlet-mapping>
</web-app>
এখানে:
/hello
URL এ রিকোয়েস্ট আসলে এই সার্ভলেটটি কল হবে।Java 6 থেকে, @WebServlet অ্যানোটেশন ব্যবহার করে সার্ভলেটের কনফিগারেশন এবং মেপিং করা যেতে পারে। এটি web.xml
ফাইলের পরিবর্তে সরাসরি কোডে সার্ভলেট কনফিগারেশন দেয়।
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.*;
import java.io.*;
@WebServlet("/hello")
public class HelloWorldServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<html><body>");
out.println("<h1>Hello, World!</h1>");
out.println("</body></html>");
}
}
এখানে:
/hello
URL প্যাটার্নে রিকোয়েস্ট আসলে এই সার্ভলেটটি কল হবে।Servlet Container বা Servlet Engine হল একটি পরিবেশ যা সার্ভলেটকে রান করতে সহায়তা করে। জনপ্রিয় সার্ভলেট কনটেইনার যেমন Apache Tomcat সার্ভলেট এবং JSP প্রোগ্রাম রান করার জন্য ব্যবহৃত হয়।
.java
ফাইলে লিখুন।javac HelloWorldServlet.java
http://localhost:8080/your-web-app-name/hello
URL এ রিকোয়েস্ট পাঠান।যখন আপনি ব্রাউজারে http://localhost:8080/hello
URLটি প্রবেশ করবেন, তখন সার্ভলেটটি HTTP GET রিকোয়েস্ট গ্রহণ করবে এবং "Hello, World!" মেসেজ সহ একটি HTML পেজ রিটার্ন করবে।
Hello, World!
এটি ওয়েব পেজে "Hello, World!" মেসেজ প্রদর্শন করবে।
সার্ভলেটের একটি নির্দিষ্ট জীবনচক্র থাকে, যা Servlet Container পরিচালনা করে। সার্ভলেট জীবনচক্রের তিনটি প্রধান ধাপ রয়েছে:
doGet()
, doPost()
) কল করে।import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
public class LifecycleServlet extends HttpServlet {
@Override
public void init() throws ServletException {
System.out.println("Servlet is initialized");
}
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.getWriter().println("Servlet is handling the request");
}
@Override
public void destroy() {
System.out.println("Servlet is destroyed");
}
}
এখানে:
HTTP Servlet হল একটি জাভা প্রোগ্রাম যা HTTP রিকোয়েস্ট এবং রেসপন্স হ্যান্ডেল করে ওয়েব সার্ভারে কাজ করে। doGet() মেথডের মাধ্যমে সার্ভলেট HTTP GET রিকোয়েস্ট হ্যান্ডেল করে এবং HTML রেসপন্স রিটার্ন করে। Servlet Mapping web.xml অথবা @WebServlet অ্যানোটেশন ব্যবহার করে করা হয়। সার্ভলেট কনটেইনার (যেমন Tomcat) এ সার্ভলেট ডিপ্লয় করার পর, আপনি এটি ওয়েব ব্রাউজারে অ্যাক্সেস করতে পারবেন। সার্ভলেটের জীবনচক্রে init(), doGet(), এবং destroy() মেথডগুলির ভূমিকা রয়েছে, যা সার্ভলেটের ইনিশিয়ালাইজেশন, রিকোয়েস্ট হ্যান্ডলিং এবং ধ্বংস কাজগুলি সম্পন্ন করে।
Read more