Java Technologies HttpSession Object ব্যবহার করে Session Tracking করা গাইড ও নোট

295

HttpSession হল একটি গুরুত্বপূর্ণ অবজেক্ট যা Servlet এবং JSP অ্যাপ্লিকেশনগুলিতে সেশন ট্র্যাকিং ব্যবস্থাপনা করার জন্য ব্যবহৃত হয়। সেশন ট্র্যাকিং হল একটি প্রক্রিয়া যার মাধ্যমে একটি ব্যবহারকারী (User) এর অনুরোধের সাথে সম্পর্কিত ডেটা বা তথ্য সংরক্ষণ করা হয় এবং পরবর্তী অনুরোধে তা পুনরায় ব্যবহার করা হয়।

HttpSession ব্যবহার করে, আপনি ব্যবহারকারীর সেশন তথ্য সংরক্ষণ করতে পারেন, যেমন ব্যবহারকারীর পরিচয়, কেনো ডেটা বা কার্যক্রম, এবং পরে সেই তথ্য পুনরায় অ্যাক্সেস করতে পারেন।

HttpSession এর ভূমিকা

  • Session Tracking: HTTP প্রোটোকল স্টেটলেস, অর্থাৎ প্রতিটি রিকোয়েস্ট আলাদা এবং পূর্ববর্তী রিকোয়েস্টের তথ্য জানে না। তবে HttpSession ব্যবহারের মাধ্যমে এই স্টেটফুল ডেটা সংরক্ষণ এবং পুনরুদ্ধার করা সম্ভব।
  • User Information Storage: ব্যবহারকারী লগ ইন হওয়া পর থেকে তার পছন্দ বা তার কার্যক্রমের তথ্য সংরক্ষণ করে রাখা।
  • Session Timeout: একটি নির্দিষ্ট সময় পর সেশনটি শেষ হয়ে যায়, যাতে সেশনটির মেয়াদ শেষ হওয়ার পর অন্য কেউ সেই সেশন ব্যবহার করতে না পারে।

HttpSession Object এর ব্যবহার

HttpSession অবজেক্টের মাধ্যমে আপনি নিম্নলিখিত কাজগুলি করতে পারবেন:

  1. Session তৈরি করা (getSession() method ব্যবহার করে)
  2. Session এ ডেটা সংরক্ষণ করা (setAttribute() method ব্যবহার করে)
  3. Session থেকে ডেটা পুনরুদ্ধার করা (getAttribute() method ব্যবহার করে)
  4. Session invalidate করা (invalidate() method ব্যবহার করে)

উদাহরণ: HttpSession ব্যবহার করে Session Tracking

নিচে একটি উদাহরণ দেওয়া হলো যেখানে একটি login form তৈরি করা হয়েছে, যেখানে ব্যবহারকারীর লগইন তথ্য HttpSession এর মাধ্যমে ট্র্যাক করা হয় এবং পরবর্তী রিকোয়েস্টে সেই তথ্য ব্যবহার করা হয়।

১. LoginServlet.java (Login Servlet)

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

public class LoginServlet extends HttpServlet {

    // doPost method to handle form submission
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        
        // Retrieve the username and password from the form
        String username = request.getParameter("username");
        String password = request.getParameter("password");
        
        // Validate the user credentials (this is just a simple example)
        if ("admin".equals(username) && "admin123".equals(password)) {
            
            // Create a new session or get the existing one
            HttpSession session = request.getSession(true);
            
            // Set session attributes
            session.setAttribute("username", username);
            
            // Redirect to a welcome page
            response.sendRedirect("welcome.jsp");
        } else {
            // If login fails, forward back to login page with an error message
            response.sendRedirect("login.jsp?error=true");
        }
    }
}

২. Login Form (login.jsp)

<!DOCTYPE html>
<html>
<head>
    <title>Login</title>
</head>
<body>
    <h2>Login</h2>
    <form action="LoginServlet" method="post">
        Username: <input type="text" name="username" /><br><br>
        Password: <input type="password" name="password" /><br><br>
        <input type="submit" value="Login" />
    </form>
    <br>
    <c:if test="${param.error == 'true'}">
        <p style="color: red;">Invalid username or password!</p>
    </c:if>
</body>
</html>

৩. Welcome Page (welcome.jsp)

<!DOCTYPE html>
<html>
<head>
    <title>Welcome</title>
</head>
<body>
    <h2>Welcome, ${sessionScope.username}!</h2>
    <p>You are successfully logged in.</p>
    <a href="LogoutServlet">Logout</a>
</body>
</html>

৪. LogoutServlet.java (Logout Servlet)

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

public class LogoutServlet extends HttpServlet {

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // Invalidate the session
        HttpSession session = request.getSession(false);
        
        if (session != null) {
            session.invalidate();  // Destroy the session
        }

        // Redirect to login page after logout
        response.sendRedirect("login.jsp");
    }
}

HttpSession Methods

১. getSession()

এই মেথডটি একটি HttpSession অবজেক্ট রিটার্ন করে। যদি বর্তমানে কোনো সেশন না থাকে, তবে এটি একটি নতুন সেশন তৈরি করবে।

HttpSession session = request.getSession();

২. setAttribute()

এটি সেশনের মধ্যে একটি ভ্যালু সংরক্ষণ করে।

session.setAttribute("username", "john_doe");

৩. getAttribute()

এটি সেশনে সংরক্ষিত তথ্য পুনরুদ্ধার করতে ব্যবহৃত হয়।

String username = (String) session.getAttribute("username");

৪. invalidate()

এটি সেশনটি বাতিল করে এবং সমস্ত অ্যাট্রিবিউট মুছে ফেলে।

session.invalidate();

Session Timeout

Session Timeout একটি অত্যন্ত গুরুত্বপূর্ণ ফিচার, যা নিরাপত্তার জন্য গুরুত্বপূর্ণ। এটি সেশন এর মেয়াদ সীমাবদ্ধ করে, যাতে কিছু সময় পর সেশনটি স্বয়ংক্রিয়ভাবে শেষ হয়ে যায় এবং ব্যবহারকারীর লগইন ডেটা অন্য কেউ ব্যবহার করতে না পারে। সাধারণত, এটি web.xml ফাইলে কনফিগার করা হয়।

Example: Setting Session Timeout in web.xml

<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">
    
    <session-config>
        <session-timeout>30</session-timeout> <!-- 30 minutes -->
    </session-config>
    
</web-app>

এখানে:

  • <session-timeout> দ্বারা সেশনটির টাইমআউট সময় নির্ধারণ করা হয়, এটি মিনিট হিসেবে কনফিগার করা হয়। উপরের উদাহরণে সেশনটি ৩০ মিনিট পর বন্ধ হয়ে যাবে।

সারাংশ

HttpSession হল Java Servlets এর একটি শক্তিশালী ফিচার যা ওয়েব অ্যাপ্লিকেশনে session tracking সক্ষম করে। এটি ব্যবহারকারীর বিভিন্ন তথ্য সংরক্ষণ এবং একাধিক HTTP রিকোয়েস্টের মধ্যে স্টেটফুল তথ্য শেয়ার করার জন্য ব্যবহৃত হয়। HttpSession অবজেক্টের মাধ্যমে আপনি ব্যবহারকারীর লগইন ডেটা, পছন্দ, এবং অন্যান্য কাস্টম ডেটা ট্র্যাক করতে পারেন। session timeout, attribute storage, এবং invalidate মেথড ব্যবহার করে সেশন ম্যানেজমেন্ট করা হয়। HttpSession ব্যবহারের মাধ্যমে আপনি আপনার অ্যাপ্লিকেশনে একটি নিরাপদ এবং স্কেলেবল সেশন ট্র্যাকিং সিস্টেম তৈরি করতে পারেন।

Content added By
Promotion

Are you sure to start over?

Loading...