প্রোগ্রামিং

JSP - নতুনদের জন্য দ্রুত গাইড

30 অক্টোবর, 2021

সুচিপত্র

জাভা সার্ভার পেজ কি?

দ্য জাভা সার্ভার পেজ (JSP) , একটি সার্ভার-সাইড প্রযুক্তি, ডেভেলপারদের ওয়েব পেজ তৈরি করতে সাহায্য করে, যা ব্যবহার করে এইচটিএমএল , এক্সএমএল , সাবান , ইত্যাদি হিসেবেও উল্লেখ করা হয় জাকার্তা সার্ভার পেজ . JSP-তে, বিকাশকারীরা জাভা কোড এম্বেড করতে পারে এইচটিএমএল ভাষা. JSP-তে অনন্য ট্যাগ রয়েছে, যা ব্যবহারের অনুমতি দেয় জাভা HTML এ কোড। এই ট্যাগগুলি শুরু হয় এবং শেষ হয় '<%’ এবং '%>' প্রতীক, যথাক্রমে। JSP চালানোর জন্য, আপনার সার্লেট কন্টেইনার ধারণকারী একটি ওয়েব সার্ভার প্রয়োজন। উদাহরণস্বরূপ, আপনি ব্যবহার করতে পারেন অ্যাপাচি টমক্যাট বা জেটি .

JSP থেকে মডেল করা হয় জাভা সার্লেট . জাভা সার্লেট জাকার্তা সার্ভলেটও বলা হয়। রানটাইম চলাকালীন, জেএসপিগুলি সার্লেটে রূপান্তরিত হয়; অতএব, তারা servlets বলা হয়. সাধারণত, JSP গুলি টেক্সট ফাইলে লেখা হয় এবং HTML বা XHTML কোড, JSP অ্যাকশন, XML উপাদান এবং JSP কমান্ড এম্বেড করা হয়। JSPs জাভা ওয়েব অ্যাপ্লিকেশনে ব্যবহারকারী ইন্টারফেসের ভূমিকা পালন করে। সমস্ত JSP অন্তর্নিহিত অবজেক্ট, যেমন অনুরোধ, সেশন, কনফিগারেশন, আউট, রেসপন্স, অ্যাপ্লিকেশন, পেজ এবং পেজ কনটেক্সট তৈরি করা হয়েছে ওয়েব ধারক .

আপনি ওয়েব পৃষ্ঠা ফর্ম জুড়ে আসতে পারে. এই ফর্মগুলির উদ্দেশ্য হল বিভিন্ন ব্যবহারকারীদের কাছ থেকে ডেটা সংগ্রহ করা। এই ওয়েবপেজ ফর্মগুলিতে, JSP ব্যবহার করা হয় ইনপুট হিসাবে ব্যবহারকারীদের কাছ থেকে ডেটা নেওয়ার জন্য, এই ডেটাগুলিকে ডাটাবেস আকারে সাজানো এবং ওয়েব পেজ তৈরি করার জন্য। JSP এর প্রাথমিক উদ্দেশ্য হল XML এবং HTML নথির ধরন উপস্থাপন করা। কিন্তু, এটি অন্যান্য বিন্যাসে নথি উপস্থাপন করতে পারে, যেমন এটি ব্যবহার করে আউটপুট স্ট্রিম . JSP-এর ফাইল এক্সটেনশন হল .jsp, .jspx, .jspf, এবং ইন্টারনেট মিডিয়া প্রকার হল অ্যাপ্লিকেশন/জেএসপি।

ফাইল এক্সটেনশন পরিবর্তন করে আপনি যেকোনো HTML ফাইলকে JSP ফাইলে রূপান্তর করতে পারেন .html প্রতি .jsp . এক্সটেনশন পরিবর্তন করার পরে, এইচটিএমএল পৃষ্ঠাগুলির মধ্যে জাভা কোড যোগ করতে JSP ট্যাগ ব্যবহার করুন। JPS ব্যবহার করে, বিকাশকারীরা ডায়নামিক ওয়েব তৈরি করতে পারে পৃষ্ঠা এবং প্ল্যাটফর্ম-স্বাধীন ওয়েব পেজ। আসুন আমরা JSP এর কিছু উল্লেখযোগ্য বৈশিষ্ট্য দেখি।

আমাদের চেক আউট হিউম্যান কম্পিউটার ইন্টারফেস গাইড যা নতুনদের জন্য ভালো হবে।

JSP বৈশিষ্ট্য

ডাইনামিক ওয়েব কন্টেন্ট তৈরি করার একটি সুবিধাজনক উপায় হল JSP। ডেভেলপাররা বিভিন্ন অ্যাপ্লিকেশন তৈরি করার জন্য JSP বেছে নেওয়ার বিভিন্ন কারণ রয়েছে। এখানে জাকার্তা সার্ভার পৃষ্ঠাগুলির কিছু হ্যান্ডপিক করা বৈশিষ্ট্য রয়েছে৷

  • JSP-তে অ্যাকশন এবং কাস্টম ট্যাগ আছে। অতএব, JSP এর কোড দৈর্ঘ্য আকারে ছোট।
  • JSP-তে কোড লেখা সহজ, কারণ এটি HTML বা XML পৃষ্ঠাগুলিতে জাভা প্রোগ্রামিং ভাষা এম্বেড করে।
  • JSP ডেভেলপারদের ডাটা সংগ্রহ করে ডাটাবেসে রাখতে বা ডাটাবেসে ডাটা পড়তে বা লিখতে দেয়।
  • এই সার্ভার-সাইড প্রযুক্তি অত্যন্ত নমনীয়, বহনযোগ্য এবং শক্তিশালী কারণ এটি কোনো ব্রাউজার বা সার্ভারের উপর নির্ভর করে না।
  • বারবার কম্পাইল করার জন্য JSP কোডের কোন প্রয়োজন নেই। এটি প্ল্যাটফর্ম-স্বাধীন এবং পুনরায় কম্পাইল না করে যেকোনো কনসোলে চালানো যেতে পারে।
  • JSP অন্তর্নিহিত বস্তু, servlets, এবং কাস্টম ট্যাগ অন্তর্ভুক্ত করে। অতএব, বিকাশকারীরা ইন্টারেক্টিভ এবং রিয়েল-টাইম ওয়েব পেজ তৈরি করে।
  • আমরা জাভাস্ক্রিপ্ট, পার্ল, ভিবিএসস্ক্রিপ্ট ইত্যাদির মতো JSP প্রোগ্রামে অন্যান্য স্ক্রিপ্টিং ভাষাও এম্বেড করতে পারি। ডিফল্টরূপে, জাভা হল JSP-এর স্ক্রিপ্টিং ভাষা।

কেন জাভা সার্ভার পেজ ব্যবহার করবেন?

JSP ব্যবহার করার বেশ কিছু সুবিধা রয়েছে। তারা যে অনুরূপ কাজ কমন গেটওয়ে ইন্টারফেস (CGI) . ওয়েব সার্ভারগুলি সাধারণ গেটওয়ে ইন্টারফেসে গতিশীল ওয়েব পৃষ্ঠাগুলি তৈরি করে এমন সমস্ত প্রোগ্রাম চালায়। যখন আমরা CGI-এর সাথে JSP-এর তুলনা করি, তখন JSP আরও শক্তিশালী এবং ডেভেলপারদের আরও সুবিধা দেয়। এখানে কিছু কারণ রয়েছে যা বুঝতে সাহায্য করবে কিভাবে JSP CGI এর চেয়ে বেশি সুবিধাজনক।

  • ডেভেলপাররা JSP ব্যবহার করে HTML এ ডায়নামিক এলিমেন্ট যোগ করতে পারে। যদি তারা CGI ব্যবহার করে, তবে তাদের ডায়নামিক উপাদানগুলির জন্য একটি পৃথক CGI ফাইল তৈরি করতে হবে।
  • JSPs সংকলন করা হয় এবং পরে যেকোনো প্ল্যাটফর্মে চালানো হয়। অন্যদিকে, আপনি যখনই ওয়েব পৃষ্ঠার অনুরোধ করেন তখন CGI দোভাষী লোড করে এবং কোডটি ব্যাখ্যা করে।
  • ব্যবসায়িক যুক্তি নিরীক্ষণের জন্য আপনি JSP এবং servlets একসাথে ব্যবহার করতে পারেন। Java servlet টেমপ্লেট ইঞ্জিন JSP এবং servlet এর এই সম্মিলিত মডেলটিকে সমর্থন করে।
  • JSP হল জাভা সার্লেটের একটি উচ্চ-স্তরের বিমূর্ততা। এই পৃষ্ঠাগুলি জাভা সার্লেট ইন্টারফেসের শীর্ষ স্তরে তৈরি করা হয়। তাই, তারা সমস্ত প্রাথমিক জাভা ইন্টারফেস, যেমন JAXP, JDBC, JNDI, ইত্যাদি অ্যাক্সেস করতে পারে।
  • MVC আর্কিটেকচারে, JSP এর ভিউ লেয়ার হিসেবে ব্যবহার করা হয়।
  • সমস্ত এন্টারপ্রাইজ-স্তরের অ্যাপ্লিকেশনগুলি জাভা EE নামে প্ল্যাটফর্মে কার্যকর করা হয়। জাভা EE প্ল্যাটফর্ম JSP অন্তর্ভুক্ত করে।

JSP এর সুবিধা

জাভাস্ক্রিপ্ট, স্ট্যাটিক এইচটিএমএল, পিওর সার্ভলেট ইত্যাদি অন্যান্য প্রযুক্তির তুলনায় JSP আরও দক্ষ এবং বলিষ্ঠ। এখানে আমরা দেখব যে কীভাবে JSP অন্যান্য প্রযুক্তির তুলনায় সুবিধাজনক।

  • JSP এর সবচেয়ে কাঙ্খিত সুবিধাগুলির মধ্যে একটি হল এটি এর গতিশীল অংশ লেখার জন্য জাভা প্রোগ্রামিং ভাষা ব্যবহার করে। এটি কোড লেখার জন্য ভিজ্যুয়াল বেসিক ব্যবহার করে না। দ্বিতীয়ত, এটি অন্যের সাথে সামঞ্জস্যপূর্ণ অপারেটিং সিস্টেম
  • JSP ব্যবহার করে, আমরা HTML পৃষ্ঠাগুলিতে জাভা কোড এম্বেড করি। তাই, এইচটিএমএল পরিবর্তন করা অনায়াসে।
  • এটি ওয়েব ফর্ম থেকে ডেটা পুনরুদ্ধার করে এবং ডাটাবেসের সাথে সংযুক্ত করে।
  • ওয়েব অ্যাপ্লিকেশনে, JSP বিজনেস লজিক লেয়ারকে প্রেজেন্টেশন লেয়ার থেকে আলাদা করে।
  • JSP জাভা প্রোগ্রামিং ভাষা ব্যবহার করে। সুতরাং, এটি জাভার মাল্টিথ্রেডিং ধারণাকেও সমর্থন করে।

আমরা JSP টিউটোরিয়ালে এগিয়ে যাওয়ার আগে, আমরা JSP পরিবেশ সেট আপ করার জন্য আপনাকে গাইড করব। উপরন্তু, আপনার জাভা প্রোগ্রামিং সম্পর্কে বিস্তারিত জ্ঞান প্রয়োজন। আপনার ডেস্কটপে জেএসপি পরিবেশ কীভাবে সেট-আপ করবেন তা এখন আমাদের জানা যাক।

কিভাবে একটি JSP পরিবেশ সেট আপ করবেন?

কেন আপনি JSP পরিবেশ সেট আপ করতে হবে? ডেস্কটপে JSP পরিবেশ ঠিক করা কি প্রয়োজনীয়? আপনি যদি JSP ব্যবহার করে গতিশীল ওয়েব সামগ্রী বা ওয়েব অ্যাপ্লিকেশন তৈরি করতে চান, তাহলে আপনাকে অবশ্যই JSP পরিবেশ সেট-আপ করতে হবে। এই পরিবেশ ডেভেলপারদের JSP প্রোগ্রাম লিখতে, কম্পাইল করতে, যেকোনো প্ল্যাটফর্মে চালাতে সক্ষম করে। আমরা নীচের ধাপে JSP পরিবেশ সেট আপ ব্যাখ্যা করব:

জাভা ডেভেলপমেন্ট কিট সেট আপ

প্রথম ধাপ ঠিক করা হয় জাভা ডেভেলপমেন্ট কিট (JDK) আপনার ডেস্কটপে। জাভা ডেভেলপমেন্ট কিটটি প্রয়োজনীয় কারণ আমরা JSP ব্যবহার করে HTML কোডে জাভা কোড এম্বেড করি। অতএব, JSP পরিবেশের জন্য প্রথমে JDK পরিবেশ ঠিক করা প্রয়োজন।

প্রথমত, আপনাকে ওরাকলের অফিসিয়াল থেকে জাভা সফটওয়্যার ডেভেলপমেন্ট কিট (SDK) ডাউনলোড করতে হবে ওয়েবসাইট

ডাউনলোড করার পরে, .exe ফাইলটি খুলুন এবং প্রদত্ত নির্দেশিকা ব্যবহার করে এটি ইনস্টল এবং কনফিগার করুন। পরে, আপনাকে দুটি পরিবেশ ভেরিয়েবল সেট করতে হবে, পথ এবং JAVA_HOME . আপনি সেট করতে হবে পথ এর ডেস্কটপের অবস্থানে পরিবর্তনশীল জাভা , যেমন, java_install_dir/bin, এবং JAVA_HOME অবস্থান যেখানে আছে পরিবর্তনশীল javac , যেমন, java_install_dir .

আপনার যদি উইন্ডোজ সিস্টেম থাকে এবং SDK ফাইলটি ইনস্টল করুন C:jdk1.5.0_20 অবস্থান, এই পথ যোগ করুন C:autoexec.bat ফাইল

|_+_|

আপনি যদি Windows NT, 2000, বা XP সিস্টেমে SDK ফাইলটি ইনস্টল করে থাকেন, তাহলে সেটিং করার একটি ভিন্ন উপায় আছে পথ এবং JAVA_HOME পরিবেশ ভেরিয়েবল। আপনাকে রাইট ক্লিক করতে হবে আমার কম্পিউটার , নির্বাচন করুন বৈশিষ্ট্য , ick অন উন্নত , এবং যান এনভায়রনমেন্ট ভেরিয়েবল . এখানে, আপনাকে সেট করতে হবে পথ এর অবস্থানে জাভা , যেমন, Cjdk1.5.0_20in . PATH পরিবর্তন করার পরে, ক্লিক করুন ঠিক আছে বোতাম

এখন আমরা জানব কিভাবে PATH এবং JAVA_HOEM এনভায়রনমেন্ট ভেরিয়েবল সেট করতে হয় ইউনিক্স সিস্টেমের জন্য, যেমন সোলারিস, লিনাক্স , ইত্যাদি। ধরুন আমরা SDK ফাইলটি ইনস্টল করেছি /usr/local/jdk1.5.0_20 . আপনাকে নিচের দুটি কমান্ড যোগ করতে হবে .cshrc ফাইল বিবেচনা করুন যে আমরা সি শেল ব্যবহার করি।

|_+_|

যদি আপনি ইন্টিগ্রেটেড ডেভেলপমেন্ট এনভায়রনমেন্ট (IDE) টুল ব্যবহার করেন, যেমন Eclipse, Sun ONE Studio, JBuilder, ইত্যাদি, একটি নমুনা জাভা প্রোগ্রাম নিন, কম্পাইল করুন এবং এটি চালান যাতে আপনার আইডিই টুলটি আপনার সিস্টেমে কোথায় জাভা ইনস্টল করা আছে তা জানে কিনা।

জাভা ডেভেলপমেন্ট কিট ইনস্টল করার পরে এবং PATH এবং JAVA_HOME এনভায়রনমেন্ট ভেরিয়েবল সেট করার পর, পরবর্তী ধাপ হল ওয়েব সার্ভার সেট আপ করা।

টমক্যাট ওয়েব সার্ভার সেট করা হচ্ছে

বর্তমানে বেশ কয়েকটি ওয়েব সার্ভার উপলব্ধ রয়েছে যা JSP বা Servlets-এর মাধ্যমে গতিশীল ওয়েব অ্যাপ্লিকেশনগুলিকে বিকাশ করতে সহায়তা করে। আমরা টমক্যাট ওয়েব সার্ভার ব্যবহার করব, যা ওপেন সোর্স এবং বিনামূল্যে ব্যবহার করা যায়। টমক্যাট অ্যাপাচি টমক্যাটের একটি সংক্ষিপ্ত নাম। এটি বিনামূল্যে যে কেউ ব্যবহার করতে পারেন এবং জাভা সার্ভার পেজ, সার্ভলেট, ওয়েবসকেট এবং জাভা এক্সপ্রেশন ল্যাঙ্গুয়েজের মতো বিভিন্ন সার্ভার প্রযুক্তির সাথে সামঞ্জস্যপূর্ণ। টমক্যাটে জাভা কোডটি চালানো হয় বিশুদ্ধ জাভা HTTP ওয়েব সার্ভার।

Apache Tomcat এ বেশ কিছু উপাদান রয়েছে। আসুন প্রতিটি উপাদান এবং এর ব্যবহার জানি।

  • Tomcat জন্য servlet ধারক হয় ক্যাথরিন , যা JSP এবং servlets-এর জন্য Sun Microsystem-এর স্পেসিফিকেশন ব্যবহার করে। ব্যবহারকারীর নাম, পাসওয়ার্ড এবং ব্যবহারকারীদের ভূমিকা Realm উপাদানে উপস্থিত থাকে।
  • Tomcat জন্য সংযোগকারী উপাদান হয় কোয়োট , যা HTTP 1.1 প্রোটোকলের সাথে সামঞ্জস্যপূর্ণ।
  • টমক্যাটে জেএসপি ইঞ্জিন রয়েছে জ্যাস্পার . এই ইঞ্জিন JSP টেক্সট ফাইল পার্স করে এবং জাভা কোডে কম্পাইল করে।
  • টমক্যাটের আরেকটি উপাদান ক্লাস্টার , যা বড় ওয়েব অ্যাপ্লিকেশন পরিচালনা করে।

এখানে Apache Tomcat ওয়েব সার্ভার ডাউনলোড করার পদক্ষেপগুলি রয়েছে৷

  • প্রথমত, আপনাকে Apache Tomcat এর অফিসিয়াল থেকে ডাউনলোড করতে হবে ওয়েবসাইট

আপনাকে অবশ্যই Apache Tomcat এর সর্বশেষ সংস্করণ ডাউনলোড করতে হবে।

  • সফটওয়্যারটি ডাউনলোড করার পর ডাউনলোড করা একটি নির্দিষ্ট স্থানে রাখুন। উদাহরণস্বরূপ, আপনি যদি উইন্ডোজ সিস্টেমে টমক্যাট ইনস্টল করেন তবে ডাউনলোড করা ফাইলটি সন্ধান করুন C:apache-tomcat-5.5.29 . লিনাক্স বা ইউনিক্স সিস্টেমের জন্য, ফাইলটি রাখুন /usr/local/apache-tomcat-5.5.29 .
  • ফাইলটি সনাক্ত করার পরে, তৈরি করুন ক্যাটালিনা_হোম পরিবেশ সূচক. এই ভেরিয়েবলটিকে টমক্যাট ফাইলের অবস্থানে সেট করুন, যেমন উপরে উল্লিখিত হয়েছে, যেমন, উইন্ডোজ সিস্টেমের জন্য, ভেরিয়েবলটিকে এতে সেট করুন C:apache-tomcat-5.5.29 , এবং লিনাক্স সিস্টেমের জন্য, ভেরিয়েবল সেট করুন /usr/local/apache-tomcat-5.5.29 .

Apache Tomcat সেট আপ সফলভাবে সম্পন্ন হয়েছে৷ আপনি যদি উইন্ডোজ সিস্টেমে টমক্যাট ইনস্টল করে থাকেন, তাহলে টমক্যাট অ্যাপ্লিকেশন শুরু করার জন্য দুটি কমান্ডের যেকোনো একটি অনুসরণ করুন।

|_+_|

বা

|_+_|

যদি আপনার টমক্যাট অ্যাপ্লিকেশনটি লিনাক্স সিস্টেমে ইনস্টল করা থাকে, তাহলে আপনি টমক্যাট অ্যাপ্লিকেশনটি শুরু করতে নীচের যেকোনো কমান্ড টাইপ করতে পারেন।

|_+_|

বা

|_+_|

একবার আপনি সফলভাবে টমক্যাট অ্যাপ্লিকেশন খুললে, দেখুন http://localhost:8080/ . আপনি টমক্যাটে উপস্থিত সমস্ত ডিফল্ট অ্যাপ্লিকেশন লক্ষ্য করবেন। আপনি টমক্যাটের অফিসিয়াল ওয়েবসাইটে উপলব্ধ ডকুমেন্টেশন ব্যবহার করে টমক্যাট অ্যাপ্লিকেশনটি কনফিগারেশন এবং চালাতে পারেন।

এখন, আমরা উইন্ডোজ এবং লিনাক্স সিস্টেমে টমক্যাট অ্যাপ্লিকেশন বন্ধ করার জন্য কমান্ড দেখতে পাব। উইন্ডোজ সিস্টেমে টমক্যাট অ্যাপ্লিকেশন বন্ধ করার জন্য দুটি কমান্ড রয়েছে। অনুসরণ হিসাবে তারা:

|_+_|

বা

|_+_|

লিনাস সিস্টেমের জন্য, আপনি টমক্যাট অ্যাপ্লিকেশনটি বন্ধ করার জন্য দুটি কমান্ডের যেকোনো একটি অনুসরণ করতে পারেন।

|_+_|

বা

|_+_|

CLASSPATH সেট-আপ

আমরা আলোচনা করব কিভাবে Windows এবং Linux সিস্টেমের জন্য CLASSPATH সেট-আপ করতে হয়। আপনি যদি উইন্ডোজ সিস্টেমে টমক্যাট ইনস্টল করেন, তাহলে CLASSPATH সেট আপ করার জন্য নিচের কোড লাইনগুলি অনুসরণ করুন।

|_+_|

আপনার উইন্ডোজ সিস্টেমে NT, 2000, বা XP সংস্করণ থাকলে, আপনাকে ডান-ক্লিক করতে হবে আমার কম্পিউটার , নির্বাচন করুন বৈশিষ্ট্য , ক্লিক করুন উন্নত , এবং যান এনভায়রনমেন্ট ভেরিয়েবল . এখানে, আপনাকে CLASSPATH মান পরিবর্তন করতে হবে এবং ক্লিক করতে হবে ঠিক আছে বোতাম

আপনি যদি লিনাক্স সিস্টেমে টমক্যাট ইনস্টল করে থাকেন তবে .cshrc ফাইলে নিম্নলিখিত দুটি লাইন যোগ করুন। বিবেচনা করুন যে আমরা সি শেল ব্যবহার করি।

|_+_|

JSP এর আর্কিটেকচার কেমন?

আমরা জেএসপির জন্য পরিবেশ তৈরি করেছি। আমরা JSP পেজ চালানোর জন্য Apache Tomcat ব্যবহার করেছি। JSP পৃষ্ঠাগুলি প্রক্রিয়াকরণের জন্য, একটি JSP ইঞ্জিন আছে যাকে কন্টেইনার বলা হয়। Apache Tomcat-এ, একটি বিল্ট-ইন JSP ইঞ্জিন বলা হয় জ্যাস্পার . অতএব, Jasper ব্যবহার করে, বিকাশকারীরা JSP পেজ তৈরি করতে পারে। ধারক এবং ওয়েব সার্ভার একসাথে কাজ করে রানটাইম পরিবেশ বা JSP এবং JSP-এর প্রয়োজনীয় অন্যান্য সমস্ত পরিষেবা প্রদান করতে।

জেএসপি

উপরের চিত্রটি JSP কন্টেইনার এবং JSP ফাইলের অবস্থান এবং যেকোনো ওয়েব অ্যাপ্লিকেশনে চিত্রিত করে। এখন, আমরা JSP ব্যবহার করে ওয়েব সার্ভার দ্বারা একটি গতিশীল ওয়েবপৃষ্ঠা তৈরি করার প্রক্রিয়া ব্যাখ্যা করব।

  • প্রথমত, উইন্ডোজ, লিনাক্স বা ম্যাকওএস সিস্টেম থেকে ক্লায়েন্ট বা ব্রাউজার ইন্টারনেটের মাধ্যমে ওয়েব সার্ভারে HTTP অনুরোধ পাঠায়, যেমন উপরের চিত্রে দেখানো হয়েছে।
  • ওয়েব সার্ভারে এটিতে JSP ইঞ্জিন রয়েছে, যেখানে সমস্ত JSP ফাইল সংরক্ষণ করা হয়। ক্লায়েন্ট থেকে HTTP অনুরোধ পাওয়ার পরে, ওয়েব সার্ভার সনাক্ত করে যে অনুরোধটি JSP পৃষ্ঠার জন্য। এর পরে, এটি এই অনুরোধটি JSP ইঞ্জিনে প্রেরণ করে। ওয়েব সার্ভার .jsp বা .html এক্সটেনশন বা একটি URL এর মাধ্যমে একটি ফাইল ব্যবহার করে JSP পৃষ্ঠায় HTTP অনুরোধ প্রেরণ করে।
  • এখন, JSP HTTP অনুরোধ গ্রহণ করে যা ক্লায়েন্ট দ্বারা ওয়েব সার্ভারে পাঠানো হয়েছিল। আমরা জানি যে HTTP অনুরোধটি একটি JSP পৃষ্ঠার জন্য ছিল। অতএব, ইঞ্জিন সেই নির্দিষ্ট পৃষ্ঠাটিকে ডিস্ক থেকে লোড করে এবং এটিকে একটি সার্লেট সামগ্রীতে রূপান্তরিত করে। অন্য কথায়, সমস্ত টেমপ্লেট টেক্সট println() স্টেটমেন্টে পরিবর্তিত হয়। অন্যদিকে, এই রূপান্তরটি সমস্ত JSP পৃষ্ঠাকে জাভা কোডে রূপান্তর করে।
  • অনুরোধ করা JSP পৃষ্ঠাটি সার্লেটে রূপান্তরিত হয়। অতএব, সার্লেটটি JSP ইঞ্জিন দ্বারা একটি এক্সিকিউটেবল ক্লাসে কম্পাইল করা হয়েছে। পরে, ক্লায়েন্ট থেকে HTTP অনুরোধ JSP ইঞ্জিন দ্বারা servlet ইঞ্জিনে পাঠানো হয়।
  • সার্লেট এবং জেএসপি উভয় ইঞ্জিনই ওয়েব সার্ভারের অংশ। সার্লেট ইঞ্জিন JSP ইঞ্জিন দ্বারা সংকলিত এক্সিকিউটেবল ক্লাস চালায় এবং এইচটিএমএল ফরম্যাট আউটপুট তৈরি করে। ওয়েব সার্ভারে আরেকটি উপাদান আছে, HTTP প্রতিক্রিয়া। সার্লেট ইঞ্জিন এইচটিটিএমএল আউটপুটকে HTTP প্রতিক্রিয়াতে পাঠায়।
  • সবশেষে, ওয়েব সার্ভার স্ট্যাটিক HTML কন্টেন্ট আকারে ইন্টারনেটের মাধ্যমে ব্রাউজারে HTTP প্রতিক্রিয়া পাঠায়।

অতএব, আপনি খুব কম জাভা প্রোগ্রামিং দক্ষতার সাথে JSP পৃষ্ঠা ব্যবহার করে সার্লেট লিখতে পারেন। JSP-এর উপরোক্ত প্রক্রিয়াকরণ থেকে, আমরা উপসংহারে আসতে পারি যে এটি অনুবাদ পর্ব ব্যতীত সার্লেটের মতোই কাজ করে। এটি 3-স্তরের আর্কিটেকচার অনুসরণ করে, যেখানে ওয়েব সার্ভার JSP পৃষ্ঠাকে সমর্থন করে। এখন, আমরা JSP জীবনচক্রের দিকে এগিয়ে যাব। এখানে আমরা আলোচনা করব কিভাবে JSP ফাইল বিভিন্ন পর্যায় অতিক্রম করে এবং কিভাবে এটি ওয়েব কন্টেইনারে উপস্থিত থাকে।

JSP এর জীবন চক্র

যেকোনো উপাদানের জীবনচক্র শুরু হয় যখন এটি তৈরি হয় এবং শেষ হয় যখন এটি ধ্বংস হয়ে যায়। JSP এর জীবনচক্র সার্লেটের জীবনচক্রের অনুরূপ। JSP জীবনচক্রের একটি অতিরিক্ত পর্যায় JSP পৃষ্ঠাটিকে সার্লেটে রূপান্তর এবং সংকলন করার জন্য ব্যবহৃত হয়। JSP লাইফসাইকেলকে JSP পৃষ্ঠা তৈরি করা, এটিকে একটি সার্লেটে রূপান্তর করা, সার্লেটের জীবনচক্র এবং JSP পৃষ্ঠাকে ধ্বংস করা হিসাবে সংজ্ঞায়িত করা যেতে পারে। আসুন এখন নিচে বিস্তারিতভাবে JSP-এর জীবনচক্র দেখি।

JSP-এর জীবনচক্রে নিম্নলিখিত চারটি প্রাথমিক পথ জড়িত:

  1. সংকলন
  2. আরম্ভ
  3. মৃত্যুদন্ড
  4. পরিষ্কার কর

এই চারটি JSP লাইফ সাইকেল পাথ সার্লেটের জীবনচক্র পাথের মত। নীচের চিত্রটি উপরের পর্যায়গুলিকে চিত্রিত করে।

জেএসপি

আসুন এখন জেএসপি জীবনচক্রের প্রতিটি পর্যায় এবং এর বিবরণ বিস্তারিতভাবে আলোচনা করি।

    JSP সংকলন

যখন ক্লায়েন্ট বা ব্রাউজার JSP পৃষ্ঠার জন্য HTTP অনুরোধ পাঠায়, তখন ওয়েব সার্ভারে উপস্থিত JSP ইঞ্জিন যাচাই করে যে অনুরোধ পৃষ্ঠাটি কম্পাইল করা হবে কি না। JSP ইঞ্জিন অনুরোধ করা পৃষ্ঠাটি কম্পাইল করে যদি এটি পূর্বে কম্পাইল করা না হয় বা পৃষ্ঠাটি পরিবর্তন করার পরে কম্পাইল করা না হয়। পৃষ্ঠা সংকলন নিম্নলিখিত তিনটি ধাপ জড়িত:

  • অনুরোধ করা পৃষ্ঠাটি JSP ইঞ্জিন দ্বারা পার্স করা হয়েছে৷
  • এটি তারপর JSP পৃষ্ঠাটিকে একটি সার্লেটে রূপান্তরিত করে।
  • অবশেষে, servlet সংকলিত হয়.

যখন JSP পৃষ্ঠাটি একটি সার্লেটে রূপান্তরিত হয়, তখন .jsp ফাইল a এ রূপান্তরিত হয় জাভা ফাইল সংকলনের সময়, জাভা ফাইল তারপর a এ রূপান্তরিত হয় .শ্রেণী ফাইল

    JSP সূচনা

সংকলন সম্পন্ন হওয়ার পরে, ক্লাসলোডিং প্রক্রিয়া সঞ্চালিত হয়। JSP সোর্স সার্লেট ক্লাস লোড করে, এবং এই সার্লেট ক্লাসটি তারপর কন্টেইনারে লোড করা হয়। সার্লেট ক্লাসের উদাহরণটি পাত্রে তৈরি করা হয়েছে। সার্লেট ক্লাসের উদাহরণ তৈরি হওয়ার পরে, jspInit () পদ্ধতি আহ্বান করা হয়। JSP-এর জীবনচক্রে এই পদ্ধতিটি শুধুমাত্র একবার ব্যবহার করা হয়। JSP-নির্দিষ্ট শুরুর জন্য, আপনাকে ওভাররাইড করতে হবে jspInit () পদ্ধতি নিম্নরূপ:

|_+_|

যখন jspInit () পদ্ধতিটি তাত্ক্ষণিকভাবে চালু করা হয়েছে, আপনাকে ডাটাবেস সংযোগ তৈরি করতে হবে এবং ফাইলটিতে সন্ধান টেবিল তৈরি করতে হবে।

    জেএসপি এক্সিকিউশন

পরে jspInit () পদ্ধতি তাত্ক্ষণিক হয়, _jspService() পদ্ধতি ব্যবহার করা হয়। JSP ধ্বংস না হওয়া পর্যন্ত এই পদ্ধতিটি ওয়েব সার্ভারে ক্লায়েন্টের পাঠানো সমস্ত অনুরোধ পরিবেশন করে।

দ্য _jspService() পদ্ধতি দুটি ভিন্ন পরামিতি জড়িত, HttpServletRequest এবং HttpServlet রেসপন্স . এই পদ্ধতিটি নিম্নরূপ সংজ্ঞায়িত করা হয়:

|_+_|

দ্য _jspService() পদ্ধতিটি ক্লায়েন্টের সমস্ত অনুরোধে সাড়া দেয়। যখনই ক্লায়েন্ট অনুরোধ জারি করে, _jspService() পদ্ধতি আহ্বান করা হয়। এটি সমস্ত সাতটি HTTP অনুরোধে সাড়া দেয়, যেমন পাওয়া , মুছে ফেলা , পোস্ট , PUT , ইত্যাদি আপনি ওভাররাইড করতে পারেন _jspService() পদ্ধতি

    JSP ক্লিনআপ:

JSP জীবনচক্রের শেষ পর্যায় হল ক্লিনআপ, যেখানে JSP ধ্বংস হয়ে যায়। ধারকটি JSP সরিয়ে দেয় এবং এটি ব্যবহার করে না। এই পদ্ধতিটি সার্লেটের ধ্বংস পদ্ধতির মতোই। আপনি যখন ডাটাবেসের কোনো ফাইল বন্ধ করতে চান বা ডাটাবেস সংযোগ বন্ধ করতে চান, আপনি ওভাররাইড করতে পারেন jspDestroy() পদ্ধতি jspDestroy() পদ্ধতির সিনট্যাক্স নিম্নরূপ:

|_+_|

JSP-তে সিনট্যাক্স

এই সেগমেন্টে, আমরা বেশ কিছু JSP উপাদানের সিনট্যাক্স শিখব, যেমন অ্যাকশন, নির্দেশিকা, অন্তর্নিহিত বস্তু, মন্তব্য, অভিব্যক্তি ইত্যাদি। টিউটোরিয়ালের এই বিভাগটি JSP ডোমেনে নতুনদের জন্য খুবই গুরুত্বপূর্ণ। নিম্নলিখিত JSP সিনট্যাক্স সম্পর্কে একটি দ্রুত গাইড.

    স্ক্রিপ্টলেট:

স্ক্রিপ্টলেট শক্তিশালী JSP উপাদানগুলির মধ্যে একটি। আমরা স্ক্রিপ্টলেটে জাভা স্টেটমেন্ট, পদ্ধতি, ভেরিয়েবল এবং এক্সপ্রেশন সংরক্ষণ করতে পারি। উপরন্তু, এটি যেকোনো স্ক্রিপ্টিং ভাষার উপাদান সংরক্ষণ করতে পারে। নিচে Scriptlet এলিমেন্ট আছে বাক্য গঠন:

বাক্য গঠন:

|_+_|

উপরের স্ক্রিপ্টলেট সিনট্যাক্স নিম্নলিখিত বিন্যাসে একটি XML সমতুল্য হিসাবে লেখা যেতে পারে:

|_+_|

সমস্ত এইচটিএমএল ট্যাগ, জেএসপি উপাদান এবং অন্য যেকোনো পাঠ্য সবসময় স্ক্রিপ্টলেট ট্যাগের বাইরে লেখা হয়। আমরা এইচটিএমএল পৃষ্ঠার ভিতরে JSP এর একটি সরল উদাহরণ দেখতে পাব।

উদাহরণ:

|_+_|

টমক্যাট সার্ভারটি আপনার ডেস্কটপে ইনস্টল করা উচিত এবং এই প্রোগ্রামটি চালানোর জন্য এর পরিবেশ সেট আপ করা উচিত। টমক্যাট সার্ভার পরিবেশ সেট আপ করার জন্য উপরের পরিবেশ সেট আপ পদক্ষেপগুলি অনুসরণ করুন। আমরা উপরের ফাইলটি হিসাবে সংরক্ষণ করব firstjsp.jsp মধ্যে C:apache-tomcat7.0.2webappsROOT ফোল্ডার ফাইলটি সংরক্ষণ করার পরে, ব্রাউজারে যান এবং URL টাইপ করুন, http://localhost:8080/firstjsp.jsp। উপরের কোডটি JSP কুইক গাইড এবং আপনার সিস্টেমের IP ঠিকানা প্রদর্শন করবে।

    ঘোষণা

যখন আপনার জাভা কোড ব্যবহার করার জন্য ভেরিয়েবল বা পদ্ধতির প্রয়োজন হয়, তখন JSP ঘোষণাগুলি সেগুলি ঘোষণা করে। আপনি জাভা কোডে কোনো পরিবর্তনশীল বা পদ্ধতি ব্যবহার করার আগে, আপনাকে অবশ্যই JSP ঘোষণা ব্যবহার করে এটি ঘোষণা করতে হবে। JSP ঘোষণার সিনট্যাক্স নিচে দেওয়া হল:

বাক্য গঠন:

|_+_|

উপরের সিনট্যাক্সটি XML এ নিম্নরূপ লেখা হয়েছে:

|_+_|

এখন, জেএসপি ঘোষণার একটি উদাহরণ দেখা যাক।

উদাহরণ:

|_+_|
    অভিব্যক্তি

JSP-এর একটি অভিব্যক্তিতে স্ক্রিপ্টিং ভাষার অভিব্যক্তি রয়েছে। এই অভিব্যক্তিগুলিকে মূল্যায়ন করা যেতে পারে, একটি স্ট্রিং-এ রূপান্তরিত করা যেতে পারে এবং JSP ফাইলে যোগ করা যেতে পারে, যেখানে অভিব্যক্তিটি উপস্থিত হয়। আপনি পাঠ্যের সাথে JSP এক্সপ্রেশন ব্যবহার করতে পারেন, কারণ এটি স্ট্রিং-এ রূপান্তরিত হতে পারে। HTML ট্যাগের ভিতরে JSP এক্সপ্রেশন ট্যাগ করা বাধ্যতামূলক নয়। JSP এক্সপ্রেশন লেখার সময় একটি গুরুত্বপূর্ণ বিষয় মনে রাখবেন যে তারা এক্সপ্রেশন শেষ করতে সেমিকোলন ব্যবহার করে না।

বাক্য গঠন:

|_+_|

উপরের সিনট্যাক্সটি নিম্নরূপ তার XML সমতুল্য লেখা যেতে পারে:

|_+_|

নিম্নলিখিত উদাহরণ আপনাকে HTML এ JSP এক্সপ্রেশন কিভাবে ব্যবহার করতে হয় তা স্বীকার করতে সাহায্য করবে।

|_+_|

আপনি নিম্নরূপ বর্তমান তারিখ এবং সময় হিসাবে আউটপুট পাবেন:

|_+_|
    মন্তব্য

মন্তব্য হল বিবৃতি যা কার্যকর করার জন্য নয়। তারা শুধুমাত্র প্রোগ্রামার এবং পাঠকদের জন্য বোঝানো হয়. JSP-তে, কন্টেনার দ্বারা মন্তব্য উপেক্ষা করা হয়। আপনি যদি JSP প্রোগ্রামের কিছু অংশ লুকিয়ে রাখতে চান, আপনি JSP মন্তব্য ব্যবহার করে সেই অংশটি মন্তব্য করতে পারেন। নিম্নলিখিত JSP মন্তব্য জন্য বাক্য গঠন.

বাক্য গঠন:

|_+_|

আমরা নীচের উদাহরণটি কার্যকর করব যাতে এটিতে JSP মন্তব্য রয়েছে।

উদাহরণ:

|_+_|

এই কোডের ফলাফল নীচে দেওয়া আছে.

|_+_|

মন্তব্য নির্দিষ্ট করার জন্য JSP-তে আরও অনেক উপায় রয়েছে। নীচে ছয়টি ভিন্ন মন্তব্য সিনট্যাক্স এবং তাদের ব্যবহার রয়েছে:

উপরেরটিকে একটি HTML মন্তব্য হিসাবে উল্লেখ করা হয়েছে এবং ব্রাউজার মন্তব্যের ভিতরে লেখা অক্ষর বা শব্দগুলিকে উপেক্ষা করে।

    %>

একটি স্ট্যাটিক আক্ষরিক বোঝায়।

    <\%

উপরের মন্তব্যটি একটি স্থির আক্ষরিক হিসাবেও উল্লেখ করে।

এটি একটি বৈশিষ্ট্যে ব্যবহৃত একটি ডবল উদ্ধৃতি নির্দিষ্ট করে।

    '

এটি একটি বৈশিষ্ট্যে ব্যবহৃত একটি একক উদ্ধৃতি নির্দিষ্ট করে।

    নির্দেশাবলী

জেএসপিতে তিনটি নির্দেশ রয়েছে, , , এবং . দ্য নির্দেশিকাটি পৃষ্ঠার বৈশিষ্ট্যগুলি সংজ্ঞায়িত করার জন্য ব্যবহৃত হয়, যেমন ত্রুটি পৃষ্ঠা, স্ক্রিপ্টিং ভাষা এবং বাফারিং প্রয়োজনীয়তা। অন্য নির্দেশনা, , JSP জীবনচক্রের অনুবাদ পর্বের সময় ব্যবহৃত একটি নির্দিষ্ট ফাইল অন্তর্ভুক্ত করে। অবশেষে, JSP পৃষ্ঠায় প্রয়োজনীয় ট্যাব লাইব্রেরি এবং কাস্টম অ্যাকশন ঘোষণা করার জন্য নির্দেশিকা ব্যবহার করা হয়। যখন JSP নির্দেশাবলী ব্যবহার করা হয়, তখন তারা সার্লেট শ্রেণীর কাঠামোকে প্রভাবিত করে। এখানে JSP নির্দেশের জন্য সিনট্যাক্স।

|_+_|
    কর্ম

ক্রিয়াগুলি এমন ফাংশন যা ইতিমধ্যে সংজ্ঞায়িত করা হয়েছে। সার্লেট ইঞ্জিনের আচরণ নিয়ন্ত্রণের জন্য JSP অ্যাকশন ব্যবহার করা হয়। এই ক্রিয়াগুলি XML কোডে গঠন যোগ করে। JSP অ্যাকশন ব্যবহার করে, আপনি গতিশীলভাবে যেকোনো ফাইল সন্নিবেশ করতে পারেন, জাভা প্লাগইনের জন্য এইচটিএমএল তৈরি করতে পারেন, বা JavaBeans উপাদানগুলি পুনরায় ব্যবহার করতে পারেন। নিচে JSP অ্যাকশনের সিনট্যাক্স দেওয়া হল।

বাক্য গঠন:

|_+_|

আমরা কিছু উল্লেখযোগ্য JSP অ্যাকশন এবং তাদের বিবরণ নীচে তালিকাভুক্ত করছি:

    jsp: useBean: এই ক্রিয়াটি জাভাবিনকে তাৎক্ষণিক বা শনাক্ত করে।jsp: getProperty: আপনি আউটপুটে JavaBean প্রপার্টি যোগ করার জন্য jsp:getProperty অ্যাকশন ব্যবহার করতে পারেন।jsp: সেট প্রপার্টি: এই ক্রিয়াটি JavaBean সম্পত্তি ঠিক করে।jsp: অন্তর্ভুক্ত: ব্যবহারকারী যখন পৃষ্ঠার অনুরোধ করে, এই ক্রিয়াটি ফাইল যোগ করে।jsp:প্লাগইন: এটি জাভা প্লাগইনের জন্য একটি বস্তু বা EMBED ট্যাগ এবং ব্রাউজার-নির্দিষ্ট কোড তৈরি করে।jsp: বৈশিষ্ট্য: এই ক্রিয়াটি এক্সএমএল উপাদানের বৈশিষ্ট্য নির্ধারণের জন্য ব্যবহৃত হয় যা গতিশীলভাবে সংজ্ঞায়িত।jsp: ফরোয়ার্ড: এই ক্রিয়াটি ব্যবহারকারীকে নতুন পৃষ্ঠায় নিয়ে যায়।jsp: উপাদান: যখন আপনি XML উপাদানগুলিকে গতিশীলভাবে সংজ্ঞায়িত করতে চান, তখন এই ক্রিয়াটি ব্যবহার করুন৷jsp:পাঠ্য: এই ক্রিয়াটি ব্যবহারকারীদের JSP পৃষ্ঠায় টেমপ্লেট পাঠ যোগ করতে সক্ষম করে।jsp: শরীর: এটি এক্সএমএল উপাদানের শরীরকে সংজ্ঞায়িত করার জন্য ব্যবহৃত হয়, যা গতিশীলভাবে সংজ্ঞায়িত করা হয়।
    অন্তর্নিহিত অবজেক্ট

জেএসপিতে নয়টি অন্তর্নিহিত অবজেক্ট রয়েছে, অনুরোধ, প্রতিক্রিয়া, সেশন, আউট, পেজ কনটেক্সট, কনফিগারেশন, অ্যাপ্লিকেশন, পৃষ্ঠা এবং ব্যতিক্রম। আমাদের এখানে প্রতিটি অন্তর্নিহিত বস্তু সম্পর্কে বিস্তারিত জানা যাক।

    অনুরোধ: অনুরোধের বস্তুটি হল HttpServletRequest, ক্লায়েন্টের অনুরোধের সাথে যুক্ত৷প্রতিক্রিয়া: প্রতিক্রিয়া বস্তুটি হল HttpServletResponse, ক্লায়েন্টের কাছে সার্ভারের প্রতিক্রিয়ার সাথে যুক্ত।সেশন: এই বস্তুটি HttpSession জড়িত এবং ক্লায়েন্টের অনুরোধ বস্তুর সাথে যুক্ত।আউট: আরেকটি অন্তর্নিহিত বস্তু আউট. এটি PrintWriter অবজেক্ট ব্যবহার করে ক্লায়েন্টকে আউটপুট পাঠানোর জন্য ব্যবহৃত হয়।পৃষ্ঠা প্রসঙ্গ: এই অন্তর্নিহিত বস্তুটি সার্ভার-নির্দিষ্ট বৈশিষ্ট্যের প্রয়োগকে নির্দিষ্ট করে। সার্ভার-নির্দিষ্ট বৈশিষ্ট্যের একটি উদাহরণ হল JspWriters।কনফিগারেশন: এই অবজেক্টের সাথে সার্ভলেট কনফিগ অবজেক্ট জড়িত, যা JSP পৃষ্ঠার সাথে ব্যবহার করা হয়।আবেদন: JSP-এর ServletContext অবজেক্ট অ্যাপ্লিকেশন প্রসঙ্গ সহ ব্যবহৃত হয়।পৃষ্ঠা: পৃষ্ঠা অন্তর্নিহিত বস্তুটি সমস্ত পদ্ধতিকে কল করে, যা সার্লেট ক্লাস দ্বারা সংজ্ঞায়িত করা হয়।ব্যতিক্রম: মনোনীত JSP ব্যতিক্রম অবজেক্ট ব্যবহার করে ব্যতিক্রম ডেটা অ্যাক্সেস করতে পারে।
    কন্ট্রোল-ফ্লো স্টেটমেন্ট

JSP এছাড়াও নিয়ন্ত্রণ-প্রবাহ বিবৃতি, সিদ্ধান্ত গ্রহণের বিবৃতি এবং লুপ ব্যবহার করে। এখানে আমরা দেখব কিভাবে JSP প্রোগ্রামিং-এ ডিসিশন মেকিং স্টেটমেন্ট এবং লুপ ব্যবহার করা হয়।

সিদ্ধান্ত গ্রহণের বিবৃতি

উপলব্ধ পছন্দের বিষয়ে সিদ্ধান্ত নেওয়ার জন্য সিদ্ধান্ত গ্রহণের বিবৃতি ব্যবহার করা হয়। সিদ্ধান্ত গ্রহণের বিবৃতি বাস্তবায়নের দুটি উপায় রয়েছে। একটি if_else বিবৃতি ব্যবহার করছে, এবং অন্যটি সুইচ-কেস বিবৃতি ব্যবহার করছে। প্রতিটি if এবং else শর্ত আলাদা স্ক্রিপ্টলেটে আবদ্ধ। আসুন আমরা JSP-তে if_else স্টেটমেন্টের একটি উদাহরণ লক্ষ্য করি।

উদাহরণ:

|_+_|

এখানে, আমরা 'মাস=3' ঘোষণা করেছি এবং if_else স্টেটমেন্টে শর্ত উল্লেখ করেছি। তাই আউটপুট হবে:

|_+_|

এখন, আমরা সুইচ... কেস স্টেটমেন্ট বাস্তবায়ন করব। নিচের কোডটি উপরের কোড থেকে বেশ ভিন্ন, কারণ নিচের কোডের শর্তগুলো একটি স্ক্রিপ্টলেটে উল্লেখ করা আছে।

উদাহরণ:

|_+_|

আউটপুট:

|_+_|

লুপ স্টেটমেন্ট

একটি নির্দিষ্ট নির্দেশকে নির্দিষ্ট সংখ্যক বার পুনরাবৃত্তি করার জন্য আমরা প্রোগ্রামে লুপ ব্যবহার করি। JSP দ্বারা সমর্থিত তিনটি ভিন্ন ধরনের লুপ আছে, for, while, এবং do...while। আসুন নীচের প্রতিটি লুপের ধরনগুলির উদাহরণ দেখি।

লুপের জন্য:

|_+_|

আউটপুট:

|_+_|

যখন লুপ:

|_+_|

আউটপুট:

|_+_|
    জেএসপিতে অপারেটর

জাভা দ্বারা সমর্থিত সমস্ত লজিক্যাল এবং গাণিতিক অপারেটর JSP-তে ব্যবহৃত হয়। তাদের মূল্যায়নের জন্য JSP এক্সপ্রেশনে অপারেটর ব্যবহার করা হয়। যে অপারেটরের সর্বোচ্চ অগ্রাধিকার রয়েছে তাকে প্রথমে মূল্যায়ন করা হয় এবং সর্বনিম্ন অগ্রাধিকারের সাথে শেষ পর্যন্ত মূল্যায়ন করা হয়। আমরা সব JSP অপারেটরকে তালিকাভুক্ত করেছি যেখানে প্রথম সর্বোচ্চ অগ্রাধিকার রয়েছে, পরবর্তীতে দ্বিতীয় সর্বোচ্চ অগ্রাধিকার রয়েছে এবং আরও অনেক কিছু।

    পোস্টফিক্স: তিনটি পোস্টফিক্স অপারেটর আছে ‘()’। '[]', এবং '.'. এই সব অপারেটর বাম থেকে ডান সহযোগীতা আছে.ইউনারি: ইউনারি অপারেটর হল ‘++’, ‘–’, ‘!’, এবং ‘~’ ডান থেকে বাম সহযোগীতা রয়েছে।গুণক: তিনটি গুনগত অপারেটর আছে, '*', '/', এবং '%'। তারা বাম থেকে ডান সহবাস করেছে।সংযোজন: সংযোজন অপারেটর হল ‘+’ এবং ‘-’। তাদের বাম থেকে ডান সহবাসও রয়েছে।শিফট: শিফট অপারেটর, '>>', '>>>', এবং '<<’ have left to right associativity. সম্পর্কীয়: চারটি রিলেশনাল অপারেটর আছে, '>', '=', এবং '<=’. All of them have left to right associativity. সমতা: সমতা অপারেটরগুলি হল '==' এবং '!=' বাম থেকে ডানে সহযোগীতা।বিটওয়াইজ এবং: বিটওয়াইজ এবং অপারেটর (&) বাম থেকে ডান অ্যাসোসিয়েটিভিটি রয়েছে৷Bitwise XOR: বিটওয়াইজ XOR অপারেটর (^) বাম থেকে ডানে সহযোগীতা করেছে।বিটওয়াইজ বা: বিটওয়াইজ বা অপারেটর (|) বাম থেকে ডানে সহযোগীতা করেছে।যৌক্তিক এবং: যৌক্তিক AND অপারেটর (&&) বাম থেকে ডান সহযোগীতা আছে।যৌক্তিক বা: যৌক্তিক বা অপারেটর (||) বাম থেকে ডানে সহযোগীতা আছে।শর্তসাপেক্ষ: শর্তসাপেক্ষ অপারেটর (?:) এর বাম সহযোগীতার অধিকার রয়েছে।অ্যাসাইনমেন্ট: বেশ কিছু অ্যাসাইনমেন্ট অপারেটর আছে, যেমন =, +=, -+, *=, %=, /=, >>=,<<=, &=, ^=, and |=. All these operators have the right to left associativity. অনুচ্ছেদ: কমা অপারেটর (‘) বাম থেকে ডানে সহযোগীতা করেছে।

JSP পাঁচটি ভিন্ন আক্ষরিক বা ডেটা প্রকার, বুলিয়ান, পূর্ণসংখ্যা, ফ্লোটিং-পয়েন্ট, স্ট্রিং এবং NULL সমর্থন করে। বুলিয়ান আক্ষরিক ফলস্বরূপ সত্য বা মিথ্যা ফেরত দেয়। সংখ্যা নির্দিষ্ট করার জন্য একটি পূর্ণসংখ্যা ব্যবহার করা হয় এবং JSP প্রোগ্রামে দশমিক সংখ্যা ঘোষণা করার জন্য ফ্লোটিং-পয়েন্ট ব্যবহার করা হয়। JSP-তে স্ট্রিং ডেটা টাইপ জাভা ভাষার থেকে আলাদা। NULL ডেটা টাইপ নাল মান নির্দিষ্ট করে।

JSP অ্যাকশন

আমরা দেখেছি জেএসপির কাজগুলো কী। আমরা উপরের সংক্ষেপে সমস্ত JSP অ্যাকশনও দেখেছি। ক্রিয়াগুলি JSP ইঞ্জিনের আচরণকে নিয়ন্ত্রণ করে এমন ফাংশন ছাড়া আর কিছুই নয়। জেএসপি অ্যাকশনের সিনট্যাক্সের কথা স্মরণ করা যাক।

বাক্য গঠন:

|_+_|

JSP অ্যাকশনগুলি হল jsp:include, jsp:useBean, jsp:setProperty, jsp:getProperty, jsp:forward, jsp:element, jsp:plugin, jsp:attribute, jsp:body, এবং jsp:text। এই সমস্ত JSP অ্যাকশনের দুটি সাধারণ উপাদান আছে, আইডি এবং স্কোপ।

আইডি উপাদানটি কোনো JSP অ্যাকশনকে স্বতন্ত্রভাবে সনাক্ত করার জন্য ব্যবহার করা হয়। JSP অ্যাকশনের এই উপাদানটি JSP প্রোগ্রামে ব্যবহার করা হয়, যে অ্যাকশনটি সম্পাদিত হবে তা নির্ধারণ করে। আরেকটি উপাদান হল স্কোপ, যা JSP কর্মের জীবনচক্র চিহ্নিত করার জন্য ব্যবহৃত হয়। অ্যাকশনের আইডি ব্যবহার করে, এর আয়ুষ্কাল নির্ধারণ করা হয়। অতএব, আইডি উপাদান এবং স্কোপ উপাদান সরাসরি সমানুপাতিক। স্কোপ উপাদান সম্ভাব্য মান নিতে পারে: পৃষ্ঠা, সেশন, অনুরোধ, বা অ্যাপ্লিকেশন।

অ্যাকশন

JSP-তে useBean অ্যাকশনটি প্রথমে আইডি এবং স্কোপ বৈশিষ্ট্যের অধিকারী একটি বস্তু খুঁজে পায়। বস্তুটি খুঁজে না পাওয়া গেলে, এই ক্রিয়াটি সেই নির্দিষ্ট আইডি এবং স্কোপ বৈশিষ্ট্যগুলির জন্য বস্তু তৈরি করে। নিম্নলিখিত useBean ক্লাস লোড করার উপায়.

|_+_|

বিন ক্লাস লোড করার পরে, আপনি অন্য দুটি JSP অ্যাকশন ব্যবহার করতে পারেন, jsp: সেট প্রপার্টি এবং jsp: getProperty . এই ক্রিয়াগুলি মটরশুটির বৈশিষ্ট্যগুলিকে সংশোধন এবং আনার জন্য ব্যবহৃত হয়। UseBean অ্যাকশন তিনটি ভিন্ন ব্যবহার করে গুণাবলী , ক্লাস , প্রকার , এবং beanName. দ্য ক্লাস অ্যাট্রিবিউট বিনের প্যাকেজের নাম নির্ধারণ করে। আপনি ব্যবহার করতে পারেন প্রকার আমরা যে বস্তুর উল্লেখ করি তার জন্য পরিবর্তনশীল প্রকার নির্দিষ্ট করার জন্য উপাদান। সবশেষে, beanName শিমের নাম প্রদান করে। instantiate() পদ্ধতি শিমের নাম নির্দিষ্ট করে।

অ্যাকশন

ক্রিয়াটি বিনের সম্পত্তি সেট করার জন্য ব্যবহৃত হয়। শিমের সম্পত্তি নির্ধারণের একমাত্র প্রয়োজনীয়তা হল শিমটি প্রথমে সংজ্ঞায়িত করা আবশ্যক। নিম্নলিখিত হিসাবে কর্ম ব্যবহার করার জন্য দুটি উপায় আছে:

প্রথম উপায় বাইরের এবং উপাদান পরে ব্যবহার করা হয়.

|_+_|

উপরের সিনট্যাক্সে, এমনকি যদি নতুন উপাদানটি তাত্ক্ষণিক না হয় বা একটি বিদ্যমান পাওয়া না যায়, তবে ক্রিয়াটি কার্যকর করা হয়।

ক্রিয়াটি সংজ্ঞায়িত করার আরেকটি উপায় হল jsp:useBean উপাদানের ভিতরে।

|_+_|

ব্যবহার করার প্রথম উপায়ের বিপরীতে, দ্বিতীয় উপায়টি শুধুমাত্র তখনই কার্যকর হয় যখন একটি বিদ্যমান পাওয়া যায় বা নতুনটি তাৎক্ষণিকভাবে চালু করা হয়।

jsp:setProperty চারটি ভিন্ন বৈশিষ্ট্য জড়িত, নাম , সম্পত্তি , মান , এবং থামা . দ্য নাম অ্যাট্রিবিউট বিনের নাম নির্ধারণ করে যার সম্পত্তি সেট করা হবে। আরেকটি গুণ, সম্পত্তি , সম্পত্তি সংজ্ঞায়িত করে। দ্য মান সম্পত্তির জন্য নির্ধারিত মান, এবং থামা বৈশিষ্ট্য বৈশিষ্ট্য দ্বারা প্রাপ্ত প্যারামিটারের নাম সংজ্ঞায়িত করে।

অ্যাকশন

আমরা দেখেছি যে jsp:setProperty অ্যাকশন প্রপার্টির মান নির্ধারণ করে। এখানে, ক্রিয়াটি সম্পত্তির মান নিয়ে আসে। মান আনার পর, এটি স্ট্রিং-এ রূপান্তরিত করে এবং ফলাফলে যোগ করে।

কর্মের শুধুমাত্র দুটি বৈশিষ্ট্য আছে, নাম এবং সম্পত্তি। দ্য নাম বৈশিষ্ট্য একটি নির্দিষ্ট সম্পত্তি ধারণ শিমের নাম সংজ্ঞায়িত করে, এবং সম্পত্তি অ্যাট্রিবিউট বিনের সম্পত্তির নাম সংজ্ঞায়িত করে। নিচের ক্রিয়াটির সিনট্যাক্স রয়েছে:

|_+_|

আমাদের একটি উদাহরণ যা আছে লক্ষ্য করা যাক উদাহরণ শিম নীচের ফাইলটি হিসাবে সংরক্ষণ করুন ExampleBean.java .

|_+_|

এই কোড লেখার পরে ExampleBean.java ফাইল তৈরি করতে কম্পাইল করুন ExampleBean.class ফাইল এখন, অনুলিপি ExampleBean.class ফাইল C:apache-tomcat-7.0.2webappsWEB-INFclassesক্রিয়া ফোল্ডার আপনি সেট করেছেন নিশ্চিত করুন ক্লাসপথ পরিবর্তনশীল

আপনাকে এখন main.jsp ফাইলটি তৈরি করতে হবে এবং এতে নিচের কোডটি লিখতে হবে।

|_+_|

আউটপুট:

|_+_|

অ্যাকশন

আপনি যখন JSP প্রোগ্রামে জাভা উপাদান সন্নিবেশ করতে চান, তখন ক্রিয়াটি ব্যবহার করা হয়। এই ক্রিয়াটি ব্রাউজারের প্রকার সনাক্ত করে এবং যোগ করে বা JSP প্রোগ্রামে ট্যাগ করে। ধরুন আপনার জাভা উপাদান প্রয়োজন, যার প্লাগইন উপলব্ধ নয়। অ্যাকশনটি অ্যাপলেট বা বিনের মতো জাভা কম্পোনেন্ট চালানোর জন্য প্রয়োজনীয় প্লাগইন ডাউনলোড করে। প্লাগইন অ্যাকশনে একাধিক অ্যাট্রিবিউট রয়েছে, যা HTML ট্যাগের সাথে মিলে যায়।

নীচে কর্মের একটি সরল উদাহরণ।

|_+_|

উপরের কোডে, আমরা নতুন উপাদানটি পর্যবেক্ষণ করতে পারি, . যখন উপাদান ব্যর্থ হয়, এই উপাদান ব্যবহারকারীর কাছে ত্রুটি স্ট্রিং পাঠায়।

কর্ম, মত , , এবং XML উপাদান সংজ্ঞায়িত করে। সমস্ত XML উপাদানগুলি রান টাইমে তৈরি হয় এবং কম্পাইলের সময়ে নয়, অর্থাৎ, তারা গতিশীলভাবে তৈরি হয়।

অ্যাকশন

আপনি যখন বর্তমান পৃষ্ঠার ক্রিয়া বন্ধ করতে চান এবং এটিকে অন্য সংস্থানে ফরোয়ার্ড করতে চান, আপনি ব্যবহার করতে পারেন কর্ম. এই কর্মের সিনট্যাক্স নিম্নরূপ দেওয়া হয়:

|_+_|

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

এখন, আমরা কর্মের একটি সহজ উদাহরণ দেখতে পাব। আমরা দুটি ফাইল তৈরি করব, date.jsp এবং main.jsp . date.jsp ফাইলটি বর্তমান তারিখ প্রদর্শন করবে এবং main.jsp ফাইলটিতে অ্যাকশন রয়েছে।

date.jsp ফাইল

|_+_|

main.jsp ফাইল

|_+_|

আপনাকে অবশ্যই রুট ডিরেক্টরিতে উভয় ফাইল সংরক্ষণ করতে হবে। আমরা এখন ফলাফলের জন্য main.jsp ফাইল অ্যাক্সেস করব। এটি main.jsp ফাইল থেকে বিষয়বস্তু প্রদর্শন করবে না; পরিবর্তে, এটি date.jsp ফাইল থেকে বিষয়বস্তু প্রদর্শন করবে, কারণ এটি একটি ফরোয়ার্ড করা ফাইল।

আউটপুট:

|_+_|

অ্যাকশন

ক্রিয়াটি ব্যবহার করে, আমরা JSP পৃষ্ঠাগুলিতে পাঠ্য টেমপ্লেট বা নথি লিখতে পারি। নিচে ক্রিয়াটির সিনট্যাক্স দেওয়া হল:

|_+_|

এখানে, টেমপ্লেটে শুধুমাত্র টেক্সট এবং EL এক্সপ্রেশন রয়েছে। টেমপ্লেটে অন্য কোন উপাদান থাকতে পারে না। XML ফাইলগুলিতে, অভিব্যক্তিটি হিসাবে ব্যবহার করবেন না ${যাই হোক > 0} , যেহেতু এই চিহ্নটি অনুমোদিত বা অবৈধ নয়। পরিবর্তে, আপনি ব্যবহার করতে পারেন ${যাই হোক না কেন gt 0} .

JSP নির্দেশাবলী

সিনট্যাক্স বিভাগে, আমরা JSP-তে ডিরেক্টরিগুলি কী তা দেখেছি। এখানে, আমরা বিস্তারিতভাবে JSP ডিরেক্টরি শিখব। নির্দেশাবলী JSP-তে অপরিহার্য, কারণ তারা নির্দিষ্ট JSP প্রক্রিয়াকরণ উপাদানগুলি পরিচালনা ও নিয়ন্ত্রণের জন্য JSP কন্টেইনারকে নির্দেশ ও নির্দেশ দেয়। JSP নির্দেশের কারণে সার্লেট শ্রেণীর সম্পূর্ণ কাঠামো প্রভাবিত হয়।

বাক্য গঠন:

|_+_|

নির্দেশাবলীর বৈশিষ্ট্যগুলি কী-মান ফর্মের। নির্দেশাবলীতে বেশ কয়েকটি বৈশিষ্ট্য থাকতে পারে এবং প্রতিটি একটি কমা দ্বারা পৃথক করা হয়। উপরের সিনট্যাক্সে, আমরা এর মধ্যে একটি স্থান পর্যবেক্ষণ করতে পারি '<%@’ এবং নির্দেশিক নাম, এবং মান এবং '%>।' এই স্পেস ঐচ্ছিক. আপনি যদি তাদের মধ্যে স্পেস যোগ না করেন তবে কোন চিন্তা নেই। আমরা উপরে দেখেছি যে তিনটি নির্দেশিক ট্যাগ রয়েছে, , , এবং . আসুন এই প্রতিটি নির্দেশিক ট্যাগ সম্পর্কে বিস্তারিত আলোচনা করি।

পৃষ্ঠা নির্দেশিকা

পৃষ্ঠা নির্দেশিকা কন্টেইনারের বর্তমান পৃষ্ঠায় নির্দেশাবলী প্রদান করে। আপনি আপনার JSP প্রোগ্রামের যেকোনো জায়গায় পৃষ্ঠা নির্দেশিকা অন্তর্ভুক্ত করতে পারেন। সাধারণত, পৃষ্ঠা নির্দেশিকা JSP পৃষ্ঠার শীর্ষে ব্যবহৃত হয়। পৃষ্ঠা নির্দেশের সিনট্যাক্স হল:

|_+_|

উপরের সিনট্যাক্সটি নীচে দেওয়া হিসাবে XML এ লেখা হয়েছে:

|_+_|

পৃষ্ঠা নির্দেশের সাথে যুক্ত 13টি বৈশিষ্ট্য রয়েছে, যা নীচে ব্যাখ্যা করা হয়েছে।

    স্বয়ংক্রিয় ফ্লাশ: এই বৈশিষ্ট্যটি সার্লেট আউটপুট বাফারের আচরণ নিয়ন্ত্রণ করে।ত্রুটি পাতা: errorPage অন্য JSP-এর URL প্রদর্শন করে, যা জাভা আনচেক করা রানটাইম ব্যতিক্রমগুলি ফেলে দেয়।প্রসারিত: উত্পন্ন সার্লেট নির্দিষ্ট সুপারক্লাস প্রসারিত করা উচিত.বাফার: বাফার অ্যাট্রিবিউট আউটপুট স্ট্রীমের বাফারিং মডেলকে সংজ্ঞায়িত করে।বিষয়বস্তুর প্রকার: এই বৈশিষ্ট্য অক্ষর এনকোডিংয়ের জন্য স্কিম সংজ্ঞায়িত করে।isErrorPage: বর্তমান JSP পৃষ্ঠাটি অন্য JSP পৃষ্ঠার errorPage অ্যাট্রিবিউট দ্বারা সংজ্ঞায়িত URL কিনা তা পরামর্শ দেয়।তথ্য: এটি একটি স্ট্রিং নির্দিষ্ট করে, যা getServletInfo() পদ্ধতি দ্বারা অ্যাক্সেস করা যেতে পারে।ভাষা: এই বৈশিষ্ট্যটি JSP পৃষ্ঠাগুলিতে ব্যবহৃত প্রোগ্রামিং ভাষা নির্দেশ করে।উপেক্ষা করা হয়েছে: JSP পৃষ্ঠায় EL এক্সপ্রেশন উপেক্ষা করা হবে কিনা তা নির্দিষ্ট করে।আমদানি: এই বিবৃতিটি JSP-তে যোগ করার জন্য প্রয়োজনীয় সমস্ত প্যাকেজ এবং ক্লাস নির্দেশ করে। জাভাতে, জাভা ইম্পোর্ট স্টেটমেন্ট জাভা প্রোগ্রামে অন্তর্ভুক্ত করার জন্য প্রয়োজনীয় সমস্ত ক্লাস এবং প্যাকেজ নির্দিষ্ট করে।isThreadSafe: এই বৈশিষ্ট্যটি সার্লেটের থ্রেডিং মডেল নির্দিষ্ট করে।সেশন: সেশন অ্যাট্রিবিউট যাচাই করে যে JSP পেজ HTTP সেশনে অংশ নেয় কি না।isScripting Enabled: এই উপাদানটি JSP পৃষ্ঠায় স্ক্রিপ্টিং উপাদানগুলি ব্যবহার করবে কিনা তা নির্দিষ্ট করে৷

নির্দেশিকা অন্তর্ভুক্ত করুন

অনুবাদ পর্বের সময়, অন্তর্ভুক্ত JSP পৃষ্ঠায় ফাইলটি অন্তর্ভুক্ত করতে নির্দেশিকা ব্যবহার করা হয়। এই নির্দেশটি হল JSP পৃষ্ঠার সাথে সমস্ত বাহ্যিক ফাইল একত্রিত করার বিষয়ে কন্টেইনারকে নির্দেশ করা। যেহেতু পৃষ্ঠা নির্দেশিকা শুধুমাত্র JSP পৃষ্ঠার শীর্ষে অন্তর্ভুক্ত করা হয়েছে, তাই অন্তর্ভুক্ত নির্দেশিকাটি পৃষ্ঠার যেকোনো জায়গায় ব্যবহার করা যেতে পারে।

বাক্য গঠন:

|_+_|

উপরের সিনট্যাক্সটি XML এ নিম্নরূপ লেখা হয়েছে:

|_+_|

এখানে, ফাইলের নাম আপেক্ষিক url. আপনি যদি ফাইলের পথটি সংজ্ঞায়িত না করেন তবে কম্পাইলার ধরে নেয় যে আপনার ফাইলটি JSP এর অবস্থানে উপস্থিত রয়েছে।

ট্যাগলিব ডিরেক্টরি

শেষ ডিরেক্টরি টাইপ হয় তাগলিব . এই ডিরেক্টরিটি JSP পৃষ্ঠা সম্পর্কে অনেক তথ্য প্রদান করে, যেমন ব্যবহৃত কাস্টম ট্যাগের সেট, লাইব্রেরির অবস্থান এবং JSP পৃষ্ঠা থেকে কাস্টম ট্যাগগুলি সন্ধান করা। নিচে ট্যাগলিব ডিরেক্টরির সিনট্যাক্স দেওয়া হল।

|_+_|

উপরের সিনট্যাক্সটি XML এ নিম্নরূপ লেখা যেতে পারে:

|_+_|

বৈশিষ্ট্য, ঘৃণা , ধারকটি বুঝতে পারে এমন অবস্থান নির্দিষ্ট করে এবং উপসর্গ attribute কাস্টম অ্যাকশনের রচনা সম্পর্কে কন্টেইনারকে বলে।

JSP অন্তর্নিহিত অবজেক্ট

JSP অন্তর্নিহিত অবজেক্ট হল জাভা অবজেক্ট। JSP কন্টেইনার ডেভেলপারদের স্পষ্টভাবে ঘোষণা না করে প্রতিটি JSP পৃষ্ঠায় এই অন্তর্নিহিত বস্তুগুলি ব্যবহার করার অনুমতি দেয়। এই বস্তুগুলি হিসাবেও উল্লেখ করা হয় পূর্বনির্ধারিত ভেরিয়েবল . নয়টি ভিন্ন অন্তর্নিহিত অবজেক্ট রয়েছে: অনুরোধ, প্রতিক্রিয়া, আউট, সেশন, অ্যাপ্লিকেশন, পৃষ্ঠা, পৃষ্ঠা প্রসঙ্গে, কনফিগারেশন এবং ব্যতিক্রম।

অনুরোধ বস্তু

দ্য javax.servlet.http.HttpServletRequest বস্তু নামক একটি উদাহরণ তৈরি করে অনুরোধ বস্তু যখন একটি ক্লায়েন্ট বা ব্যবহারকারী একটি নির্দিষ্ট পৃষ্ঠার অনুরোধ করে, তখন JSP ইঞ্জিন একটি নতুন বস্তু তৈরি করে যা ক্লায়েন্টের অনুরোধের প্রতিনিধিত্ব করে। দ্য অনুরোধ অবজেক্ট HTTP হেডারের তথ্য বের করার জন্য বিভিন্ন পদ্ধতি অফার করে, যেমন HTTP পদ্ধতি, কুকিজ ইত্যাদি।

প্রতিক্রিয়া অবজেক্ট

দ্য javax.servlet.http.HttpServletResponse বস্তু নামক একটি উদাহরণ তৈরি করে প্রতিক্রিয়া বস্তু ব্যবহারকারী যখনই একটি নির্দিষ্ট পৃষ্ঠার অনুরোধ করে তখন JSP ইঞ্জিন নতুন অবজেক্ট তৈরি করে, এটি তার প্রতিক্রিয়া উপস্থাপন করে একটি বস্তুও তৈরি করে। প্রতিক্রিয়া বস্তু ব্যবহার করে, আপনি JSP প্রোগ্রামে নতুন কুকি অন্তর্ভুক্ত করতে পারেন, যেমন HTTP স্ট্যাটাস কোড, স্ট্যাম্প ইত্যাদি।

আউট অবজেক্ট

দ্য javax.servlet.jsp.JspWriter বস্তু নামক একটি উদাহরণ তৈরি করে আউট বস্তু JSP ইঞ্জিন ক্লায়েন্টের অনুরোধ করা প্রতিক্রিয়াতে বিষয়বস্তু যোগ করতে পারে। দ্য JspWriter অবজেক্টে প্রায় একই পদ্ধতি রয়েছে java.io.PrintWriter ক্লাস কিছু অতিরিক্ত পদ্ধতি আছে JspWriter বাফারিং এবং IOException নিক্ষেপের জন্য ব্যবহৃত বস্তু।

অ্যাপ্লিকেশন অবজেক্ট

দ্য javax.servlet.ServletContext একটি নামক একটি উদাহরণ তৈরি করে আবেদন অবজেক্ট, যা এর জন্য একটি মোড়ক হিসাবে কাজ করে সার্ভলেট কনটেক্সট বস্তু এই বস্তুটি JSP পৃষ্ঠাকে উপস্থাপন করে। যখন JSP পৃষ্ঠাটি আরম্ভ করা হয়, একটি অ্যাপ্লিকেশন অবজেক্ট তৈরি করা হয়। এই বস্তুটি সরানো হয়, কারণ JSP পৃষ্ঠাটি jspDestroy() পদ্ধতি ব্যবহার করে ধ্বংস করা হয়।

অধিবেশন অবজেক্ট

দ্য javax.servlet.http.HttpSession নামক একটি উদাহরণ তৈরি করে সেশন বস্তু এই বস্তুটি একইভাবে কাজ করে যেমন এটি জাভা সার্ভলেটে কাজ করে। সেশন অবজেক্টের প্রাথমিক উদ্দেশ্য হল ক্লায়েন্ট অনুরোধের মধ্যে সেশন ট্র্যাক করা।

ব্যতিক্রম অবজেক্ট

পূর্ববর্তী JSP পৃষ্ঠা থেকে ব্যতিক্রম সম্বলিত একটি মোড়ককে একটি ব্যতিক্রম বস্তু বলা হয়। যখন একটি ত্রুটি অবস্থা ঘটে, একটি ব্যতিক্রম বস্তু এটি পরিচালনার জন্য ব্যবহার করা হয়।

পেজ অবজেক্ট

পৃষ্ঠা বস্তুটি পৃষ্ঠার উদাহরণের রেফারেন্স প্রদান করে। এটি সমগ্র JSP পৃষ্ঠার প্রতিনিধিত্ব করে। দ্য ' এই' অবজেক্ট এবং পেজ অবজেক্ট একে অপরের প্রতিশব্দ।

পেজ কনটেক্সট অবজেক্ট

দ্য javax.servlet.jsp.PageContext নামে একটি উদাহরণ তৈরি করে পৃষ্ঠা প্রসঙ্গ বস্তু মত পৃষ্ঠা বস্তু, the পৃষ্ঠা প্রসঙ্গ অবজেক্ট সম্পূর্ণ JSP পৃষ্ঠাও উপস্থাপন করে। PageContext অবজেক্টের অ্যাট্রিবিউট ব্যবহার করে, আমরা অন্যান্য অন্তর্নিহিত অবজেক্ট বের করতে পারি, যেমন আবেদন , কনফিগারেশন , সেশন , এবং আউট . এই অবজেক্টটি তথ্যও সঞ্চয় করে, যেমন পৃষ্ঠার সুযোগ, errorPageURL এবং বাফারিং তথ্য। pageContext অবজেক্ট দ্বারা সমর্থিত 40টি পদ্ধতি রয়েছে।

কনফিগার অবজেক্ট

দ্য javax.servlet.ServletConfig নামক একটি উদাহরণ তৈরি করে কনফিগারেশন বস্তু এই বস্তুর জন্য মোড়ক হিসাবে কাজ করে ServletConfig বস্তু ব্যবহারকারীরা সার্লেট বা JSP ইঞ্জিনের প্রারম্ভিক পরামিতি অ্যাক্সেস করার জন্য এই বস্তুটি ব্যবহার করতে পারেন। নীচের পদ্ধতিটি কনফিগার অবজেক্ট ব্যবহার করে JSP পৃষ্ঠায় ব্যবহৃত হয়।

|_+_|

JSP ক্লায়েন্ট অনুরোধ

যখন ব্রাউজার বা ক্লায়েন্ট একটি নির্দিষ্ট ওয়েব পেজের অনুরোধ করে তখন ওয়েব সার্ভার অনেক তথ্য পায়। এই তথ্য সরাসরি ব্যবহার করা যাবে না, কারণ এটি HTTP অনুরোধের শিরোনামের মাধ্যমে ভ্রমণ করে। এইচটিটিপি হেডারে বেশ কিছু উপাদান থাকে যা ব্রাউজার যখন ওয়েব পেজের অনুরোধ করে তখন তথ্য সংরক্ষণ করে। এই উপাদানগুলি হল গ্রহণ, গ্রহণ-অক্ষর, গ্রহণ-এনকোডিং, গ্রহণ-ভাষা, সংযোগ, অনুমোদন, কুকি, বিষয়বস্তু-দৈর্ঘ্য, যদি-সংশোধিত-সেন থেকে, হোস্ট, রেফারার, যদি-অপরিবর্তিত-সেন থেকে, এবং ব্যবহারকারী-এজেন্ট।

HTTPServletRequest অবজেক্ট

javax.servlet.http.HttpServletRequest অবজেক্ট অনুরোধ অবজেক্ট নামে একটি উদাহরণ তৈরি করে। যখনই কোনো ব্যবহারকারী একটি নির্দিষ্ট পৃষ্ঠার অনুরোধ করে, JSP ইঞ্জিন নতুন বস্তু তৈরি করে। অনুরোধ অবজেক্টের প্রাথমিক উদ্দেশ্য হল HTTP তথ্য পুনরুদ্ধার করা, যেমন ডেটা, HTTP পদ্ধতি, কুকিজ, ইত্যাদি। নীচে কিছু পদ্ধতি রয়েছে যা JSP প্রোগ্রাম থেকে HTTP শিরোনামের তথ্য পড়ে।

    গণনা getAttributeNames(): এই পদ্ধতির ফলাফল গণনা, যেটিতে এই অনুরোধের জন্য উপলব্ধ বৈশিষ্ট্যের নাম রয়েছে।কুকি[] getCookies(): যখন ক্লায়েন্ট অনুরোধ পাঠায়, এতে কুকি অবজেক্ট থাকে। অতএব, এই পদ্ধতিটি একটি অ্যারে তৈরি করে, যা এই সমস্ত কুকি অবজেক্ট ধারণ করে।গণনা getParameterNames(): এই পদ্ধতির ফলে স্ট্রিং অবজেক্টের গণনা করা হয়। এই গণনা অনুরোধে উপস্থিত প্যারামিটার নাম ধারণ করে।গণনা getHeaderNames(): এটি এই অনুরোধে উপস্থিত শিরোনামের নাম ধারণ করে একটি গণনা তৈরি করে।HttpSession getSession(বুলিয়ান তৈরি): HttpSession getSession(বুলিয়ান তৈরি) পদ্ধতির ফলে বর্তমান HttpSession এই অনুরোধের সাথে সম্পর্কিত। যদি সেই মুহুর্তে কোন সেশন না থাকে এবং তৈরির জন্য বুলিয়ান সত্য হয়, তাহলে এই পদ্ধতিটি একটি নতুন সেশনে পরিণত হয়।HttpSession getSession(): এই পদ্ধতি অনুরোধের সাথে সম্পর্কিত বর্তমান সেশন প্রদান করে। সেশন উপলব্ধ না হলে, এই পদ্ধতিটি একটি নতুন তৈরি করে এবং এটি ফেরত দেয়।অবজেক্ট getAttribute (স্ট্রিং নাম): এটি একটি বস্তু হিসাবে নাম আছে যে বৈশিষ্ট্যের মান উত্পাদন করে. যদি অ্যাট্রিবিউটের কোনো নাম না থাকে, তাহলে এটি NULL প্রদান করে।স্থানীয় getLocale (): এটি লোকেল ফেরত দেয়, যেখানে ক্লায়েন্ট বিষয়বস্তু গ্রহণ করবে।স্ট্রিং getAuthType(): এই পদ্ধতি সার্লেট সংরক্ষণ করতে ব্যবহৃত প্রমাণীকরণ স্কিম নাম নির্দিষ্ট করে। JSP সংরক্ষিত না হলে, এটি NULL প্রদান করে।ServletInputStream getInputStream(): ServletInputStream বাইনারি আকারে অনুরোধের বডি নিয়ে আসে।স্ট্রিং getContent Type(): এই পদ্ধতিটি অনুরোধের বডির MIME প্রকার ফিরিয়ে দেয়। টাইপ জানা না থাকলে, এটি NULL প্রদান করে।স্ট্রিং গেট ক্যারেক্টার এনকোডিং(): অনুরোধের বডিতে উপস্থিত অক্ষর এনকোডিং নামটি এই পদ্ধতি দ্বারা উত্পাদিত হয়।স্ট্রিং গেটহেডার (স্ট্রিং নাম): এটি স্ট্রিং বিন্যাসে অনুরোধ শিরোনামের মান প্রদান করে।স্ট্রিং getContextPath(): এটি অনুরোধের URI-এর অংশ তৈরি করে।স্ট্রিং গেট প্যারামিটার (স্ট্রিং নাম): এই পদ্ধতির ফলে স্ট্রিং ফর্মে অনুরোধের প্যারামিটারের মান পাওয়া যায়। অনুরোধের পরামিতি বিদ্যমান না থাকলে, এটি NULL প্রদান করে।স্ট্রিং getMethod(): স্ট্রিং getMethod() পদ্ধতি HTTP অনুরোধের নাম তৈরি করে, যা বর্তমান অনুরোধের সাথে ব্যবহার করা হয়েছিল।স্ট্রিং getProtocol(): JSP-তে অনুরোধ নির্দিষ্ট প্রোটোকল ব্যবহার করে। এই পদ্ধতিটি প্রোটোকলের নাম এবং সংস্করণ প্রদান করে।স্ট্রিং getPathInfo(): যখন ক্লায়েন্ট অনুরোধ করে, তখন এটি URL পাঠায়। স্ট্রিং getPathInfo() পদ্ধতি URL এর সাথে সম্পর্কিত পাথ সম্পর্কে অতিরিক্ত তথ্য প্রদান করে।স্ট্রিং getRemoteAddr(): এই পদ্ধতির ফলে ক্লায়েন্টের সিস্টেমের ইন্টারনেট প্রোটোকল (IP) ঠিকানা পাওয়া যায়।স্ট্রিং getRemoteUser(): এটি অনুরোধ করা প্রমাণীকৃত ক্লায়েন্টের লগইন তৈরি করে। ব্যবহারকারী প্রমাণীকৃত না হলে, এটি NULL প্রদান করে।স্ট্রিং getRemoteHost(): অনুরোধ করা ক্লায়েন্টের নাম যদি পুনরুদ্ধার করতে হয়, তাহলে স্ট্রিং getRemoteHost() পদ্ধতি ব্যবহার করা যেতে পারে।স্ট্রিং getRequestedSessionId(): এই পদ্ধতিটি সেশন আইডি ফেরত দেয়, যা ক্লায়েন্ট দ্বারা সংজ্ঞায়িত করা হয়।স্ট্রিং getRequestURI(): এটি প্রোটোকল নাম থেকে অনুরোধের URL প্রদান করে।স্ট্রিং[] getParameterValues(স্ট্রিং নাম): এই পদ্ধতিটি স্ট্রিং অবজেক্ট ধারণকারী একটি অ্যারে ফিরিয়ে দেয়। এই বস্তুগুলি অনুরোধে উপস্থিত সমস্ত পরামিতির মান ধরে রাখে।স্ট্রিং getServletPath(): এটি অনুরোধের URLও ফেরত দেয়।int getContentLength(): এটি বাইটে অনুরোধের বডির দৈর্ঘ্য ফেরত দেয়।বুলিয়ান isSecure(): এটি একটি নিরাপদ চ্যানেলের মাধ্যমে অনুরোধ করা হয়েছে কিনা তা নির্দিষ্ট করে বুলিয়ান মান ফেরত দেয়।int getServletPort(): এই পদ্ধতি অনুরোধের পোর্ট নম্বর দেয়।int getIntHeader (স্ট্রিং নাম): এই পদ্ধতির ফলে পূর্ণসংখ্যা বিন্যাসে অনুরোধ শিরোনামের মান পাওয়া যায়।

HTTP হেডার অনুরোধের উদাহরণ

এখানে, আমরা HTTP হেডার অনুরোধের একটি সরল উদাহরণ দেখতে পাব। HTTP হেডার অনুরোধের উদাহরণে, আমরা প্রয়োগ করব getHeaderName() HTTP হেডার তথ্য পড়ার জন্য পদ্ধতি। এটি অনুরোধের HTTP হেডার তথ্য ধারণকারী একটি গণনা তৈরি করে। hasmoreElements() পদ্ধতি নির্ধারণ করে কখন nextElement() পদ্ধতি বন্ধ করা উচিত।

উদাহরণ:

|_+_|

উপরের কোডটি লিখুন main.jsp ফাইল করুন এবং HTTP অনুরোধ শিরোনামের তথ্য পড়ার জন্য এটি অ্যাক্সেস করুন। এটি আপনাকে HTTP অনুরোধ শিরোনাম সম্পর্কে সমস্ত তথ্য দেবে, যেমন হোস্ট, সংযোগ, ক্যাশে-নিয়ন্ত্রণ, ব্যবহারকারী-এজেন্ট, গ্রহণ, ভাষা গ্রহণ, এবং স্বীকার-এনকোডিং।

JSP সার্ভার প্রতিক্রিয়া

যখন ক্লায়েন্ট বা ব্রাউজার ওয়েব পেজের অনুরোধ করে, তখন ওয়েব সার্ভার HTTP অনুরোধে সাড়া দেয় যাকে রেসপন্স বলা হয়। এই প্রতিক্রিয়াটিতে একটি ফাঁকা লাইন, নথি, স্ট্যাটাস লাইন এবং কিছু প্রতিক্রিয়া শিরোনাম অন্তর্ভুক্ত রয়েছে। HTTP প্রতিক্রিয়া নিম্নরূপ দেখায়:

|_+_|

উপরের কোডটিতে, HTTP সংস্করণটি রয়েছে HTTP/1.1 , 200 স্ট্যাটাস কোড, এবং ঠিক আছে স্ট্যাটাস কোডের বার্তা। একাধিক প্রতিক্রিয়া শিরোনাম আছে, ওয়েব সার্ভার দ্বারা ব্রাউজারে পাঠানো HTTP/1.1 সংস্করণ রয়েছে। এই প্রতিক্রিয়া শিরোনামগুলি হল ক্যাশে-নিয়ন্ত্রণ, অনুমতি, বিষয়বস্তু-স্বভাব, সংযোগ, বিষয়বস্তু-দৈর্ঘ্য, বিষয়বস্তু-এনকোডিং, বিষয়বস্তু-ভাষা, মেয়াদ শেষ, বিষয়বস্তু-প্রকার, অবস্থান, সর্বশেষ-সংশোধিত, সেট-কুকি, রিফ্রেশ এবং পুনরায় চেষ্টা করার পরে .

HttpServletResponse অবজেক্ট

javax.servlet.http.HttpServletResponse রেসপন্স অবজেক্ট নামে একটি উদাহরণ তৈরি করে। এই বস্তুটি ওয়েব সার্ভার দ্বারা তৈরি করা হয়েছে, যা ক্লায়েন্টকে পাঠানো প্রতিক্রিয়া উপস্থাপন করে। প্রতিক্রিয়া বস্তুটি HTTP হেডার তৈরির জন্য প্রয়োজনীয় ইন্টারফেসের সাথেও যুক্ত। প্রোগ্রামাররা JSP প্রোগ্রামে নতুন কুকি, HTTP স্ট্যাটাস কোড এবং তারিখ স্ট্যাম্প যোগ করতে পারে। সার্লেট প্রোগ্রামে HTTP প্রতিক্রিয়া শিরোনাম যোগ করার জন্য নিম্নলিখিত কিছু পদ্ধতি বা ফাংশন ব্যবহার করা হয়।

    স্ট্রিং এনকোড ইউআরএল (স্ট্রিং ইউআরএল): এই পদ্ধতিটি সেশন আইডি অন্তর্ভুক্ত একটি নির্দিষ্ট URL এনকোড করার জন্য ব্যবহৃত হয়। এনকোডিং প্রয়োজন হলে, এই পদ্ধতি পরিবর্তন না করেই URL পাঠায়।স্ট্রিং এনকোডরেডাইরেক্ট ইউআরএল(স্ট্রিং ইউআরএল): sendRedirect ফাংশন অন্তর্ভুক্ত URL এনকোড করা হয়. এনকোডিং প্রয়োজন না হলে, URL অপরিবর্তিত থাকে।বুলিয়ান প্রতিশ্রুতিবদ্ধ(): এই ফাংশনটি বুলিয়ান ভ্যালুতে পরিণত হয়, প্রতিক্রিয়া প্রতিশ্রুতিবদ্ধ হয়েছে কিনা তা উল্লেখ করে।বুলিয়ানে রয়েছে হেডার (স্ট্রিং নাম): এর ফলে বুলিয়ান মানও উল্লেখ করা হয় যে নাম সহ প্রতিক্রিয়া শিরোনাম সেট করা হয়েছে কিনা।void addHeader (স্ট্রিং নাম, স্ট্রিং মান): এই ফাংশনটি এর নাম এবং মান সহ একটি প্রতিক্রিয়া শিরোনাম অন্তর্ভুক্ত করে।void addDateHeader (স্ট্রিং নাম, দীর্ঘ তারিখ): এটির নাম এবং তারিখ সহ একটি নতুন প্রতিক্রিয়া শিরোনামও রয়েছে৷অকার্যকর ফ্লাশবাফার(): এই ফাংশন জোর করে ক্লায়েন্টের কাছে বাফারে উপস্থিত বিষয়বস্তু লেখে।void addIntHeader (স্ট্রিং নাম, int মান): এই ফাংশনটির নাম এবং একটি পূর্ণসংখ্যা মান সহ একটি নতুন প্রতিক্রিয়া শিরোনাম অন্তর্ভুক্ত।অকার্যকর রিসেটবাফার(): এটি অন্তর্নিহিত বাফার থেকে সমস্ত বিষয়বস্তু মুছে বা সাফ করে কিন্তু হেডার এবং স্ট্যাটাস কোড সাফ করে না।অকার্যকর রিসেট(): এই ফাংশনটি স্ট্যাটাস কোড এবং হেডার সহ বাফারে উপস্থিত সমস্ত ডেটা মুছে বা মুছে দেয়।void sendError (int sc, String msg): এর ফলে একটি নির্দিষ্ট স্থিতি থাকা ত্রুটির বার্তাটি ক্লায়েন্টকে পাঠানো হয়।অকার্যকর sendError(int sc): এই ফাংশনটি বাফার থেকে ডেটা মুছে নির্দিষ্ট স্ট্যাটাস কোড সহ ক্লায়েন্টের কাছে ত্রুটি বার্তা প্রেরণ করে।অকার্যকর সেটBufferSize(int size): এই ফাংশন রেসপন্স বডির জন্য বাফার সাইজ ঠিক করে।void setIntHeader (স্ট্রিং নাম, int মান): এই ফাংশনটি এর নাম এবং নির্দিষ্ট পূর্ণসংখ্যার মান সহ প্রতিক্রিয়া শিরোনাম সেট করে।

HTTP হেডার প্রতিক্রিয়া উদাহরণ

এখানে HTTP হেডার প্রতিক্রিয়ার একটি উদাহরণ রয়েছে, যা রিফ্রেশ হেডার সেট করার জন্য setIntHeader() ফাংশন ব্যবহার করে।

উদাহরণ:

|_+_|

ফাইলের নাম দিয়ে উপরের কোডটি সংরক্ষণ করুন, main.jsp . প্রতি 4 সেকেন্ডের পরে, সিস্টেমের বর্তমান সময় প্রদর্শিত হয়, যেমনটি নীচে দেখানো হয়েছে।

আউটপুট:

|_+_|

JSP-তে HTTP স্ট্যাটাস কোড

HTTP অনুরোধ এবং HTTP প্রতিক্রিয়া নিম্নলিখিত হিসাবে একই কাঠামো আছে:

  • প্রথমত, এতে স্ট্যাটাস লাইন, ক্যারেজ রিটার্ন (CRLF) এবং লাইন ফিড অন্তর্ভুক্ত রয়েছে। লাইন ফিড একটি নতুন লাইন বোঝায়।
  • পরেরটি হল শূন্য বা তার বেশি হেডার লাইন এবং ক্যারেজ রিটার্ন (CRLF)।
  • তারপরে একটি ফাঁকা লাইন আসে, CRLF।
  • সবশেষে, বার্তার মূল অংশটি ঐচ্ছিক। বার্তার মূল অংশে ক্যোয়ারী আউটপুট, ক্যোয়ারী ডেটা বা ফাইল থাকতে পারে।

উপরের বিভাগে, আমরা দেখেছি প্রতিক্রিয়া শিরোনামটি কেমন দেখাচ্ছে।

ওয়েব সার্ভার ক্লায়েন্টকে কিছু HTTP কোড এবং তাদের নিজ নিজ বার্তা ফেরত দেয়। এই HTTP স্থিতি কোড এবং তাদের বার্তা নিম্নলিখিত বিভাগে বর্ণনা করা হয়েছে.

কোড বার্তা
100চালিয়ে যান
101স্যুইচিং প্রোটোকল
200ঠিক আছে
201তৈরি হয়েছে
202গৃহীত
203অ-অনুমোদিত তথ্য
204কোন উপাদান নেই
205কন্টেন্ট রিসেট করুন
206আংশিক বিষয়বস্তু
300একাধিক পছন্দ
301স্থায়ীভাবে চলে
302পাওয়া গেছে
303অন্যান্য দেখুন
304সংশোধিত নয়
305ব্যবহার প্রক্সি
306অব্যবহৃত
307অস্থায়ী পুনঃনির্দেশ
400খারাপ অনুরোধ
401অননুমোদিত
402অর্থপ্রদান আবশ্যক
403নিষিদ্ধ
404পাওয়া যায়নি
405পদ্ধতি অনুমতি নেই
406গ্রহণযোগ্য নয়
407প্রক্সি প্রমাণীকরণ প্রয়োজন
408অনুরোধের সময়সীমা শেষ
409দ্বন্দ্ব
410সর্বস্বান্ত
411দৈর্ঘ্য প্রয়োজন
412পূর্বশর্ত ব্যর্থ হয়েছে
413অনুরোধ সত্তা খুব বড়
414অনুরোধ-ইউআরএল অনেক বড়
415অসমর্থিত মিডিয়া প্রকার
417প্রত্যাশা ব্যর্থ হয়েছে
500অভ্যন্তরীণ সার্ভার ত্রুটি
501বাস্তবায়িত হয়নি
502খারাপ গেটওয়ে
503সেবা প্রদান করা যাচ্ছে না
504গেটওয়ে টাইমআউট
505HTTP সংস্করণ সমর্থিত নয়

নীচে দেওয়া হিসাবে HTTP স্ট্যাটাস কোড সেট করতে তিনটি ভিন্ন পদ্ধতি ব্যবহার করা হয়:

    সর্বজনীন অকার্যকর সেট স্ট্যাটাস(int statusCode): এটি স্ট্যাটাস কোড সেট করে, যা একটি আর্গুমেন্ট হিসাবে স্ট্যাটাস কোডের জন্য পূর্ণসংখ্যার মান ব্যবহার করে।সর্বজনীন অকার্যকর সেন্ডরিডাইরেক্ট (স্ট্রিং ইউআরএল): এই ফাংশনটি 302 কোড সহ একটি প্রতিক্রিয়া তৈরি করে। এটি একটি অবস্থান শিরোনামও তৈরি করে, যা নতুন নথির URL নির্দিষ্ট করে।সর্বজনীন অকার্যকর প্রেরণ ত্রুটি (int কোড, স্ট্রিং বার্তা): এই ফাংশনটি একটি ছোট বার্তা সহ ব্রাউজারে 404 HTTP স্ট্যাটাস কোড প্রেরণ করে।

আমরা একটি সরল উদাহরণ দেখতে পাব, যা ক্লায়েন্টকে 407 এরর স্ট্যাটাস কোড প্রদর্শন করবে।

উদাহরণ:

|_+_|

উপরের কোডের সাথে 407 HTTP স্ট্যাটাস কোড প্রদর্শন করবে প্রমাণীকরণ প্রয়োজন বার্তা

JSP-তে ফর্ম প্রসেসিং

অনেক সময়, আমাদের ব্রাউজার থেকে ওয়েব সার্ভারে এবং অবশেষে প্রোগ্রামে ডেটা প্রেরণ করতে হয়। ওয়েব সার্ভারে এই ডেটা প্রেরণ করতে ব্রাউজার দ্বারা ব্যবহৃত দুটি পদ্ধতি, GET এবং POST রয়েছে। JSP ব্যবহার করে ডেটা পড়ার জন্য চারটি পদ্ধতি ব্যবহার করা হয়, getParameter() , getParameterValues() , getParameterNames() , এবং getInputStream() .

GET পদ্ধতি

GET পদ্ধতিটি এনকোড করা ব্যবহারকারীর তথ্য প্রেরণ এবং পৃষ্ঠার অনুরোধে যুক্ত করার জন্য ব্যবহৃত হয়। এনকোড করা ব্যবহারকারীর তথ্য এবং পৃষ্ঠার অনুরোধ '?' প্রতীক দ্বারা পৃথক করা হয়। এই পদ্ধতিটি ব্রাউজার থেকে ওয়েব সার্ভারে ব্যবহারকারীর তথ্য প্রেরণের জন্য ডিফল্ট। এটি স্ট্রিং প্রদান করে যা উপস্থিত থাকবে অবস্থান: বক্স ব্রাউজার এর। আপনার কাছে পাসওয়ার্ডের মতো গোপনীয় তথ্য থাকলে, GET পদ্ধতি ব্যবহার করবেন না।

URL ব্যবহার করে GET পদ্ধতির উদাহরণ

আসুন আমরা একটি URL তৈরি করি যা GET পদ্ধতি ব্যবহার করে GetURLForm প্রোগ্রামে দুটি ভিন্ন মান পাস করবে।

|_+_|

আমরা main.jsp ফাইলে নিচের কোডটি লিখব। আমরা JSP ব্যবহার করে ডেটা পড়ার জন্য getParameter() পদ্ধতি ব্যবহার করেছি।

উদাহরণ:

|_+_|

আউটপুট:

|_+_|

কুকিজ হ্যান্ডলিং

কুকিজ কি? কুকি হল ক্লায়েন্টের ডেস্কটপে উপস্থিত টেক্সট ফাইল এবং ট্র্যাকিংয়ের উদ্দেশ্যে ব্যবহার করা হয়। HTTP কুকি JSP দ্বারা সমর্থিত। এখানে, আমরা HTTP কুকির অ্যানাটমি, কীভাবে কুকি সেট বা রিসেট করতে হয় এবং কুকিতে পদ্ধতিগুলি দেখব।

কুকির অ্যানাটমি

কুকি সবসময় HTTP হেডারে উপস্থিত থাকে। যখন JSP HTTP হেডারে কুকি সেট করে, তখন এটির নিম্নোক্ত কাঠামো থাকে।

|_+_|

মধ্যে সেট-কুকি হেডার উপরে, আপনি পর্যবেক্ষণ করতে পারেন নাম-মান জোড়া, তারিখ GMT এ, ক পথ , এবং ডোমেইন . এই নাম-মানের জুটি URL বিন্যাসে উপস্থিত। উপরের কুকি আরেকটি উপাদান হল মেয়াদ শেষ , যা ব্রাউজারকে নির্দিষ্ট তারিখ এবং সময়ের পরে এই কুকি ভুলে যেতে বলে৷

কুকিজ পদ্ধতি

নিম্নলিখিত কুকিজ সম্পর্কিত কিছু উল্লেখযোগ্য পদ্ধতি, তাদের বর্ণনা সহ।

    পাবলিক স্ট্রিং getDomain(): এই ফাংশন কুকির ডোমেন পুনরুদ্ধার করে।সর্বজনীন অকার্যকর সেটডোমেন (স্ট্রিং প্যাটার্ন): আপনি এই ফাংশনটি ব্যবহার করে আপনার কুকির জন্য ডোমেন সেট করতে পারেন।পাবলিক int getMaxAge(): এটি একটি কুকির সর্বোচ্চ বয়স নিয়ে আসে। বয়স সেকেন্ডে প্রতিনিধিত্ব করা হয়.সর্বজনীন অকার্যকর সেটMaxAge(int মেয়াদ শেষ): এই ফাংশনটি কুকির মেয়াদ শেষ হওয়ার আগে অতিবাহিত হওয়ার সময়কাল নির্ধারণ করবে।পাবলিক স্ট্রিং getValue(): এটি কুকির মান পুনরুদ্ধার করে।সর্বজনীন স্ট্রিং getName(): এটি কুকির নাম নিয়ে আসে। আপনি এটি তৈরি করার পরে কুকির নাম পরিবর্তন করতে পারবেন না।সর্বজনীন অকার্যকর সেট ভ্যালু (স্ট্রিং নতুন মান): এই ফাংশন কুকি মান ঠিক করে।সর্বজনীন স্ট্রিং getPath(): এটি কুকির সাথে যুক্ত পথের ফলাফল।সর্বজনীন অকার্যকর সেটপাথ (স্ট্রিং ইউরি): এই ফাংশন কুকির জন্য পথ সেট করে।সর্বজনীন স্ট্রিং getComment(): এটি মন্তব্যে পরিণত হয়, যা কুকির উদ্দেশ্য বা ব্যবহার নির্দিষ্ট করে। কুকির কোনো মন্তব্য না থাকলে, এটি NULL প্রদান করে।পাবলিক ভ্যাইড সেট সিকিউর (বুলিয়ান পতাকা): এটি একটি এনক্রিপ্ট করা সংযোগের মাধ্যমে কুকি পাঠাতে হবে কিনা তা নির্ধারণ করে বুলিয়ান মান নির্দিষ্ট করে৷সর্বজনীন অকার্যকর সেট মন্তব্য (স্ট্রিং উদ্দেশ্য): এই ফাংশনটি একটি কুকির জন্য মন্তব্য সেট করে যার উদ্দেশ্য নির্দিষ্ট করে।

কুকি কিভাবে সেট করবেন?

কুকি সেট করার জন্য তিনটি সহজবোধ্য পদ্ধতি আছে। এই পদ্ধতিগুলি নীচে ব্যাখ্যা করা হয়েছে:

  1. প্রথমত, কুকি অবজেক্ট তৈরি করুন। কুকির নাম এবং সংশ্লিষ্ট মান দিয়ে কুকি কনস্ট্রাক্টরকে কল করুন। নাম এবং মান উভয়ই স্ট্রিং-এ উপস্থাপিত হয়।
|_+_|

কুকি তৈরি করার সময়, আপনাকে অবশ্যই মনে রাখতে হবে যে নাম এবং মানতে কোনও ফাঁকা স্থান বা বিশেষ চিহ্ন থাকা উচিত নয়।

  1. কুকি তৈরি করার পর, আমরা এখন এটি ব্যবহার করে সর্বোচ্চ বয়স নির্ধারণ করব সেট ম্যাক্সএজ ফাংশন
|_+_|

উপরের ফাংশনটি সর্বোচ্চ 24 ঘন্টা কুকির বয়স নির্ধারণ করে।

  1. অবশেষে, HTTP প্রতিক্রিয়া শিরোনামে কুকি যোগ করতে response.addCookie ব্যবহার করুন।
|_+_|

উপসংহার

JavaServer Pages বা Jakarta Server Pages (JSP) হল এমন প্রযুক্তি যা ডেভেলপারদের গতিশীল কন্টেন্ট বা ওয়েবপেজ তৈরি করতে সক্ষম করে। JSP এর একাধিক উন্নত সুবিধা রয়েছে, কারণ এটি বজায় রাখা সহজ, সার্লেটের তুলনায় কম কোডের প্রয়োজন এবং দ্রুত বিকাশের প্রস্তাব দেয়। এই নিবন্ধটি নতুন ব্যবহারকারীদের জন্য JSP শিখতে একটি দ্রুত নির্দেশিকা।

আমরা JSP-এর সমস্ত দিক কভার করেছি যা নবজাতক বিকাশকারীদের শেখার জন্য প্রয়োজনীয়। যেকোনো JSP প্রোগ্রাম শুরু করার আগে, প্রথমে জাভা পরিবেশ এবং টমক্যাট ক্লাসপাথ সেট আপ করুন। এখানে সমস্ত প্রয়োজনীয় JSP উপাদান সম্পর্কে একটি সম্পূর্ণ টিউটোরিয়াল রয়েছে।

আমরা একটি আছে গ্রাফ থিওরি দ্রুত গাইড যা বিস্তারিতভাবে গ্রাফ থিওরি সম্পর্কিত সমস্ত বিবরণ সম্পর্কে কথা বলে।