উদাহরণ সহ Form Data প্রসেসিং

Servlet এর মধ্যে Form Data প্রসেসিং - সার্ভলেটস (Servlets) - Java Technologies

263

Form data processing হল ওয়েব অ্যাপ্লিকেশনগুলির একটি সাধারণ কার্যকলাপ যেখানে ইউজার ওয়েব ফর্মের মাধ্যমে ইনপুট ডেটা প্রদান করে এবং সার্ভলেট সেই ডেটা প্রক্রিয়া করে। সার্ভলেটস হ্যান্ডেল করতে সক্ষম যে কোনও ফর্ম ডেটা, যেমন GET বা POST রিকোয়েস্টের মাধ্যমে পাঠানো ডেটা, এবং এটি HTML form elements থেকে রিসিভ করতে পারে (যেমন টেক্সট ফিল্ড, চেকবক্স, রেডিও বাটন, ড্রপডাউন ইত্যাদি)।

এই টিউটোরিয়ালে, আমরা দেখব কিভাবে একটি ওয়েব ফর্ম তৈরি করা যায় এবং সার্ভলেট ব্যবহার করে সেই ফর্ম ডেটা প্রক্রিয়া করা যায়।


1. HTML Form তৈরি করা

প্রথমে, একটি HTML Form তৈরি করতে হবে যেখানে ইউজার তার ইনপুট প্রদান করবে। ফর্মটি method="POST" ব্যবহার করবে যাতে ইনপুট ডেটা সার্ভলেটে POST রিকোয়েস্টের মাধ্যমে পাঠানো হয়।

HTML Form Example (form.html)

<!DOCTYPE html>
<html>
<head>
    <title>User Information Form</title>
</head>
<body>
    <h2>User Information Form</h2>
    <form action="processForm" method="POST">
        <label for="name">Name:</label>
        <input type="text" id="name" name="name" required><br><br>
        
        <label for="email">Email:</label>
        <input type="email" id="email" name="email" required><br><br>
        
        <label for="gender">Gender:</label>
        <input type="radio" id="male" name="gender" value="Male" required> Male
        <input type="radio" id="female" name="gender" value="Female" required> Female<br><br>

        <label for="hobbies">Hobbies:</label><br>
        <input type="checkbox" name="hobbies" value="Reading"> Reading<br>
        <input type="checkbox" name="hobbies" value="Sports"> Sports<br>
        <input type="checkbox" name="hobbies" value="Traveling"> Traveling<br><br>

        <label for="country">Country:</label>
        <select name="country" id="country">
            <option value="USA">USA</option>
            <option value="India">India</option>
            <option value="UK">UK</option>
        </select><br><br>
        
        <input type="submit" value="Submit">
    </form>
</body>
</html>

Explanation:

  • এই ফর্মে ইউজার name, email, gender, hobbies, এবং country সম্পর্কিত ডেটা ইনপুট করবে।
  • ফর্মটি POST পদ্ধতি ব্যবহার করবে এবং processForm URL-এ রিকোয়েস্ট পাঠাবে, যা সার্ভলেটে পরিচালিত হবে।

2. Create a Servlet to Process Form Data

এখন, একটি Servlet তৈরি করতে হবে যা ফর্ম ডেটা গ্রহণ করবে এবং প্রক্রিয়া করবে। সার্ভলেটটি doPost() মেথড ব্যবহার করবে, কারণ ফর্মটি POST পদ্ধতি ব্যবহার করে ডেটা পাঠায়।

Servlet Example (ProcessFormServlet.java)

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class ProcessFormServlet extends HttpServlet {

    // Handle POST requests
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // Set content type for the response
        response.setContentType("text/html");
        
        // Get the PrintWriter object to write the response
        PrintWriter out = response.getWriter();
        
        // Get form data from request
        String name = request.getParameter("name");
        String email = request.getParameter("email");
        String gender = request.getParameter("gender");
        String[] hobbies = request.getParameterValues("hobbies");
        String country = request.getParameter("country");
        
        // Generate the response
        out.println("<html><body>");
        out.println("<h2>User Information Received</h2>");
        out.println("<p><strong>Name:</strong> " + name + "</p>");
        out.println("<p><strong>Email:</strong> " + email + "</p>");
        out.println("<p><strong>Gender:</strong> " + gender + "</p>");
        out.println("<p><strong>Hobbies:</strong>");
        if (hobbies != null) {
            for (String hobby : hobbies) {
                out.println(" " + hobby + " ");
            }
        } else {
            out.println("No hobbies selected.");
        }
        out.println("</p>");
        out.println("<p><strong>Country:</strong> " + country + "</p>");
        out.println("</body></html>");
    }
}

Explanation:

  • request.getParameter(): এটি একক ইনপুট ফিল্ডের মান (যেমন name, email, gender, ইত্যাদি) প্রাপ্ত করতে ব্যবহৃত হয়।
  • request.getParameterValues(): এটি একাধিক মান গ্রহণ করতে ব্যবহৃত হয়, যেমন checkbox আইটেমগুলির জন্য।
  • response.setContentType("text/html"): এই কোডটি সার্ভলেটের আউটপুট HTML ফরম্যাটে পাঠাতে সেট করে।

3. Configure the Servlet in web.xml

এখন সার্ভলেটের জন্য কনফিগারেশন করা হবে web.xml ফাইলে। এই ফাইলে ProcessFormServlet সার্ভলেটটির ম্যাপিং করা হবে যাতে ফর্মটি যখন POST রিকোয়েস্ট পাঠাবে, তখন সার্ভলেটটি সেই রিকোয়েস্ট গ্রহণ করতে পারে।

web.xml Configuration

<web-app>
    <servlet>
        <servlet-name>ProcessFormServlet</servlet-name>
        <servlet-class>ProcessFormServlet</servlet-class>
    </servlet>

    <servlet-mapping>
        <servlet-name>ProcessFormServlet</servlet-name>
        <url-pattern>/processForm</url-pattern>
    </servlet-mapping>
</web-app>

Explanation:

  • : সার্ভলেটের নাম।
  • : সার্ভলেট ক্লাসের পুরো পাথ (যেমন ProcessFormServlet ক্লাস)।
  • : URL প্যাটার্নের মাধ্যমে ফর্মের রিকোয়েস্টটি সার্ভলেটে পাঠানো হবে। এখানে /processForm ব্যবহার করা হয়েছে।

4. Run the Application

এখন সার্ভলেটটি একটি Servlet Container (যেমন Apache Tomcat) তে রান করার জন্য প্রস্তুত। ফর্মটি POST পদ্ধতি ব্যবহার করবে এবং সার্ভলেটের /processForm URL-এ ডেটা পাঠাবে।

Steps:

  1. সার্ভলেট কনটেইনার (যেমন Tomcat) চালু করুন।
  2. form.html ফাইলটি ব্রাউজারে খুলুন।
  3. ফর্মটি পূর্ণ করে Submit বাটনে ক্লিক করুন।
  4. সার্ভলেট ফর্ম ডেটা গ্রহণ করে, ProcessFormServlet রেসপন্সে ডেটা প্রিন্ট করবে।

Conclusion

এই উদাহরণে, আমরা দেখলাম কিভাবে Servlet ব্যবহার করে HTML Form থেকে ডেটা প্রক্রিয়া করা যায়। Servlets ব্যবহার করে ফর্ম ডেটা GET বা POST পদ্ধতি ব্যবহার করে পাঠানো হয় এবং সার্ভলেট সেই ডেটা প্রক্রিয়া করে এবং ইউজারকে রেসপন্স পাঠায়।

Servlets ডাইনামিক ওয়েব কনটেন্ট এবং ডেটা প্রক্রিয়াকরণে খুবই কার্যকর এবং Java EE অ্যাপ্লিকেশনগুলিতে ব্যাপকভাবে ব্যবহৃত হয়।

Content added By
Promotion

Are you sure to start over?

Loading...