JSP ডাইরেকটিভস হল একটি বিশেষ নির্দেশ যা JSP পৃষ্ঠার কনফিগারেশন নিয়ন্ত্রণ করে। এগুলি জাভা কোডের সাথে মেশানো হয় না, বরং JSP পৃষ্ঠার উপরের অংশে উপস্থিত থাকে এবং পৃষ্ঠার সার্বিক আচরণ বা কনফিগারেশন সেট করে। ডাইরেকটিভস মূলত তিন ধরনের হতে পারে: page, include, এবং taglib।
page ডাইরেকটিভের মাধ্যমে JSP পৃষ্ঠার বৈশিষ্ট্য সেট করা হয়। এটি পৃষ্ঠার আচরণ নিয়ন্ত্রণ করতে ব্যবহৃত হয়, যেমন কোড কম্পাইলেশন টাইম, কোড ইনক্লুড করা ইত্যাদি। page
ডাইরেকটিভের কিছু গুরুত্বপূর্ণ অ্যাট্রিবিউট নিচে দেওয়া হলো:
java
).text/html
.true
বা false
).উদাহরণ:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" %>
এই উদাহরণে, language
অ্যাট্রিবিউট java
সেট করা হয়েছে এবং contentType
HTML পৃষ্ঠার ক্যারেক্টার এনকোডিং নির্ধারণ করছে।
include ডাইরেকটিভের মাধ্যমে একাধিক JSP ফাইলকে একত্রিত করা যায়। এটি একটি ফাইলের কনটেন্ট অন্য একটি JSP পৃষ্ঠায় অন্তর্ভুক্ত করে, যা কোড পুনঃব্যবহার করতে সহায়তা করে এবং কন্টেন্টের পুনরাবৃত্তি এড়াতে সাহায্য করে।
উদাহরণ:
<%@ include file="header.jsp" %>
এই উদাহরণে, header.jsp
ফাইলটি বর্তমান JSP পৃষ্ঠায় অন্তর্ভুক্ত করা হয়েছে।
taglib ডাইরেকটিভের মাধ্যমে JSP পৃষ্ঠায় কাস্টম ট্যাগ লাইব্রেরি ব্যবহার করা হয়। এটি JSP পৃষ্ঠায় অতিরিক্ত ট্যাগগুলিকে সংজ্ঞায়িত ও ব্যবহৃত করতে সহায়তা করে।
উদাহরণ:
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
এই উদাহরণে, JSTL core
লাইব্রেরি ইমপোর্ট করা হয়েছে এবং প্রিফিক্স c
হিসেবে ব্যবহার করা হয়েছে। এরপর আপনি c
প্রিফিক্স ব্যবহার করে JSTL ট্যাগগুলো ব্যবহার করতে পারবেন।
JSP ডাইরেকটিভস ব্যবহারের মাধ্যমে JSP পৃষ্ঠার কনফিগারেশন ও কাস্টমাইজেশন করা যায়, যা কোডের পুনঃব্যবহার এবং সিস্টেমের কার্যকারিতা বাড়াতে সহায়তা করে।
জেএসপি (JSP) ডিরেকটিভস (Directives) হল এমন নির্দেশনা বা কমান্ড যা জেএসপি পেজের মধ্যে সার্ভারকে কিছু নির্দিষ্ট তথ্য বা কনফিগারেশন সরবরাহ করে। এগুলি জেএসপি পেজের একটি বিশেষ অংশ, যেখানে আপনি পেজের আচরণ বা বৈশিষ্ট্য কনফিগার করতে পারেন। জেএসপি ডিরেকটিভ সাধারণত পেজের শুরুর দিকে ব্যবহৃত হয় এবং এগুলি কোড বা প্রোগ্রাম লজিকের চেয়ে কনফিগারেশন বিষয়ক।
জেএসপি ডিরেকটিভস তিন ধরনের হতে পারে:
পেজ ডিরেকটিভের মাধ্যমে জেএসপি পেজের বৈশিষ্ট্য নির্ধারণ করা হয়, যেমন পেজের ভাষা, কনটেন্ট টাইপ, অথবা কোডের মধ্যে ব্যবহৃত বিশেষ সেটিংস।
উদাহরণ:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>
এই ডিরেকটিভটি পেজের ভাষা, কনটেন্ট টাইপ এবং পেজ এনকোডিং সেট করে।
ইনক্লুড ডিরেকটিভ ব্যবহার করে একাধিক জেএসপি পেজের মধ্যে কোড বা কনটেন্ট পুনরায় ব্যবহার করা যায়। এটি পেজের ভিতরে অন্য পেজ বা ফাইলকে অন্তর্ভুক্ত করতে ব্যবহৃত হয়।
উদাহরণ:
<%@ include file="header.jsp" %>
এই ডিরেকটিভটি header.jsp
নামক ফাইলটিকে অন্তর্ভুক্ত করবে। এটি কোডের পুনঃব্যবহারযোগ্যতা বৃদ্ধি করে এবং একাধিক পেজের মধ্যে সাধারণ কনটেন্ট ভাগ করে নেওয়ার সুবিধা দেয়।
এই ডিরেকটিভটি জেএসপি পেজে ট্যাগ লাইব্রেরি (যেমন JSTL) ব্যবহার করার জন্য প্রয়োজনীয় নির্দেশনা প্রদান করে। এর মাধ্যমে আপনি কাস্টম ট্যাগ বা স্ট্যান্ডার্ড ট্যাগ লাইব্রেরি ব্যবহার করতে পারেন।
উদাহরণ:
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
এই ডিরেকটিভটির মাধ্যমে JSTL ট্যাগ লাইব্রেরি যুক্ত করা হয়, যেখানে c
হল ট্যাগের প্রিফিক্স যা পরবর্তীতে কোডে ব্যবহার করা হবে।
ডিরেকটিভস ব্যবহার করলে জেএসপি পেজের কার্যক্ষমতা, কনফিগারেশন এবং কোড রক্ষণাবেক্ষণ আরো উন্নত হয়, যা ডেভেলপমেন্ট প্রক্রিয়াকে আরো সহজ এবং সুসংগঠিত করে।
Page Directive বা <%@ page %>
জেএসপি ফাইলের অন্যতম গুরুত্বপূর্ণ ডিরেকটিভ, যা জেএসপি পেজের বিভিন্ন সেটিংস এবং কনফিগারেশন নির্ধারণ করতে ব্যবহৃত হয়। এটি পেজের বৈশিষ্ট্য যেমন কনটেন্ট টাইপ, ল্যাঙ্গুয়েজ, এনকোডিং, কোডবিহাইন্ড ক্লাস, এবং অন্যান্য পেজ সম্পর্কিত তথ্য কনফিগার করার জন্য ব্যবহৃত হয়।
Page Directive এর গঠন কিছুটা নিম্নরূপ:
<%@ page attribute="value" %>
এখানে attribute হলো পেজের কনফিগারেশন সেটিংস এবং value হলো তাদের মান।
1. contentTypecontentType
অ্যাট্রিবিউটটি পেজের কনটেন্ট টাইপ বা MIME টাইপ নির্ধারণ করে। এটি সাধারণত HTML বা XML কনটেন্ট টাইপ হিসেবে সেট করা হয়, এবং ওয়েব ব্রাউজারকে নির্দেশ দেয় কীভাবে পেজটি প্রদর্শন করবে।
<%@ page contentType="text/html; charset=UTF-8" %>
এখানে, text/html; charset=UTF-8
সেটিং পেজটির কনটেন্ট টাইপ এবং চরিত্র এনকোডিং নির্দেশ করে।
2. languagelanguage
অ্যাট্রিবিউটটি পেজে ব্যবহৃত প্রোগ্রামিং ভাষা নির্ধারণ করে। সাধারণত এটি java
সেট করা হয়, কারণ জেএসপি Java প্রযুক্তির উপর ভিত্তি করে কাজ করে।
<%@ page language="java" %>
এটি জেএসপি পেজকে Java প্রোগ্রামিং ভাষায় লেখা এবং প্রসেস করা নির্দেশ দেয়।
3. importimport
অ্যাট্রিবিউটটি Java ক্লাস এবং প্যাকেজ আমদানি করতে ব্যবহৃত হয়। যদি আপনার জেএসপি পেজে কোনো Java ক্লাস ব্যবহার করতে হয়, তবে আপনি এই অ্যাট্রিবিউটের মাধ্যমে সেই ক্লাসগুলো আমদানি করতে পারেন।
<%@ page import="java.util.*, com.example.Model" %>
এখানে, java.util.*
এবং com.example.Model
প্যাকেজগুলো আমদানি করা হয়েছে।
4. sessionsession
অ্যাট্রিবিউটটি নির্ধারণ করে যে পেজটি HTTP সেশন ব্যবহার করবে কি না। এটি সাধারনত true
বা false
হতে পারে। ডিফল্ট মান true
থাকে, যার অর্থ পেজটি HTTP সেশন ব্যবহার করবে।
<%@ page session="false" %>
এটি নির্দেশ করে যে এই পেজটি কোনো HTTP সেশন ব্যবহার করবে না।
5. bufferbuffer
অ্যাট্রিবিউটটি পেজের আউটপুট বাফারিং সাইজ নির্ধারণ করে। এটি সাধারনত 8kb
এর মতো কোন মানে দেয়া হয়, যা পেজের আউটপুট স্ট্রিমে কতটুকু ডেটা আগে জমা হবে তা নির্দেশ করে।
<%@ page buffer="16kb" %>
এটি আউটপুট স্ট্রিমের জন্য 16 কিলোবাইট বাফার সাইজ নির্ধারণ করবে।
6. isThreadSafeisThreadSafe
অ্যাট্রিবিউটটি নির্ধারণ করে যে পেজটি থ্রেড সেফ হবে কিনা। যদি false
হয়, তবে পেজের কোড একাধিক থ্রেড দ্বারা একযোগে প্রসেস করা হবে না। সাধারণত এটি true
থাকে।
<%@ page isThreadSafe="false" %>
7. errorPageerrorPage
অ্যাট্রিবিউটটি নির্ধারণ করে যে, কোনো ভুল (exception) ঘটলে কোন পেজটি দেখানো হবে। এটি সাধারণত একটি এ্যারর পেজের পাথ সিলেক্ট করতে ব্যবহৃত হয়।
<%@ page errorPage="error.jsp" %>
এটি নির্দেশ করে যে, যদি কোনো ত্রুটি ঘটে, তবে error.jsp
পেজটি প্রদর্শিত হবে।
সারাংশ
Page Directive (<%@ page %>
) জেএসপি পেজে বিভিন্ন গুরুত্বপূর্ণ কনফিগারেশন সেটিংস নির্ধারণ করতে ব্যবহৃত হয়। এর মাধ্যমে পেজের কনটেন্ট টাইপ, ভাষা, ক্লাস আমদানি, সেশন ব্যবহারের সিদ্ধান্ত, থ্রেড সেফটি ইত্যাদি নির্ধারণ করা হয়।
JSP (Java Server Pages) এ Include Directive <%@ include %>
ব্যবহার করা হয় বিভিন্ন ফাইলের কন্টেন্টকে একটি JSP পেজে অন্তর্ভুক্ত (include) করার জন্য। এটি একটি কম্পাইল টাইম ডিরেকটিভ, যার মাধ্যমে একটি JSP পেজে অন্য JSP পেজের কন্টেন্ট যোগ করা যায়।
<%@ include %>
directive মূলত সেসময় কার্যকর হয় যখন JSP পেজটি কম্পাইল এবং রান হয়। এতে নির্দিষ্ট ফাইলের কন্টেন্ট সেই JSP পেজে সরাসরি অন্তর্ভুক্ত হয়ে যায়। এর মাধ্যমে পুনরায় ব্যবহারযোগ্য কন্টেন্ট যেমন হেডার, ফুটার, সাইডবার ইত্যাদি একাধিক পেজে অন্তর্ভুক্ত করা যেতে পারে।
<%@ include file="file_name" %>
এখানে file_name
হচ্ছে সেই ফাইলটির নাম যেটি আপনি ইনক্লুড করতে চান। ফাইলটি সাধারণত .jsp
, .html
, .txt
বা অন্য যেকোনো টেক্সট ফাইল হতে পারে।
ধরা যাক আমাদের একটি ওয়েব অ্যাপ্লিকেশন আছে যেখানে একটি হেডার এবং ফুটার ফাইল একাধিক পেজে ব্যবহার করা হবে। নিচে দেখানো হলো কীভাবে <%@ include %>
directive ব্যবহার করা যায়।
<html>
<head>
<title>My Web Page</title>
</head>
<body>
<header>
<h1>Welcome to My Website</h1>
</header>
<footer>
<p>© 2024 My Website. All rights reserved.</p>
</footer>
</body>
</html>
<%@ include file="header.jsp" %>
<h2>This is the main content of the page.</h2>
<p>Welcome to my site. Enjoy browsing!</p>
<%@ include file="footer.jsp" %>
main.jsp
ফাইলটি রান করা হবে, তখন এটি প্রথমে header.jsp
ফাইলের কন্টেন্ট অন্তর্ভুক্ত করবে, তারপর মূল কন্টেন্ট (যেমন <h2>
এবং <p>
ট্যাগ) প্রদর্শন করবে, এবং শেষে footer.jsp
ফাইলের কন্টেন্ট অন্তর্ভুক্ত করবে।JSP তে Include Directive এবং Include Action দুটি আলাদা বিষয়।
<jsp:include>
): এটি রানটাইমে কাজ করে এবং সেসময় কন্টেন্ট অন্তর্ভুক্ত করে যখন পেজটি ব্যবহারকারীকে প্রদর্শিত হয়।Include Directive (যেমন <%@ include %>
) মূলত কোডের পুনঃব্যবহারযোগ্যতা এবং মেইনটেনেবিলিটি বাড়ানোর জন্য ব্যবহৃত হয়, বিশেষত যখন একাধিক পেজে একই কন্টেন্ট (যেমন হেডার বা ফুটার) বারবার ব্যবহার করতে হয়।
Taglib Directive হল একটি জেএসপি ডিরেকটিভ যা জেএসপি পেজে ট্যাগ লাইব্রেরি (Tag Library) ব্যবহার করার জন্য ব্যবহৃত হয়। এটি জেএসপি পেজে Java Server Pages Standard Tag Library (JSTL) অথবা অন্যান্য কাস্টম ট্যাগ লাইব্রেরি অন্তর্ভুক্ত করতে সহায়তা করে। taglib
ডিরেকটিভটি ট্যাগ লাইব্রেরি এবং সেই লাইব্রেরির prefix (এলার্নেটিভ নাম) পেজে ডিফাইন করতে ব্যবহৃত হয়।
Taglib directive ব্যবহারের সঠিক সিনট্যাক্স হলো:
<%@ taglib prefix="prefixName" uri="libraryURI" %>
এখানে:
c
হল JSTL লাইব্রেরির জন্য একটি সাধারণ প্রিফিক্স।JSTL ট্যাগ লাইব্রেরি ব্যবহার করা
JSTL (JSP Standard Tag Library) একটি জনপ্রিয় ট্যাগ লাইব্রেরি যা সাধারণত জেএসপি পেজে ব্যবহার করা হয়। এটি অনেক ধরণের কার্যকরী ট্যাগ সরবরাহ করে, যেমন লুপিং, কন্ডিশনাল চেকিং, ইত্যাদি।
JSTL ট্যাগ ব্যবহার করতে প্রথমে taglib
ডিরেকটিভ দিয়ে লাইব্রেরি অন্তর্ভুক্ত করতে হয়। উদাহরণস্বরূপ:
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
এই ডিরেকটিভটির মাধ্যমে JSTL ট্যাগ লাইব্রেরির core অংশ ব্যবহার করা হয় এবং c
নামক প্রিফিক্সের মাধ্যমে আপনি তার ট্যাগ ব্যবহার করতে পারবেন।
JSTL ট্যাগ উদাহরণ:
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<body>
<c:forEach var="item" items="${itemsList}">
<p>${item}</p>
</c:forEach>
</body>
</html>
এখানে c:forEach
ট্যাগটি JSTL এর একটি লুপ ট্যাগ, যা itemsList
থেকে প্রতিটি item
এ লুপ চালিয়ে HTML পেজে প্রিন্ট করবে।
কাস্টম ট্যাগ লাইব্রেরি ব্যবহার করা
আপনি যদি কাস্টম ট্যাগ লাইব্রেরি তৈরি করতে চান, তবে সেটিও taglib
ডিরেকটিভের মাধ্যমে ব্যবহার করা যায়। ধরুন, আপনার একটি কাস্টম ট্যাগ লাইব্রেরি আছে যা আপনি আপনার পেজে ব্যবহার করতে চান, তাহলে আপনাকে সেটি অন্তর্ভুক্ত করতে হবে।
<%@ taglib prefix="custom" uri="http://www.example.com/customtags" %>
এখানে custom
হলো আপনার কাস্টম ট্যাগ লাইব্রেরির প্রিফিক্স এবং uri
হলো সেই লাইব্রেরির লোকেশন।
Taglib Directive এর উপকারিতা
Taglib directive ব্যবহার করে আপনি সহজেই জেএসপি পেজে বাইরের ট্যাগ লাইব্রেরি অন্তর্ভুক্ত করতে পারবেন এবং সেগুলি দিয়ে ডাইনামিক কন্টেন্ট তৈরি করতে পারবেন।
জেএসপি (JSP) ডিরেকটিভ (Directives) হল বিশেষ ধরনের নির্দেশনা যা সার্ভার-পেইজের কনফিগারেশন বা আচরণ কনফিগার করতে সাহায্য করে। এগুলি মূলত পেজের হেডারে ব্যবহার করা হয় এবং এগুলি জেএসপি পেজের আচরণ, পেজ লেভেল অপশন, বা অন্যান্য কার্যকারিতা নিয়ন্ত্রণ করতে পারে।
জেএসপিতে তিন ধরনের ডিরেকটিভ আছে:
page directive পেজের মেটা তথ্য বা কনফিগারেশন সেট করতে ব্যবহৃত হয়। এটি পেজের সাধারণ সেটিংস, যেমন ইমপোর্ট করা ক্লাস, কুকি এবং সেশন ব্যবহারের অপশন, কন্টেন্ট টাইপ ইত্যাদি নির্ধারণ করতে সহায়তা করে।
সিনট্যাক্স:
<%@ page attribute="value" %>
উদাহরণ:
ধরা যাক, আমরা একটি পেজে একটি Java ক্লাস ইমপোর্ট করতে চাই:
<%@ page import="java.util.Date" %>
<html>
<head>
<title>JSP Page Example</title>
</head>
<body>
<h2>Current Date and Time: <%= new Date() %></h2>
</body>
</html>
এখানে, import="java.util.Date"
পেজ ডিরেকটিভের মাধ্যমে Date
ক্লাস ইমপোর্ট করা হয়েছে। এরপর, <%= new Date() %>
কোড দিয়ে বর্তমান তারিখ এবং সময় প্রদর্শন করা হয়েছে।
include directive পেজের মধ্যে একাধিক ফাইল অন্তর্ভুক্ত করার জন্য ব্যবহৃত হয়। এর মাধ্যমে, একটি JSP পেজে অন্য কোনো ফাইলের কন্টেন্ট অন্তর্ভুক্ত করা যায়, যা রিফ্যাক্টরিং বা কোড পুনঃব্যবহারের জন্য কার্যকরী।
সিনট্যাক্স:
<%@ include file="filename" %>
উদাহরণ:
ধরা যাক, আপনি একটি ওয়েব পেজে সাধারণ হেডার অংশ পুনঃব্যবহার করতে চান। তাহলে আপনি হেডার অংশ অন্য একটি JSP ফাইলে রাখতে পারেন এবং তা প্রতিটি পেজে ইনক্লুড করতে পারেন।
<%@ include file="header.jsp" %>
<html>
<head>
<title>My JSP Page</title>
</head>
<body>
<h1>Welcome to My Website</h1>
<!-- Content goes here -->
</body>
</html>
এখানে, header.jsp
ফাইলের কন্টেন্ট include
ডিরেকটিভের মাধ্যমে এই পেজে অন্তর্ভুক্ত করা হয়েছে।
taglib directive হল একটি বিশেষ ডিরেকটিভ যা কাস্টম ট্যাগ লাইব্রেরি ব্যবহার করতে সহায়তা করে। এটি আপনাকে নিজের কাস্টম ট্যাগ তৈরি করতে বা প্রস্তুত ট্যাগ লাইব্রেরি ব্যবহার করতে অনুমতি দেয়।
সিনট্যাক্স:
<%@ taglib uri="uri_to_library" prefix="prefix" %>
উদাহরণ:
ধরা যাক, আপনি JSTL (JSP Standard Tag Library) ব্যবহার করতে চান। প্রথমে, আপনাকে ট্যাগলাইব্রেরি ডিরেকটিভের মাধ্যমে এই লাইব্রেরি ইমপোর্ট করতে হবে।
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<html>
<head>
<title>JSTL Example</title>
</head>
<body>
<c:out value="${message}" />
</body>
</html>
এখানে, uri
হলো লাইব্রেরির অবস্থান এবং prefix
হলো সেই লাইব্রেরির জন্য নির্ধারিত সংক্ষিপ্ত নাম। c:out
ট্যাগের মাধ্যমে ${message} ভ্যারিয়েবলটির মান HTML আউটপুট হিসেবে প্রদর্শিত হবে।
সারাংশ
জেএসপি ডিরেকটিভগুলি পেজের কনফিগারেশন এবং কন্টেন্ট নিয়ন্ত্রণ করতে ব্যবহৃত হয়। এগুলি পেজের মধ্যে HTML ও Java কোডের সমন্বয় ঘটিয়ে ডাইনামিক কন্টেন্ট তৈরি করার প্রক্রিয়া সহজ করে। page
, include
, এবং taglib
ডিরেকটিভের মাধ্যমে আপনি জেএসপি পেজের কার্যকারিতা এবং কাস্টমাইজেশন উন্নত করতে পারেন।
Read more