Skill

JSP এবং EL (Expression Language)

জেএসপি (JSP) - Java Technologies

493

JSP (JavaServer Pages) এবং EL (Expression Language) দুটি একে অপরের সাথে সংযুক্ত প্রযুক্তি, যা ডাইনামিক ওয়েব পেজ তৈরি করতে ব্যবহৃত হয়। JSP সাধারণত জাভা কোড দিয়ে ওয়েব পেজের কন্টেন্ট ডাইনামিক্যালি তৈরি করে, কিন্তু EL এর সাহায্যে জাভা কোড ছাড়াই JSP পেজে ডাইনামিক কন্টেন্ট রেন্ডার করা সম্ভব হয়।

JSP কী?


JSP (JavaServer Pages) একটি সার্ভার-সাইড টেকনোলজি যা ডাইনামিক ওয়েব পেজ তৈরির জন্য ব্যবহৃত হয়। JSP পেজে HTML, XML, বা অন্যান্য মার্কআপ কনটেন্টের মধ্যে Java কোড এমবেড করা থাকে, যা সার্ভারে প্রসেস হয়ে ক্লায়েন্টে প্রেরণ করা হয়। JSP এর মাধ্যমে ডাটাবেসের সাথে সংযোগ স্থাপন করা, ইউজারের ইনপুট গ্রহণ করা, এবং ডাইনামিক কন্টেন্ট তৈরি করা সম্ভব হয়।

EL (Expression Language) কী?


EL (Expression Language) হল JSP পৃষ্ঠায় ডাইনামিক কন্টেন্ট দেখানোর জন্য ব্যবহৃত একটি ভাষা। এটি সরাসরি জাভা কোড লেখার পরিবর্তে একটি সহজ এবং সংক্ষিপ্ত সিনট্যাক্স ব্যবহার করে ডেটা এক্সপ্রেশন করতে সহায়তা করে। EL-এর মাধ্যমে আপনি জাভা অবজেক্টের প্রপার্টি অ্যাক্সেস করতে পারেন, সেশনের ডেটা ব্যবহার করতে পারেন, কন্ডিশনাল লজিক প্রয়োগ করতে পারেন এবং আরও অনেক কিছু করতে পারেন।

EL সাধারণত JSP পৃষ্ঠায় <%= %> এবং <%@ %> এর পরিবর্তে ব্যবহৃত হয়। এটি কোডকে আরও পরিষ্কার ও সংক্ষিপ্ত করে।

JSP এবং EL এর মধ্যে পার্থক্য


  1. সিনট্যাক্স: JSP-তে ডাইনামিক কন্টেন্ট রেন্ডার করতে Java কোড লেখা হয় (যেমন <%= %>), কিন্তু EL-এ সরাসরি ডেটা এক্সপ্রেশন ব্যবহৃত হয় (যেমন ${})।
  2. সহজ ব্যবহারের জন্য EL: EL কোড অনেক বেশি পাঠযোগ্য এবং সহজে ব্যবহৃত হয়, যেখানে JSP পৃষ্ঠায় Java কোড লিখতে হয় যা কখনও কখনও জটিল হয়ে যেতে পারে।
  3. অবজেক্ট অ্যাক্সেস: EL দিয়ে সহজে ডেটা বা অবজেক্ট অ্যাক্সেস করা যায়, যেমন একটি প্রপার্টি এক্সপ্রেস করতে, যা JSP-তে কোড লেখা ছাড়াই সম্ভব।

EL ব্যবহার করার উপায়


১. EL দিয়ে ভেরিয়েবল এক্সপ্রেশন

JSP পৃষ্ঠায় ডাইনামিক কন্টেন্ট দেখাতে EL ব্যবহার করা হয়। নিচে একটি উদাহরণ দেওয়া হলো, যেখানে EL দিয়ে একটি ভেরিয়েবল এক্সপ্রেস করা হয়েছে:

<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<html>
<head>
    <title>EL উদাহরণ</title>
</head>
<body>
    <h2>EL দিয়ে ডাইনামিক কন্টেন্ট</h2>

    <%
        String name = "John Doe";  // Java কোডে ভেরিয়েবল তৈরি
        request.setAttribute("userName", name); // EL-এ প্রেরণ
    %>

    <p>নাম: ${userName}</p>  <!-- EL দিয়ে ভেরিয়েবল এক্সপ্রেশন -->
</body>
</html>

এখানে, request.setAttribute("userName", name); ব্যবহার করে Java কোডের মাধ্যমে একটি ভেরিয়েবল userName তৈরি করা হয়েছে এবং তারপর EL এর মাধ্যমে ${userName} পৃষ্ঠায় প্রদর্শন করা হয়েছে।

২. EL দিয়ে জাভা অবজেক্ট অ্যাক্সেস

EL এর মাধ্যমে আপনি জাভা অবজেক্টের প্রপার্টি অ্যাক্সেস করতে পারেন। নিচে একটি উদাহরণ দেওয়া হলো যেখানে একটি জাভা বীন (JavaBean) ব্যবহার করা হয়েছে।

<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<html>
<head>
    <title>EL এবং জাভা বীন উদাহরণ</title>
</head>
<body>
    <h2>EL এবং জাভা বীন ব্যবহার</h2>

    <%
        class User {
            private String username;
            public String getUsername() {
                return username;
            }
            public void setUsername(String username) {
                this.username = username;
            }
        }

        User user = new User();
        user.setUsername("John Doe");
        request.setAttribute("user", user);
    %>

    <p>ব্যবহারকারী নাম: ${user.username}</p>  <!-- EL দিয়ে বীন প্রপার্টি এক্সপ্রেশন -->
</body>
</html>

এখানে, একটি User ক্লাস তৈরি করা হয়েছে এবং তার username প্রপার্টি EL দ্বারা অ্যাক্সেস করা হয়েছে।

৩. EL দিয়ে লজিক্যাল অপারেশন

EL এ কন্ডিশনাল লজিক্যাল অপারেশনও করা যায়। নিচে একটি উদাহরণ দেখানো হলো:

<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<html>
<head>
    <title>EL কন্ডিশনাল অপারেশন</title>
</head>
<body>
    <h2>EL কন্ডিশনাল লজিক</h2>

    <%
        int age = 25;
        request.setAttribute("userAge", age);
    %>

    <p>আপনার বয়স: ${userAge}</p>

    <p>
        <c:if test="${userAge >= 18}">
            আপনি প্রাপ্তবয়স্ক।
        </c:if>
        <c:if test="${userAge < 18}">
            আপনি প্রাপ্তবয়স্ক নন।
        </c:if>
    </p>
</body>
</html>

এই কোডে, EL এবং JSTL (JavaServer Pages Standard Tag Library) ব্যবহার করা হয়েছে যাতে ব্যবহারকারীর বয়স চেক করা যায় এবং তার উপর ভিত্তি করে একটি কন্ডিশনাল বার্তা প্রদর্শন করা হয়।


সারাংশ


JSP এবং EL একে অপরের সাথে মিলে কাজ করে। JSP ওয়েব পেজ তৈরি করতে Java কোড ব্যবহার করলেও, EL পৃষ্ঠার মধ্যে সরাসরি ডেটা এক্সপ্রেশন করতে সহায়তা করে। EL-এর সহজ এবং সংক্ষিপ্ত সিনট্যাক্স ব্যবহারের মাধ্যমে ডাইনামিক কন্টেন্ট আরও সহজে এবং পরিষ্কারভাবে প্রদর্শন করা যায়। EL জাভা অবজেক্টের প্রপার্টি অ্যাক্সেস করা, লজিক্যাল অপারেশন করা এবং ফর্ম ডেটা প্রসেস করা খুবই সহজ করে দেয়।

Content added By

Expression Language (EL) কি এবং কেন ব্যবহার করা হয়?

379

Expression Language (EL) হল একটি ভাষা যা জেএসপি পেজে ডাইনামিক কন্টেন্ট এক্সপ্রেশন করার জন্য ব্যবহৃত হয়। EL মূলত JSP 2.0 থেকে অন্তর্ভুক্ত করা হয়েছে এবং এটি জেএসপি পেজের মধ্যে জাভা কোড লেখার প্রক্রিয়া সহজতর করে। EL-এর মাধ্যমে আপনি ডাটা এক্সপ্রেস করতে পারেন যা অবজেক্টের প্রোপার্টি বা ভেরিয়েবল থেকে সরাসরি মান নিয়ে আসে। এটি সাধারণত JSP পেজে ডাটা অ্যাক্সেস এবং ম্যানিপুলেশন করার জন্য ব্যবহৃত হয়।

EL এর প্রয়োজনীয়তা এবং ব্যবহার


JSP পেজে কোডের মাঝে সরাসরি জাভা কোড লেখা প্রায়শই জটিল এবং রক্ষণাবেক্ষণে কঠিন হতে পারে। EL এর মাধ্যমে কোডটি আরও পরিষ্কার, সহজ এবং সুসংগঠিত করা সম্ভব হয়। EL ব্যবহার করলে আপনি সার্ভার সাইড লজিক থেকে আলাদা করে পেজের মধ্যে ডাইনামিক কন্টেন্ট প্রদর্শন করতে পারবেন, যা কোডের পুনঃব্যবহারযোগ্যতা ও পঠনযোগ্যতা বাড়ায়।

EL এর সিনট্যাক্স


EL সাধারণত ${} সিম্বল দিয়ে ব্যবহার করা হয়। এর মধ্যে ডাইনামিক কন্টেন্ট, এক্সপ্রেশন বা ভেরিয়েবল রাখা হয়। EL-এর মাধ্যমে আপনি ডাটা এক্সপ্রেস করতে পারেন এবং তা কনটেন্টে রেন্ডার করতে পারেন।

EL এর সাধারণ সিনট্যাক্স:

${expression}

উদাহরণ:

Hello, ${userName}!

এখানে, userName একটি ভেরিয়েবল, যা সেশন, রিকোয়েস্ট বা অ্যাপ্লিকেশন স্কোপ থেকে এসেছে। EL স্বয়ংক্রিয়ভাবে তার মান রেন্ডার করবে।

EL-এর মূল বৈশিষ্ট্য


১. অবজেক্ট এক্সপ্রেশন:

EL ব্যবহার করে আপনি জাভা অবজেক্টের প্রোপার্টি বা মেথড এক্সপ্রেস করতে পারেন।

উদাহরণ:

${user.name}

এখানে, user হল একটি অবজেক্ট এবং name হলো তার প্রোপার্টি। EL-এর মাধ্যমে অবজেক্টের প্রোপার্টি সরাসরি এক্সপ্রেস করা যায়।

২. কন্ডিশনাল এক্সপ্রেশন:

EL তে কন্ডিশনাল এক্সপ্রেশনও ব্যবহার করা যায়।

উদাহরণ:

${user.age >= 18 ? 'Adult' : 'Minor'}

এখানে, এটি চেক করে user.age যদি ১৮ বা তার বেশি হয়, তবে "Adult" প্রদর্শিত হবে, না হলে "Minor" প্রদর্শিত হবে।

৩. অ্যারেগেট/লিস্ট এক্সপ্রেশন:

EL এর মাধ্যমে আপনি অ্যারে বা লিস্ট থেকেও ডাটা এক্সপ্রেস করতে পারেন।

উদাহরণ:

${users[0].name}

এখানে, users একটি অ্যারে বা লিস্ট এবং [0] এর মাধ্যমে প্রথম এলিমেন্টের name প্রোপার্টি অ্যাক্সেস করা হচ্ছে।

৪. ফাংশন ব্যবহার:

EL এর মাধ্যমে আপনি কিছু বিল্ট-ইন ফাংশনও ব্যবহার করতে পারেন, যেমন স্ট্রিং ম্যানিপুলেশন।

উদাহরণ:

${fn:toUpperCase(user.name)}

এখানে, fn:toUpperCase() ফাংশন ব্যবহার করা হয়েছে, যা user.name এর ভ্যালুকে বড় হাতের অক্ষরে রূপান্তর করবে।


কেন EL ব্যবহার করা হয়?


১. সহজতা এবং পঠনযোগ্যতা:

EL কোড লেখা সহজ এবং এটি সাধারণত পরিষ্কার এবং বোঝার জন্য সহজ। EL ব্যবহার করার মাধ্যমে জেএসপি পেজে জাভা কোড লেখা কমে যায়, যা কোডের পঠনযোগ্যতা বাড়ায়।

২. কোডের পুনঃব্যবহারযোগ্যতা:

EL তে আপনি ডাটা অ্যাক্সেস করতে পারেন একাধিক জায়গায়, ফলে কোডের পুনঃব্যবহারযোগ্যতা বৃদ্ধি পায়। এর মাধ্যমে কোডে একাধিক জায়গায় একই ডাটা ব্যবহার করা সম্ভব হয়।

৩. JSP পেজে Java কোডের অভাব:

EL ব্যবহার করলে আপনি জাভা কোডের পরিবর্তে কেবল এক্সপ্রেশন ব্যবহার করতে পারেন, যার ফলে জেএসপি পেজে Java কোড কম থাকে। এটি কোডের আর্কিটেকচার এবং রক্ষণাবেক্ষণকে সহজ করে তোলে।

৪. সাধারণ ফাংশনালিটি সহজে এক্সেস:

EL তে অনেক বিল্ট-ইন ফাংশন রয়েছে, যেমন স্ট্রিং প্রসেসিং, লজিকাল কম্প্যারিজন ইত্যাদি, যা ডেভেলপারদের জন্য উপকারী।

৫. কমপ্লেক্স কোডিং হ্রাস:

এটি জাভার চেয়ে অনেক সহজ এবং দ্রুত, কারণ EL সরাসরি ডাটা এক্সপ্রেস করার জন্য ব্যবহার করা হয়। এর ফলে জটিল কোড কম হয় এবং ডেভেলপমেন্টের সময়ও কম লাগে।


EL-এর উদাহরণ


1. ভেরিয়েবল এক্সপ্রেশন:

${username}

এখানে username একটি ভেরিয়েবল, যা ডাটা প্রদান করবে।

2. অবজেক্টের প্রোপার্টি এক্সপ্রেশন:

${user.name}

এখানে user একটি অবজেক্ট এবং তার name প্রোপার্টি এক্সপ্রেস করা হচ্ছে।

3. অপারেটর ব্যবহার:

${price * quantity}

এখানে price এবং quantity এর গুণফল দেখানো হবে।

4. কন্ডিশনাল এক্সপ্রেশন:

${age >= 18 ? 'Adult' : 'Minor'}

এখানে, ব্যবহারকারীর বয়স অনুযায়ী "Adult" বা "Minor" দেখানো হবে।


সারাংশ: Expression Language (EL) একটি শক্তিশালী উপাদান যা জেএসপি পেজের মধ্যে ডাইনামিক কন্টেন্ট এক্সপ্রেস করার জন্য ব্যবহৃত হয়। EL ব্যবহারে কোড লেখা সহজ হয় এবং পেজের কার্যকারিতা বাড়ায়, কারণ এতে Java কোড কম থাকে এবং এক্সপ্রেশনগুলো সরাসরি ডাটা প্রদর্শন করতে সক্ষম। EL ব্যবহারের মাধ্যমে জেএসপি পেজের পঠনযোগ্যতা ও রক্ষণাবেক্ষণ উন্নত হয়।

Content added By

EL এর সিনট্যাক্স এবং কাজের প্রক্রিয়া

311

Expression Language (EL) হল একটি শক্তিশালী এবং সহজলভ্য বৈশিষ্ট্য যা JSP (Java Server Pages) এ ডাইনামিক কন্টেন্ট প্রদর্শনের জন্য ব্যবহৃত হয়। EL এর মাধ্যমে আপনি Java অবজেক্ট বা ডাটাবেস থেকে ডেটা সহজে অ্যাক্সেস করতে পারেন এবং HTML টেমপ্লেটের মধ্যে ডাইনামিক ভ্যালু ইনজেক্ট করতে পারেন, এটি Java কোডের প্রয়োজন ছাড়াই।

EL এর সিনট্যাক্স


EL এর প্রধান সিনট্যাক্স দুটি অংশে বিভক্ত:

  1. অ্যাসেসমেন্ট সিনট্যাক্স: ${} (ডলার চিহ্ন এবং কোঁকড়ানো বন্ধনী) দিয়ে ডাইনামিক এক্সপ্রেশন লেখা হয়।
  2. এম্বেডেড এক্সপ্রেশন: EL কোড সাধারণত HTML বা JSP পৃষ্ঠায় ব্যবহার করা হয়।

EL সিনট্যাক্স:

${expression}

এখানে expression হলো সেই এক্সপ্রেশন যা আপনি একটি ভেরিয়েবল বা Java অবজেক্ট থেকে অ্যাক্সেস করতে চান।


EL এর কাজের প্রক্রিয়া


EL মূলত নিম্নলিখিত কাজের জন্য ব্যবহৃত হয়:

  1. বৈশিষ্ট্য/অ্যাট্রিবিউট অ্যাক্সেস করা: EL এর মাধ্যমে আপনি HTTP রিকোয়েস্ট, সেশন, অ্যাপ্লিকেশন, অথবা পেজ স্কোপের মধ্যে থাকা ভ্যারিয়েবল বা অ্যাট্রিবিউট সহজে অ্যাক্সেস করতে পারেন।
  2. অপারেটর ব্যবহার: EL এর মধ্যে অনেক অপারেটর ব্যবহার করা যায়, যেমন গাণিতিক অপারেটর, তুলনা অপারেটর, এবং লজিক্যাল অপারেটর।
  3. মেথড কল করা: EL আপনাকে JavaBeans বা অন্যান্য অবজেক্টের মেথড কল করার সুযোগ দেয়।
  4. অবজেক্ট এবং প্রপার্টি অ্যাক্সেস: EL এর মাধ্যমে আপনি JavaBeans এর প্রপার্টি বা অবজেক্টের তথ্য অ্যাক্সেস করতে পারেন।

EL এর কাজের উদাহরণ


1. ভ্যারিয়েবল অ্যাক্সেস

আপনি যদি JSP পৃষ্ঠায় কোনো অ্যাট্রিবিউট সেট করেন এবং সেটি EL ব্যবহার করে অ্যাক্সেস করতে চান, তবে নিচের মতো কোড লেখা হবে:

<%
    String username = "JohnDoe";
    pageContext.setAttribute("username", username);
%>

<p>Welcome, ${username}!</p>

এখানে, ${username} EL ব্যবহার করে username অ্যাট্রিবিউটের মান প্রদর্শন করবে।

2. গাণিতিক অপারেটর

EL এর মধ্যে গাণিতিক অপারেটরও ব্যবহার করা যায়। যেমন, যোগ, বিয়োগ, গুণ, ভাগ ইত্যাদি:

<p>Result of 10 + 5 = ${10 + 5}</p>

এটি ১৫ প্রদর্শন করবে।

3. তুলনা অপারেটর

EL তে তুলনা অপারেটর ব্যবহার করে আপনি দুটি মানের মধ্যে তুলনা করতে পারেন:

<p>${10 > 5 ? 'True' : 'False'}</p>

এটি "True" প্রদর্শন করবে, কারণ ১০ বড় ৫ এর থেকে।

4. অবজেক্ট প্রপার্টি অ্যাক্সেস

EL ব্যবহার করে আপনি JavaBeans এর প্রপার্টি অ্যাক্সেস করতে পারেন:

<jsp:useBean id="person" class="com.example.Person" />
<p>Name: ${person.name}</p>

এখানে, person অবজেক্টের name প্রপার্টি প্রদর্শিত হবে।

5. মেথড কল

EL এর মাধ্যমে JavaBeans এর মেথডও কল করা যায়:

<p>Full Name: ${person.getFullName()}</p>

এখানে person অবজেক্টের getFullName() মেথডটি কল করা হয়েছে এবং এর রিটার্ন ভ্যালু প্রদর্শিত হবে।


সারাংশ


EL (Expression Language) JSP তে ডাইনামিক কন্টেন্ট সন্নিবেশ করতে ব্যবহৃত হয়। এটি Java কোডের পরিবর্তে সরল এবং প্রাকৃতিকভাবে HTML এর মধ্যে ডাইনামিক ভ্যালু প্রদর্শন করতে সাহায্য করে। EL তে ব্যবহারকারী বিভিন্ন ধরনের অপারেটর, মেথড কল, এবং অবজেক্ট অ্যাক্সেস করতে পারে, যা কোডিং প্রক্রিয়াকে সহজ এবং স্বচ্ছ করে তোলে।

Content added By

EL এর মাধ্যমে Implicit Objects Access করা

266

JSP (Java Server Pages) এ EL (Expression Language) একটি সহজ এবং সুবিধাজনক উপায় যা দিয়ে আপনি JSP পেজে JavaBeans, সেশন, অ্যাপ্লিকেশন, রিকোয়েস্ট এবং অন্যান্য Implicit Objects অ্যাক্সেস করতে পারেন। EL ব্যবহার করে জটিল Java কোড লেখার প্রয়োজন ছাড়াই সরাসরি এই অবজেক্টগুলির মান বের করা যায়। এটি JSP পেজে ডাটা এক্সপ্রেশন সিমপ্লিফাই করে।

Implicit Objects:

JSP এ কিছু Implicit Objects রয়েছে যা সরাসরি JSP পেজে ব্যবহার করা যায়। এগুলি হল:

  1. request: HTTP রিকোয়েস্ট অবজেক্ট
  2. response: HTTP রেসপন্স অবজেক্ট
  3. session: HTTP সেশন অবজেক্ট
  4. application: সার্ভলেট কনটেক্সট অবজেক্ট
  5. out: পৃষ্ঠা আউটপুট স্ট্রিম
  6. config: সার্ভলেট কনফিগারেশন অবজেক্ট
  7. pageContext: পেজ কনটেক্সট অবজেক্ট
  8. exception: ত্রুটি অবজেক্ট (যখন ত্রুটি ঘটে)
  9. page: বর্তমান পৃষ্ঠা অবজেক্ট

EL (Expression Language) দ্বারা এই Implicit Objects গুলি খুব সহজে অ্যাক্সেস করা যায়।


EL ব্যবহার করে Implicit Objects অ্যাক্সেস:

EL এক্সপ্রেশন সাধারণত ${} সাইন ব্যবহার করে লেখা হয়, যেখানে অবজেক্টের মান সরাসরি এক্সপ্রেস করা হয়।

1. request:

request অবজেক্টটি HTTP রিকোয়েস্টের সাথে সম্পর্কিত ডাটা ধারণ করে।

<p>Request URL: ${request.requestURL}</p>
<p>Request Method: ${request.method}</p>

2. session:

session অবজেক্টের মাধ্যমে ব্যবহারকারীর সেশন সম্পর্কিত তথ্য পাওয়া যায়।

<p>Session ID: ${session.id}</p>
<p>User attribute: ${session.getAttribute("username")}</p>

3. application:

application অবজেক্টটি সার্ভলেট কনটেক্সট অবজেক্টকে নির্দেশ করে, যা অ্যাপ্লিকেশন-লেভেল তথ্য ধারণ করে।

<p>Application context path: ${application.contextPath}</p>
<p>App attribute: ${application.getAttribute("appName")}</p>

4. out:

out অবজেক্ট ব্যবহারকারীর জন্য HTML আউটপুট তৈরি করতে ব্যবহৃত হয়।

<p>Output text: ${out}</p>

5. exception:

যখন ত্রুটি ঘটে, তখন exception অবজেক্টটি ত্রুটির বিশদ তথ্য প্রদান করে।

<%@ page isErrorPage="true" %>
<p>Error occurred: ${exception.message}</p>

6. pageContext:

pageContext অবজেক্ট পেজের কনটেক্সট প্রদান করে।

<p>Page context information: ${pageContext.pageScope}</p>

7. config:

config অবজেক্টটি সার্ভলেট কনফিগারেশন তথ্য ধারণ করে।

<p>Servlet Name: ${config.servletName}</p>

8. page:

page অবজেক্টটি বর্তমান JSP পেজটিকে নির্দেশ করে।

<p>Page: ${page}</p>

EL এর সুবিধা:

  1. সহজ এবং সংক্ষিপ্ত: EL কে Java কোডের পরিবর্তে সহজে ব্যবহার করা যায়। এতে কোনো স্ক্রিপ্টিং কোড লেখার প্রয়োজন পড়ে না।
  2. পেজের পাঠযোগ্যতা বৃদ্ধি: EL ব্যবহার করে JSP পেজের কোড আরও পরিষ্কার এবং সহজবোধ্য হয়।
  3. এমবেডেড ডাটা অ্যাক্সেস: EL এর মাধ্যমে ডাটা সরাসরি HTML কন্টেন্টের মধ্যে এক্সপ্রেস করা যায়।

সারাংশ

JSP এ Expression Language (EL) ব্যবহার করে Implicit Objects যেমন request, session, application, out, exception, config ইত্যাদি অ্যাক্সেস করা সম্ভব। EL এর মাধ্যমে জটিল Java কোড ছাড়াই এই অবজেক্টগুলির মান সহজে পাওয়া যায় এবং ডাটাকে সরাসরি পেজে এক্সপ্রেস করা যায়, যা JSP পেজের পাঠযোগ্যতা এবং কার্যকারিতা উন্নত করে।

Content added By

উদাহরণ সহ EL এর ব্যবহার

245

EL (Expression Language) হল একটি শক্তিশালী এবং সহজ-উপযোগী ভাষা যা জেএসপি (JSP) এবং সাভলেট (Servlet) টেমপ্লেটিংয়ের মধ্যে ডাইনামিক কন্টেন্ট যোগ করার জন্য ব্যবহৃত হয়। এটি জেএসপি পেজে ডাইনামিক এক্সপ্রেশন রেন্ডার করতে সাহায্য করে, যেমন JavaBeans, সেশন অ্যাট্রিবিউট, এবং রিকোয়েস্ট প্যারামিটারগুলি। EL ব্যবহারের মাধ্যমে আপনি কোডিং এর পরিমাণ কমাতে পারেন এবং কোড আরও পরিষ্কার ও সহজভাবে লিখতে পারেন।

EL এর সুবিধা


  • সহজ এবং স্পষ্ট সিনট্যাক্স: EL এক্সপ্রেশনটি #{} বা ${} এর মধ্যে ব্যবহার করা হয়, যা কোড লেখার প্রক্রিয়াকে সহজ এবং সোজা করে।
  • ডাইনামিক ডেটা প্রদর্শন: EL ব্যবহার করে বিভিন্ন ধরনের ডাইনামিক ডেটা যেমন রিকোয়েস্ট প্যারামিটার, সেশন অ্যাট্রিবিউট, এবং অ্যাপ্লিকেশন স্কোপের ডেটা সরাসরি HTML পেজে ইনজেক্ট করা যায়।
  • কোডের পরিমাণ কমানো: Java কোডের পরিবর্তে সরাসরি EL ব্যবহার করা হলে, কোড কম এবং পরিষ্কার থাকে।

EL এর গঠন


EL এর সাধারণ গঠন হল ${expression} অথবা ${} এর ভিতরে এক্সপ্রেশন দেওয়া হয়। এখানে expression হল সেই ডেটা বা ভেরিয়েবল যার মান আপনি HTML পেজে প্রদর্শন করতে চান।


উদাহরণ: EL এর ব্যবহার


1. সাধারণ EL এক্সপ্রেশন

এটি একটি খুব সাধারণ উদাহরণ, যেখানে name ভেরিয়েবলকে HTML পেজে প্রদর্শন করা হচ্ছে।

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
  <body>
    <h2>Welcome, ${name}!</h2>
  </body>
</html>

এখানে ${name} EL এক্সপ্রেশন ব্যবহার করা হয়েছে, যা name ভেরিয়েবল থেকে ডেটা নেবে এবং সেই ডেটা HTML পেজে প্রদর্শন করবে। আপনি যদি পেজের স্কোপে name ভেরিয়েবল সেট করেন, তাহলে এটি সেই মান প্রদর্শন করবে।

2. অবজেক্টের প্রপার্টি অ্যাক্সেস করা

আপনি EL এর মাধ্যমে JavaBeans বা অবজেক্টের প্রপার্টি অ্যাক্সেস করতে পারেন। ধরুন, আমাদের একটি Person ক্লাস রয়েছে যার মধ্যে name এবং age প্রপার্টি রয়েছে।

public class Person {
    private String name;
    private int age;

    // getters and setters
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
}

এখন, আপনি এই JavaBeans অবজেক্টটির প্রপার্টি EL এর মাধ্যমে অ্যাক্সেস করতে পারেন।

<%@ page import="com.example.Person" %>
<%
    Person person = new Person();
    person.setName("John");
    person.setAge(30);
    pageContext.setAttribute("person", person);
%>
<html>
  <body>
    <h2>Person's Name: ${person.name}</h2>
    <h3>Person's Age: ${person.age}</h3>
  </body>
</html>

এখানে, person.name এবং person.age EL ব্যবহার করে Person অবজেক্টের প্রপার্টি অ্যাক্সেস করা হয়েছে।

3. Request, Session, এবং Application স্কোপে ডেটা অ্যাক্সেস করা

EL ব্যবহার করে আপনি request, session, এবং application স্কোপের ডেটা সহজে অ্যাক্সেস করতে পারেন।

<%@ page session="true" %>
<%
    session.setAttribute("user", "Alice");
%>
<html>
  <body>
    <h2>Welcome, ${sessionScope.user}!</h2>
  </body>
</html>

এখানে, ${sessionScope.user} EL এক্সপ্রেশন ব্যবহার করে সেশন স্কোপে সংরক্ষিত user অ্যাট্রিবিউট অ্যাক্সেস করা হয়েছে। একইভাবে আপনি requestScope এবং applicationScope ব্যবহার করে রিকোয়েস্ট বা অ্যাপ্লিকেশন স্কোপের ডেটা অ্যাক্সেস করতে পারেন।

4. কন্ডিশনাল এবং লুপ অপারেশন

EL ব্যবহার করে আপনি কিছু সহজ কন্ডিশনাল চেক এবং লুপ অপারেশনও করতে পারেন। উদাহরণস্বরূপ:

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
  <body>
    <c:choose>
      <c:when test="${user != null}">
        <h2>Welcome, ${user}!</h2>
      </c:when>
      <c:otherwise>
        <h2>Please log in.</h2>
      </c:otherwise>
    </c:choose>
  </body>
</html>

এখানে, JSTL ট্যাগ ব্যবহার করা হয়েছে, যা EL এক্সপ্রেশনকে সহজে কন্ডিশনাল চেকের মধ্যে ইনক্লুড করে।


EL এর উপকারিতা


  • সহজ সিনট্যাক্স: EL ব্যবহার করে আপনি কমপ্লেক্স Java কোডিংয়ের পরিবর্তে সরাসরি ডাইনামিক কন্টেন্ট প্রদর্শন করতে পারেন।
  • ডাইনামিক ডেটা প্রদর্শন: EL আপনাকে স্কোপের বিভিন্ন ডেটা যেমন রিকোয়েস্ট, সেশন, অ্যাপ্লিকেশন স্কোপে থাকা ডেটা প্রদর্শন করতে সহায়তা করে।
  • কোড পরিস্কার রাখা: EL কোডের পরিমাণ কমিয়ে দেয় এবং এটি HTML টেমপ্লেটের মধ্যে Java কোড প্রবাহিত করতে সাহায্য করে।

এভাবে EL (Expression Language) ব্যবহার করে আপনি জেএসপি পেজে ডাইনামিক কন্টেন্ট প্রবর্তন করতে পারেন এবং আপনার কোডিং প্রক্রিয়াকে আরও সহজ এবং পরিষ্কার রাখতে পারেন।

Content added By
Promotion

Are you sure to start over?

Loading...