Java Server Pages (JSP) হলো একটি সার্ভার-সাইড টেকনোলজি, যা Java ভিত্তিক ওয়েব অ্যাপ্লিকেশন তৈরি করতে ব্যবহার করা হয়। এটি HTML পেজে Java কোড এমবেড করে ডাইনামিক কন্টেন্ট জেনারেট করতে সক্ষম। JSP সাধারণত ভিজিটরের রিকোয়েস্ট অনুযায়ী ডাইনামিক ওয়েব পেজ তৈরি করতে ব্যবহৃত হয় এবং এটি Java Servlet API এর উপর ভিত্তি করে কাজ করে।
কেন JSP প্রয়োজন? ডাইনামিক কন্টেন্ট তৈরি : ব্যবহারকারীর রিকোয়েস্ট অনুযায়ী ডাইনামিক কন্টেন্ট জেনারেট করা যায়।সার্ভার-সাইড প্রসেসিং : ক্লায়েন্টের অনুরোধ প্রসেস করে ফলাফল হিসেবে HTML পেজ রেন্ডার করা যায়।Java এবং HTML এর সমন্বয় : HTML এবং Java কোড একত্রে লিখে সহজে ওয়েব পেজ তৈরি করা যায়।Java Servlet এর বিকল্প : JSP সার্ভলেটের বিকল্প হিসেবে সহজেই ব্যবহার করা যায় এবং HTML রেন্ডারিংয়ের জন্য কম কোড লাগে।MVC আর্কিটেকচারের সুবিধা : JSP কে ভিউ (View) হিসেবে ব্যবহার করে সহজে MVC আর্কিটেকচার তৈরি করা যায়।JSP কিভাবে কাজ করে? JSP কম্পাইল : প্রথমবার কোনো JSP পেজ অ্যাক্সেস করার সময় সার্ভার JSP পেজটিকে একটি সার্ভলেটে কম্পাইল করে।সার্ভলেট প্রসেসিং : যখনই JSP পেজটি রিকোয়েস্ট করা হয়, তখন সেই সার্ভলেট এক্সিকিউট হয়ে HTML আউটপুট হিসেবে রেন্ডার করে।রেসপন্স পাঠানো : সার্ভার রেন্ডারকৃত HTML ক্লায়েন্টের ব্রাউজারে পাঠিয়ে দেয়।JSP এর মৌলিক ট্যাগসমূহ ডিরেক্টিভ ট্যাগ : JSP পেজে ডিরেক্টিভ সেট করতে ব্যবহৃত হয়। যেমন <%@ page %>
, <%@ include %>
, এবং <%@ taglib %>
।স্ক্রিপ্টলেট ট্যাগ : Java কোড এমবেড করতে <% ... %>
ট্যাগ ব্যবহার করা হয়।এক্সপ্রেশন ট্যাগ : Java এক্সপ্রেশন যোগ করতে <%= ... %>
ট্যাগ ব্যবহার করা হয়।ডিক্লারেশন ট্যাগ : মেথড বা ভ্যারিয়েবল ডিক্লেয়ার করতে <%! ... %>
ট্যাগ ব্যবহার করা হয়।JSP ট্যাগসমূহের উদাহরণ ১. ডিরেক্টিভ ট্যাগ (<%@ ... %>
) <%@ page language="java" contentType="text/html; charset=UTF-8" %>
<%@ include file="header.jsp" %>
Copy
page : পেজের বৈশিষ্ট্য (যেমন ভাষা, কন্টেন্ট টাইপ) সেট করতে ব্যবহৃত হয়।include : অন্য JSP ফাইল বা HTML ফাইল ইনক্লুড করতে ব্যবহৃত হয়।২. স্ক্রিপ্টলেট ট্যাগ (<% ... %>
) <%
String name = "John Doe" ;
out.println("Hello, " + name);
%>
Copy
স্ক্রিপ্টলেট ট্যাগে Java কোড যুক্ত করা হয় যা HTML আউটপুটে প্রভাব ফেলে। ৩. এক্সপ্রেশন ট্যাগ (<%= ... %>
) <p>Welcome, <%= name %>!</p>
Copy
এক্সপ্রেশন ট্যাগে সরাসরি কোন ভ্যারিয়েবলের মান রিটার্ন করে HTML-এ আউটপুট হিসাবে দেখানো হয়। ৪. ডিক্লারেশন ট্যাগ (<%! ... %>
) <%!
private String getGreeting () {
return "Hello from JSP!" ;
}
%>
<p><%= getGreeting() %></p>
Copy
ডিক্লারেশন ট্যাগে ভ্যারিয়েবল বা মেথড ডিক্লেয়ার করা যায়, যা পেজের কোথাও ব্যবহার করা যেতে পারে। উদাহরণ: একটি সাধারণ JSP পেজ নিচের উদাহরণে একটি সাধারণ JSP পেজ তৈরি করা হয়েছে, যা ব্যবহারকারীর নাম নিয়ে তাকে স্বাগত জানায়।
<%@ page language="java" contentType="text/html; charset=UTF-8" %>
<!DOCTYPE html>
<html>
<head>
<title>Welcome Page</title>
</head>
<body>
<%
String name = request.getParameter("name" );
if (name == null || name.isEmpty()) {
name = "Guest" ;
}
%>
<h1>Welcome, <%= name %>!</h1>
</body>
</html>
Copy
বিবরণ :
request.getParameter("name")
দিয়ে URL থেকে নাম সংগ্রহ করা হয়েছে।যদি নাম না থাকে, তাহলে name
এর মান "Guest"
দেয়া হয়েছে এবং <%= name %>
দিয়ে আউটপুটে দেখানো হয়েছে। JSP এক্সপ্রেশন ল্যাঙ্গুয়েজ (EL) JSP এর এক্সপ্রেশন ল্যাঙ্গুয়েজ (EL) ব্যবহার করে সহজেই পেজের ডেটা এক্সেস এবং প্রদর্শন করা যায়।
উদাহরণ: JSP EL ব্যবহার <p>Welcome, ${name}!</p>
Copy
${name}
EL সিনট্যাক্স ব্যবহার করে সরাসরি name
ভ্যারিয়েবলের মান প্রদর্শন করা হয়েছে।EL অটোমেটিক্যালি request
, session
, application
scope থেকে ডেটা খুঁজে বের করে। JSP এর সুবিধা এবং সীমাবদ্ধতা সুবিধা Java এবং HTML সমন্বয় : Java কোড HTML পেজের মধ্যে সহজেই এমবেড করা যায়।ডাইনামিক কন্টেন্ট : JSP ব্যবহার করে ডাইনামিক কন্টেন্ট তৈরি করা যায়।সার্ভলেটের চেয়ে সহজ : Java Servlet এর তুলনায় HTML রেন্ডারিংয়ে সহজ।MVC সমর্থন : JSP ভিউ (View) হিসেবে ব্যবহার করে সহজেই MVC আর্কিটেকচার তৈরি করা যায়।সীমাবদ্ধতা জটিলতা : বড় এবং জটিল পেজের ক্ষেত্রে কোড জটিল হতে পারে।মেইনটেনেন্স সমস্যা : বড় অ্যাপ্লিকেশন মেইনটেন করা কঠিন হতে পারে।লজিক এবং প্রেজেন্টেশন মিক্সিং : JSP তে লজিক এবং প্রেজেন্টেশন একসাথে মিক্স হওয়ায় কোডের মেইনটেনেন্স কঠিন হতে পারে।বিকল্প টেকনোলজি : এখন Java ফ্রেমওয়ার্কে থাইমলিফ, JSF, এবং Spring Boot এর মত অন্যান্য টেমপ্লেট ইঞ্জিন ব্যবহার করা হচ্ছে।সারসংক্ষেপ JSP হলো Java ভিত্তিক সার্ভার-সাইড টেকনোলজি, যা ওয়েব পেজে ডাইনামিক কন্টেন্ট জেনারেট করতে সাহায্য করে।এটি বিভিন্ন ট্যাগ (ডিরেক্টিভ, স্ক্রিপ্টলেট, এক্সপ্রেশন) এবং EL (Expression Language) এর মাধ্যমে সহজেই HTML এর সাথে Java কোড এমবেড করতে পারে। JSP মূলত ভিউ (View) হিসেবে ব্যবহৃত হয় এবং এটি MVC আর্কিটেকচারে সহজে একীভূত করা যায়। JSP ব্যবহার করে Java ভিত্তিক ডাইনামিক ওয়েব অ্যাপ্লিকেশন তৈরি করা সহজ হয়, যা বিভিন্ন ধরনের এন্টারপ্রাইজ অ্যাপ্লিকেশন ডেভেলপমেন্টের জন্য সহায়ক।