پروگرامنگ

JSP - ابتدائیوں کے لیے فوری گائیڈ

30 اکتوبر 2021

فہرست کا خانہ

JavaServer صفحات کیا ہے؟

دی JavaServer صفحات (JSP) ، ایک سرور سائیڈ ٹیکنالوجی، ڈویلپرز کو ویب صفحات تیار کرنے میں مدد کرتی ہے، جو استعمال کرتے ہیں۔ ایچ ٹی ایم ایل , XML , صابن وغیرہ۔ اسے بھی کہا جاتا ہے۔ جکارتہ سرور کے صفحات . جے ایس پی میں، ڈویلپر جاوا کوڈ کو ایمبیڈ کر سکتے ہیں۔ ایچ ٹی ایم ایل زبان. جے ایس پی میں منفرد ٹیگ ہیں، جو استعمال کرنے کی اجازت دیتے ہیں۔ جاوا HTML میں کوڈ۔ یہ ٹیگز شروع اور ختم ہوتے ہیں۔ '<%’ اور '%>' علامتیں، بالترتیب۔ JSPs چلانے کے لیے، آپ کو ایک ویب سرور کی ضرورت ہے جس میں سرولیٹ کنٹینر ہو۔ مثال کے طور پر، آپ استعمال کر سکتے ہیں اپاچی ٹامکیٹ یا جیٹی .

JSP سے ماڈلنگ کی گئی ہے۔ جاوا سرولیٹس . جاوا سرولیٹ اسے جکارتہ سرولیٹ بھی کہا جاتا ہے۔ رن ٹائم کے دوران، JSPs سرولیٹ میں تبدیل ہو جاتے ہیں۔ اس لیے انہیں سرولیٹ کہا جاتا ہے۔ عام طور پر، JSPs کو ٹیکسٹ فائلوں میں لکھا جاتا ہے اور HTML یا XHTML کوڈ، JSP ایکشنز، XML عناصر، اور JSP کمانڈز کو ایمبیڈ کیا جاتا ہے۔ JSPs جاوا ویب ایپلیکیشنز میں صارف انٹرفیس کا کردار ادا کرتا ہے۔ تمام JSP مضمر اشیاء، جیسے کہ درخواست، سیشن، تشکیل، آؤٹ، رسپانس، ایپلیکیشن، صفحہ، اور صفحہ سیاق و سباق، کے ذریعہ بنائے گئے ہیں۔ ویب کنٹینر .

ہو سکتا ہے آپ کو ویب پیج کے فارم مل گئے ہوں۔ ان فارمز کا مقصد مختلف صارفین سے ڈیٹا اکٹھا کرنا ہے۔ ان ویب پیج فارمز میں، JSP کا استعمال صارفین سے ڈیٹا ان پٹ کے طور پر لینے، ڈیٹا بیس کی شکل میں ان ڈیٹا کو ترتیب دینے، اور ویب پیجز بنانے کے لیے استعمال کیا جاتا ہے۔ JSP کا بنیادی مقصد XML اور HTML دستاویز کی اقسام کو پیش کرنا ہے۔ لیکن، یہ دستاویزات کو دوسرے فارمیٹس میں بھی پیش کر سکتا ہے، جیسا کہ یہ استعمال کرتا ہے۔ آؤٹ پٹ اسٹریم . JSP کے لیے فائل کی توسیع .jsp، .jspx، .jspf، اور انٹرنیٹ میڈیا کی قسم ایپلی کیشن/jsp ہے۔

آپ فائل ایکسٹینشن کو تبدیل کر کے کسی بھی HTML فائل کو JSP فائل میں تبدیل کر سکتے ہیں۔ .html کو .jsp . ایکسٹینشن کو تبدیل کرنے کے بعد، HTML صفحات کے اندر جاوا کوڈ شامل کرنے کے لیے JSP ٹیگز استعمال کریں۔ JPS کا استعمال کرتے ہوئے، ڈویلپرز متحرک ویب بنا سکتے ہیں۔ صفحات اور پلیٹ فارم سے آزاد ویب صفحات۔ آئیے جے ایس پی کی کچھ اہم خصوصیات دیکھیں۔

ہمارے چیک کریں انسانی کمپیوٹر انٹرفیس گائیڈ جو beginners کے لیے اچھا ہو گا۔

جے ایس پی کی خصوصیات

JSP متحرک ویب مواد بنانے کے آسان طریقوں میں سے ایک ہے۔ متعدد ایپلیکیشنز بنانے کے لیے ڈیولپرز JSP کا انتخاب کرنے کی کئی وجوہات ہیں۔ یہاں جکارتہ سرور پیجز کی چند مخصوص خصوصیات ہیں۔

  • JSP میں ایکشن اور کسٹم ٹیگز موجود ہیں۔ لہذا، JSP کے کوڈ کی لمبائی سائز میں چھوٹی ہے۔
  • JSP میں کوڈ لکھنا سیدھا سادہ ہے، کیونکہ یہ جاوا پروگرامنگ لینگویج کو HTML یا XML صفحات میں سرایت کرتا ہے۔
  • JSP ڈویلپرز کو ڈیٹا اکٹھا کرنے اور اسے ڈیٹا بیس میں ڈالنے یا ڈیٹا بیس میں ڈیٹا کو پڑھنے یا لکھنے کی اجازت دیتا ہے۔
  • یہ سرور سائیڈ ٹیکنالوجی انتہائی لچکدار، پورٹیبل اور مضبوط ہے کیونکہ یہ کسی براؤزر یا سرور پر منحصر نہیں ہے۔
  • JSP کوڈ کو بار بار مرتب کرنے کی کوئی ضرورت نہیں ہے۔ یہ پلیٹ فارم سے آزاد ہے اور اسے دوبارہ کمپائل کیے بغیر کسی بھی کنسول پر چلایا جا سکتا ہے۔
  • JSP مضمر اشیاء، سرولیٹس اور حسب ضرورت ٹیگز کو شامل کرتا ہے۔ لہذا، ڈویلپر انٹرایکٹو اور ریئل ٹائم ویب صفحات تیار کرتے ہیں۔
  • ہم JSP پروگراموں میں دیگر اسکرپٹنگ زبانوں کو بھی شامل کر سکتے ہیں، جیسے JavaScript، Perl، VBScript، وغیرہ۔ پہلے سے طے شدہ طور پر، Java JSP کی اسکرپٹنگ لینگویج ہے۔

جاوا سرور کے صفحات کیوں استعمال کریں؟

JSPs استعمال کرنے کے کئی فائدے ہیں۔ وہ اس کی طرح کام کرتے ہیں۔ کامن گیٹ وے انٹرفیس (CGI) . ویب سرور ان تمام پروگراموں کو انجام دیتے ہیں جو عام گیٹ وے انٹرفیس پر متحرک ویب صفحات تیار کرتے ہیں۔ جب ہم JSP کا CGI سے موازنہ کرتے ہیں تو JSP زیادہ مضبوط ہوتا ہے اور ڈویلپرز کو زیادہ فوائد فراہم کرتا ہے۔ یہاں کچھ وجوہات ہیں جو یہ سمجھنے میں مدد کریں گی کہ کس طرح JSP CGI سے زیادہ فائدہ مند ہے۔

  • ڈویلپر JSP کا استعمال کرتے ہوئے HTML میں متحرک عناصر شامل کر سکتے ہیں۔ اگر وہ CGI استعمال کرتے ہیں، تو انہیں Dynamic Elements کے لیے علیحدہ CGI فائل بنانے کی ضرورت ہے۔
  • JSPs کو مرتب کیا جاتا ہے اور بعد میں کسی بھی پلیٹ فارم پر چلایا جاتا ہے۔ دوسری طرف، جب بھی آپ ویب صفحہ کی درخواست کرتے ہیں تو CGI ترجمان کو لوڈ کرتا ہے اور کوڈ کی ترجمانی کرتا ہے۔
  • کاروباری منطق کی نگرانی کے لیے آپ JSP اور servlets کو ایک ساتھ استعمال کر سکتے ہیں۔ Java servlet ٹیمپلیٹ انجن JSP اور servlet کے اس مشترکہ ماڈل کو سپورٹ کرتے ہیں۔
  • JSP Java servlets کا ایک اعلیٰ سطحی خلاصہ ہے۔ یہ صفحات جاوا سرولیٹ انٹرفیس کے اوپری سطح پر بنائے گئے ہیں۔ لہذا، وہ تمام بنیادی جاوا انٹرفیس تک رسائی حاصل کر سکتے ہیں، جیسے JAXP، JDBC، JNDI، وغیرہ۔
  • MVC فن تعمیر میں، JSP اس کی ویو پرت کے طور پر استعمال ہوتا ہے۔
  • تمام انٹرپرائز لیول ایپلی کیشنز کو جاوا ای ای کہلانے والے پلیٹ فارم پر عمل میں لایا جاتا ہے۔ Java EE پلیٹ فارم JSP کو شامل کرتا ہے۔

جے ایس پی کے فوائد

JSP دیگر ٹیکنالوجیز، جیسے JavaScript، Static HTML، Pure Servlets وغیرہ سے زیادہ موثر اور مضبوط ہے۔ یہاں ہم دیکھیں گے کہ JSP دیگر ٹیکنالوجیز کے مقابلے میں کس طرح فائدہ مند ہے۔

  • JSP کے سب سے زیادہ مطلوبہ فوائد میں سے ایک یہ ہے کہ یہ جاوا پروگرامنگ لینگویج کو اپنا متحرک حصہ لکھنے کے لیے استعمال کرتا ہے۔ یہ کوڈ لکھنے کے لیے Visual Basic کا استعمال نہیں کرتا ہے۔ دوم، یہ دوسرے کے ساتھ مطابقت رکھتا ہے۔ آپریٹنگ نظام
  • JSPs کا استعمال کرتے ہوئے، ہم جاوا کوڈ کو HTML صفحات میں شامل کرتے ہیں۔ لہذا، HTML میں ترمیم کرنا آسان نہیں ہے۔
  • یہ ویب فارمز سے ڈیٹا بازیافت کرتا ہے اور انہیں ڈیٹا بیس سے جوڑتا ہے۔
  • ویب ایپلیکیشن میں، JSP بزنس لاجک پرت کو پریزنٹیشن لیئر سے الگ کرتا ہے۔
  • JSP جاوا پروگرامنگ زبان استعمال کرتا ہے۔ لہذا، یہ جاوا کے ملٹی تھریڈنگ تصور کی بھی حمایت کرتا ہے۔

اس سے پہلے کہ ہم JSP ٹیوٹوریل پر جائیں، ہم JSP ماحول کو ترتیب دینے میں آپ کی رہنمائی کریں گے۔ مزید برآں، آپ کو جاوا پروگرامنگ کے بارے میں تفصیلی معلومات درکار ہیں۔ اب ہمیں بتائیں کہ اپنے ڈیسک ٹاپ پر JSP ماحول کیسے ترتیب دیا جائے۔

JSP ماحول کیسے ترتیب دیا جائے؟

آپ کو JSP ماحول کو ترتیب دینے کی ضرورت کیوں ہے؟ کیا ڈیسک ٹاپ پر JSP ماحول کو ٹھیک کرنا ضروری ہے؟ اگر آپ JSP کا استعمال کرتے ہوئے متحرک ویب مواد یا ویب ایپلیکیشنز بنانا چاہتے ہیں، تو آپ کو JSP ماحول ترتیب دینا ہوگا۔ یہ ماحول ڈیولپرز کو JSP پروگرام لکھنے، ان کو مرتب کرنے، کسی بھی پلیٹ فارم پر عمل کرنے کے قابل بناتا ہے۔ ہم ذیل کے مراحل میں JSP ماحول کے سیٹ اپ کی وضاحت کریں گے:

جاوا ڈویلپمنٹ کٹ سیٹ اپ

پہلا قدم ٹھیک کرنا ہے۔ جاوا ڈویلپمنٹ کٹ (JDK) آپ کے ڈیسک ٹاپ پر۔ جاوا ڈویلپمنٹ کٹ ضروری ہے کیونکہ ہم جے ایس پی کا استعمال کرتے ہوئے جاوا کوڈ کو ایچ ٹی ایم ایل کوڈ میں ایمبیڈ کرتے ہیں۔ لہذا، JSP ماحول کو پہلے JDK ماحول کو ٹھیک کرنے کی ضرورت ہے۔

سب سے پہلے، آپ کو جاوا سافٹ ویئر ڈویلپمنٹ کٹ (SDK) اوریکل کے آفیشل سے ڈاؤن لوڈ کرنا ہوگا۔ ویب سائٹ

ڈاؤن لوڈ کرنے کے بعد، .exe فائل کو کھولیں اور دی گئی ہدایات کا استعمال کرتے ہوئے اسے انسٹال اور کنفیگر کریں۔ بعد میں، آپ کو دو ماحولیاتی متغیرات مرتب کرنے کی ضرورت ہے، PATH اور JAVA_HOME . آپ کو سیٹ کرنا ہوگا۔ PATH کے ڈیسک ٹاپ کے مقام پر متغیر java ، یعنی java_install_dir/bin، اور JAVA_HOME اس مقام پر متغیر جہاں موجود ہے۔ javac ، یعنی java_install_dir .

اگر آپ کے پاس ونڈوز سسٹم ہے اور آپ کے پاس SDK فائل انسٹال ہے۔ C:jdk1.5.0_20 مقام، اس راستے کو میں شامل کریں۔ C:autoexec.bat فائل

|_+_|

اگر آپ نے SDK فائل کو Windows NT، 2000، یا XP سسٹم پر انسٹال کیا ہے، تو ترتیب دینے کا ایک مختلف طریقہ ہے۔ PATH اور JAVA_HOME ماحولیاتی تغیرات. آپ کو دائیں کلک کرنا ہوگا۔ میرے کمپیوٹر ، منتخب کریں۔ پراپرٹیز , ick پر اعلی درجے کی ، اور جائیں ماحولیاتی تغیرات . یہاں، آپ کو سیٹ کرنا ہوگا۔ PATH کے مقام تک java ، یعنی Cjdk1.5.0_20in . PATH کو تبدیل کرنے کے بعد، پر کلک کریں۔ ٹھیک ہے بٹن

اب ہم جانیں گے کہ PATH اور JAVA_HOEM ماحولیاتی متغیرات کو UNIX سسٹمز کے لیے کیسے سیٹ کیا جائے، جیسے سولاریس، لینکس ، وغیرہ۔ فرض کریں کہ ہم نے SDK فائل کو انسٹال کر لیا ہے۔ /usr/local/jdk1.5.0_20 . آپ کو ذیل میں دو کمانڈز کو شامل کرنا ہوگا۔ .cshrc فائل غور کریں کہ ہم C شیل کا استعمال کرتے ہیں۔

|_+_|

اگر آپ انٹیگریٹڈ ڈیولپمنٹ انوائرمنٹ (IDE) ٹولز استعمال کرتے ہیں، جیسے Eclipse، Sun ONE Studio، JBuilder، وغیرہ، ایک نمونہ جاوا پروگرام لیں، مرتب کریں اور اسے چلا کر یہ چیک کریں کہ آپ کا IDE ٹول جانتا ہے کہ آپ کے سسٹم پر جاوا کہاں انسٹال ہے۔

جاوا ڈویلپمنٹ کٹ کو انسٹال کرنے اور PATH اور JAVA_HOME ماحول کے متغیرات کو ترتیب دینے کے بعد، اگلا مرحلہ ویب سرور کو سیٹ اپ کرنا ہے۔

ٹامکیٹ ویب سرور ترتیب دینا

آج کئی ویب سرورز دستیاب ہیں جو JSP یا Servlets کے ذریعے متحرک ویب ایپلیکیشنز تیار کرنے میں معاونت کرتے ہیں۔ ہم Tomcat ویب سرور استعمال کریں گے، جو اوپن سورس اور استعمال کے لیے مفت ہے۔ Tomcat Apache Tomcat کا مختصر نام ہے۔ یہ کوئی بھی استعمال کرنے کے لیے مفت ہے اور کئی سرور ٹیکنالوجیز، جیسے JavaServer Pages، Servlets، WebSocket، اور Java Expression Language کے ساتھ مطابقت رکھتا ہے۔ Tomcat میں جاوا کوڈ پر چلتا ہے۔ خالص جاوا HTTP ویب سرور۔

Apache Tomcat میں کئی اجزاء ہیں۔ آئیے ہر ایک جزو اور اس کے استعمال کو جانتے ہیں۔

  • ٹامکیٹ کے لیے سرولیٹ کنٹینر ہے۔ کیتھرین ، جو JSP اور سرولیٹس کے لیے Sun Microsystem کی وضاحتیں استعمال کرتا ہے۔ صارف کا نام، پاس ورڈ، اور صارفین کے کردار Realm عنصر میں موجود ہیں۔
  • Tomcat کے لئے کنیکٹر جزو ہے کویوٹ ، جو HTTP 1.1 پروٹوکول کے ساتھ مطابقت رکھتا ہے۔
  • Tomcat میں JSP انجن ہے جسپر . یہ انجن JSP ٹیکسٹ فائل کو پارس کرتا ہے اور اسے جاوا کوڈ میں مرتب کرتا ہے۔
  • Tomcat کا ایک اور جزو ہے۔ جھرمٹ ، جو بڑی ویب ایپلیکیشنز کا انتظام کرتا ہے۔

Apache Tomcat ویب سرور کو ڈاؤن لوڈ کرنے کے اقدامات یہ ہیں۔

  • سب سے پہلے، آپ کو Apache Tomcat کو اس کے آفیشل سے ڈاؤن لوڈ کرنا ہوگا۔ ویب سائٹ

آپ کو Apache Tomcat کا تازہ ترین ورژن ڈاؤن لوڈ کرنا ہوگا۔

  • سافٹ ویئر ڈاؤن لوڈ کرنے کے بعد، ڈاؤن لوڈ کردہ کو مخصوص جگہ پر رکھیں۔ مثال کے طور پر، اگر آپ نے ونڈوز سسٹم پر Tomcat انسٹال کیا ہے، تو ڈاؤن لوڈ کی گئی فائل کو تلاش کریں۔ C:apache-tomcat-5.5.29 . لینکس یا یونکس سسٹمز کے لیے، فائل کو اندر رکھیں /usr/local/apache-tomcat-5.5.29 .
  • فائل کو تلاش کرنے کے بعد، بنائیں CATALINA_HOME ماحولیاتی متغیر. اس متغیر کو ٹامکیٹ فائل کے مقام پر سیٹ کریں، جیسا کہ اوپر بتایا گیا ہے، یعنی ونڈوز سسٹم کے لیے، متغیر کو سیٹ کریں C:apache-tomcat-5.5.29 ، اور لینکس سسٹم کے لیے متغیر کو سیٹ کریں۔ /usr/local/apache-tomcat-5.5.29 .

Apache Tomcat سیٹ اپ کامیابی کے ساتھ ہو گیا ہے۔ اگر آپ نے ونڈوز سسٹم پر Tomcat انسٹال کیا ہے تو Tomcat ایپلیکیشن شروع کرنے کے لیے دو میں سے کسی ایک کمانڈ پر عمل کریں۔

|_+_|

یا

|_+_|

اگر آپ کی Tomcat ایپلیکیشن لینکس سسٹم پر انسٹال ہے، تو آپ Tomcat ایپلیکیشن شروع کرنے کے لیے نیچے دی گئی کوئی بھی کمانڈ ٹائپ کر سکتے ہیں۔

|_+_|

یا

|_+_|

ایک بار جب آپ Tomcat ایپلیکیشن کو کامیابی کے ساتھ کھولیں تو ملاحظہ کریں۔ http://localhost:8080/ . آپ Tomcat میں موجود تمام ڈیفالٹ ایپلی کیشنز کو دیکھیں گے۔ آپ Tomcat کی آفیشل ویب سائٹ پر دستیاب دستاویزات کا استعمال کرتے ہوئے Tomcat ایپلیکیشن کو کنفیگریشن اور چلا سکتے ہیں۔

اب، ہم ونڈوز اور لینکس سسٹمز پر ٹامکیٹ ایپلیکیشن کو بند کرنے کے لیے کمانڈ دیکھیں گے۔ ونڈوز سسٹمز پر ٹامکیٹ ایپلیکیشن کو بند کرنے کے لیے دو کمانڈز ہیں۔ وہ درج ذیل ہیں:

|_+_|

یا

|_+_|

Linus سسٹمز کے لیے، آپ Tomcat ایپلیکیشن کو بند کرنے کے لیے دو میں سے کسی ایک حکم پر عمل کر سکتے ہیں۔

|_+_|

یا

|_+_|

CLASSPATH سیٹ اپ

ہم اس بات پر تبادلہ خیال کریں گے کہ ونڈوز اور لینکس سسٹمز کے لیے CLASSPATH کو کیسے ترتیب دیا جائے۔ اگر آپ نے ونڈوز سسٹم پر ٹام کیٹ انسٹال کیا ہے، تو CLASSPATH کو ترتیب دینے کے لیے درج ذیل کوڈ لائنوں پر عمل کریں۔

|_+_|

اگر آپ کے ونڈوز سسٹم میں NT، 2000، یا XP ورژن ہیں، تو آپ کو دائیں کلک کرنے کی ضرورت ہے۔ میرے کمپیوٹر ، منتخب کریں۔ پراپرٹیز ، پر کلک کریں اعلی درجے کی ، اور جائیں ماحولیاتی تغیرات . یہاں، آپ کو CLASSPATH ویلیو کو تبدیل کرنا ہوگا اور پر کلک کرنا ہوگا۔ ٹھیک ہے بٹن

اگر آپ نے لینکس سسٹم پر Tomcat انسٹال کیا ہے تو .cshrc فائل میں درج ذیل دو لائنیں شامل کریں۔ غور کریں کہ ہم C شیل استعمال کرتے ہیں۔

|_+_|

جے ایس پی کا فن تعمیر کیسا ہے؟

ہم نے جے ایس پی کے لیے ماحول ترتیب دیا ہے۔ ہم نے JSP صفحات چلانے کے لیے Apache Tomcat استعمال کیا ہے۔ JSP صفحات پر کارروائی کرنے کے لیے، ایک JSP انجن ہے جسے کنٹینر کہتے ہیں۔ Apache Tomcat میں، بلٹ میں JSP انجن ہے جسے کہا جاتا ہے۔ جسپر . لہذا، Jasper کا استعمال کرتے ہوئے، ڈویلپر JSP صفحات بنا سکتے ہیں۔ کنٹینر اور ویب سرور رن ٹائم ماحول یا JSP اور JSP کو درکار دیگر تمام خدمات فراہم کرنے کے لیے مل کر کام کرتے ہیں۔

جے ایس پی

مندرجہ بالا خاکہ JSP کنٹینر اور JSP فائلوں کی پوزیشن اور کسی بھی ویب ایپلیکیشن میں بیان کرتا ہے۔ اب، ہم JSP کا استعمال کرتے ہوئے ویب سرور کے ذریعے ایک متحرک ویب صفحہ بنانے کے عمل کی وضاحت کریں گے۔

  • سب سے پہلے، ونڈوز، لینکس، یا میکوس سسٹم کا کلائنٹ یا براؤزر انٹرنیٹ کے ذریعے ویب سرور کو HTTP درخواست بھیجتا ہے، جیسا کہ اوپر دیے گئے خاکے میں دکھایا گیا ہے۔
  • ویب سرور میں JSP انجن ہوتا ہے، جہاں تمام JSP فائلیں محفوظ ہوتی ہیں۔ کلائنٹ سے HTTP درخواست موصول ہونے پر، ویب سرور شناخت کرتا ہے کہ درخواست JSP صفحہ کے لیے ہے۔ اس کے بعد، یہ اس درخواست کو JSP انجن میں منتقل کرتا ہے۔ ویب سرور .jsp یا .html ایکسٹینشن والی فائل کا استعمال کرتے ہوئے یا URL کے ذریعے HTTP درخواست کو JSP صفحہ پر منتقل کرتا ہے۔
  • اب، جے ایس پی کو وہ HTTP درخواست موصول ہوتی ہے جو کلائنٹ کے ذریعہ ویب سرور کو بھیجی گئی تھی۔ ہم جانتے ہیں کہ HTTP درخواست JSP صفحہ کے لیے تھی۔ لہذا، انجن اس مخصوص صفحہ کو ڈسک سے لوڈ کرتا ہے اور اسے سرولیٹ مواد میں تبدیل کرتا ہے۔ دوسرے لفظوں میں، تمام ٹیمپلیٹ ٹیکسٹ کو println() سٹیٹمنٹس میں تبدیل کر دیا گیا ہے۔ دوسری طرف، یہ تبدیلی تمام JSP صفحات کو جاوا کوڈ میں بھی بدل دیتی ہے۔
  • درخواست کردہ JSP صفحہ سرولیٹ میں تبدیل ہو گیا ہے۔ لہذا، سرولیٹ کو JSP انجن کے ذریعے ایک قابل عمل کلاس میں مرتب کیا جاتا ہے۔ بعد میں، کلائنٹ سے HTTP درخواست JSP انجن کے ذریعہ سرولیٹ انجن کو بھیجی جاتی ہے۔
  • servlet اور JSP دونوں انجن ویب سرور کے حصے ہیں۔ سرولیٹ انجن JSP انجن کے ذریعے مرتب کردہ ایگزیکیوٹیبل کلاس کو چلاتا ہے اور HTML فارمیٹ آؤٹ پٹ تیار کرتا ہے۔ ویب سرور پر ایک اور جزو ہے، HTTP جواب۔ سرولیٹ انجن ایچ ٹی ایم ایل آؤٹ پٹ کو HTTP جواب میں بھیجتا ہے۔
  • آخر میں، ویب سرور جامد HTML مواد کی شکل میں انٹرنیٹ کے ذریعے براؤزر کو HTTP جواب بھیجتا ہے۔

لہذا، آپ بہت کم جاوا پروگرامنگ کی مہارتوں کے ساتھ JSP صفحہ کا استعمال کرتے ہوئے servlet لکھ سکتے ہیں۔ جے ایس پی کی مندرجہ بالا پروسیسنگ سے، ہم یہ نتیجہ اخذ کر سکتے ہیں کہ یہ ترجمے کے مرحلے کے علاوہ، سرولیٹ کی طرح کام کرتا ہے۔ یہ 3 درجے کے فن تعمیر کی پیروی کرتا ہے، جس میں ویب سرور JSP صفحہ کو سپورٹ کرتا ہے۔ اب، ہم JSP لائف سائیکل کی طرف بڑھیں گے۔ یہاں ہم بحث کریں گے کہ JSP فائل مختلف مراحل سے کیسے گزرتی ہے اور یہ ویب کنٹینر میں کیسے موجود ہے۔

جے ایس پی کا لائف سائیکل

کسی بھی جزو کا لائف سائیکل اس وقت شروع ہوتا ہے جب اسے بنایا جاتا ہے اور جب وہ تباہ ہو جاتا ہے تو ختم ہو جاتا ہے۔ جے ایس پی کا لائف سائیکل سرولیٹ کے لائف سائیکل سے ملتا جلتا ہے۔ JSP لائف سائیکل میں ایک اضافی مرحلہ JSP صفحہ کو ایک سرولیٹ میں تبدیل کرنے اور مرتب کرنے کے لیے استعمال کیا جاتا ہے۔ جے ایس پی لائف سائیکل کو جے ایس پی پیج بنانے، اسے سرولیٹ میں تبدیل کرنے، سرولیٹ کا لائف سائیکل، اور جے ایس پی پیج کو تباہ کرنے کے طور پر بیان کیا جا سکتا ہے۔ آئیے اب ذیل میں تفصیل سے جے ایس پی کے لائف سائیکل کو دیکھتے ہیں۔

JSP کے لائف سائیکل میں مندرجہ ذیل چار بنیادی راستے شامل ہیں:

  1. تالیف
  2. آغاز
  3. عملدرآمد
  4. صفائی

یہ چاروں JSP لائف سائیکل پاتھ سرولیٹ کے لائف سائیکل پاتھ سے ملتے جلتے ہیں۔ ذیل کا خاکہ مندرجہ بالا مراحل کی وضاحت کرتا ہے۔

جے ایس پی

آئیے اب جے ایس پی لائف سائیکل کے ہر مرحلے اور اس کی تفصیل پر تفصیل سے بات کرتے ہیں۔

    جے ایس پی تالیف

جب کلائنٹ یا براؤزر JSP صفحہ کے لیے HTTP درخواست بھیجتا ہے، تو ویب سرور میں موجود JSP انجن اس بات کی تصدیق کرتا ہے کہ درخواست کا صفحہ مرتب کرنا ہے یا نہیں۔ جے ایس پی انجن مطلوبہ صفحہ کو مرتب کرتا ہے اگر یہ پہلے مرتب نہیں کیا گیا تھا یا صفحہ میں ترمیم کرنے کے بعد اسے مرتب نہیں کیا گیا تھا۔ صفحہ کی تالیف میں مندرجہ ذیل تین مراحل شامل ہیں:

  • درخواست کردہ صفحہ JSP انجن کے ذریعے پارس کیا گیا ہے۔
  • یہ پھر JSP صفحہ کو ایک سرولیٹ میں بدل دیتا ہے۔
  • آخر میں، سرولیٹ مرتب ہو جاتا ہے۔

جب JSP صفحہ ایک سرولیٹ میں تبدیل ہوجاتا ہے، .jsp فائل کو a میں تبدیل کیا جاتا ہے۔ جاوا فائل تالیف کے وقت، The جاوا فائل کو پھر a میں تبدیل کیا جاتا ہے۔ کلاس فائل

    جے ایس پی کی شروعات

تالیف مکمل ہونے کے بعد، کلاس لوڈنگ کا عمل ہوتا ہے۔ جے ایس پی سورس سرولیٹ کلاس کو لوڈ کرتا ہے، اور اس سرولیٹ کلاس کو پھر کنٹینر میں لوڈ کیا جاتا ہے۔ سرولیٹ کلاس کی مثال کنٹینر میں بنائی گئی ہے۔ سرولیٹ کلاس کی مثال بننے کے بعد، jspInit () طریقہ استعمال کیا جاتا ہے. یہ طریقہ JSP کے لائف سائیکل میں صرف ایک بار استعمال کیا جاتا ہے۔ JSP مخصوص ابتداء کے لیے، آپ کو اوور رائڈ کرنا ہوگا۔ jspInit () طریقہ درج ذیل ہے:

|_+_|

جب jspInit () طریقہ فوری طور پر شروع کیا گیا ہے، آپ کو ڈیٹا بیس کنکشن بنانا ہوگا اور فائل میں تلاش کی میزیں تیار کرنی ہوں گی۔

    جے ایس پی پر عمل درآمد

کے بعد jspInit () طریقہ فوری ہے، _jspService() طریقہ استعمال کیا جاتا ہے. یہ طریقہ کلائنٹ کی طرف سے ویب سرور کو بھیجی گئی تمام درخواستوں کو پورا کرتا ہے جب تک کہ JSP تباہ نہ ہو جائے۔

دی _jspService() طریقہ کار میں دو مختلف پیرامیٹرز شامل ہیں، HttpServletRequest اور HttpServletResponse . اس طریقہ کی وضاحت اس طرح کی گئی ہے:

|_+_|

دی _jspService() طریقہ کلائنٹ کی تمام درخواستوں کا جواب دیتا ہے۔ جب بھی کلائنٹ درخواست جاری کرتا ہے، _jspService() طریقہ استعمال کیا جاتا ہے۔ یہ تمام سات HTTP درخواستوں کا بھی جواب دیتا ہے، جیسے حاصل کریں۔ , حذف کریں۔ , پوسٹ , ڈالو وغیرہ۔ آپ کو اوور رائڈ کر سکتے ہیں۔ _jspService() طریقہ

    JSP کلین اپ:

JSP لائف سائیکل کا آخری مرحلہ کلین اپ ہے، جہاں JSP تباہ ہو جاتا ہے۔ کنٹینر JSP کو ہٹاتا ہے اور اسے استعمال نہیں کرتا ہے۔ یہ طریقہ وہی ہے جیسا کہ سرولیٹ کو تباہ کرنے کا طریقہ ہے۔ جب آپ کو ڈیٹا بیس میں کسی بھی فائل کو بند کرنے یا ڈیٹا بیس کنکشن کو بند کرنے کی ضرورت ہوتی ہے، تو آپ کو اوور رائڈ کر سکتے ہیں۔ jspDestroy() طریقہ jspDestroy() طریقہ کا نحو درج ذیل ہے:

|_+_|

JSP میں نحو

اس سیگمنٹ میں، ہم جے ایس پی کے کئی عناصر کے نحو کو سیکھیں گے، جیسے کہ اعمال، ہدایات، مضمر اشیاء، تبصرے، اظہار وغیرہ۔ ٹیوٹوریل کا یہ حصہ JSP ڈومین میں نوواردوں کے لیے بہت اہم ہے۔ JSP نحو کے بارے میں ایک فوری گائیڈ درج ذیل ہے۔

    اسکرپٹ:

Scriptlet مضبوط JSP عناصر میں سے ایک ہے۔ ہم جاوا کے بیانات، طریقے، متغیرات، اور اظہار کو اسکرپٹ لیٹ میں محفوظ کر سکتے ہیں۔ مزید برآں، یہ کسی بھی اسکرپٹنگ زبان کے عناصر کو بھی ذخیرہ کر سکتا ہے۔ ذیل میں Scriptlet عنصر ہے۔ نحو:

نحو:

|_+_|

مندرجہ بالا اسکرپٹلیٹ نحو کو درج ذیل فارمیٹ میں XML کے برابر لکھا جا سکتا ہے۔

|_+_|

تمام HTML ٹیگز، JSP عناصر، اور کوئی دوسرا متن ہمیشہ Scriptlet ٹیگز کے باہر لکھا جاتا ہے۔ ہم HTML صفحہ کے اندر JSP کی سیدھی سیدھی مثال دیکھیں گے۔

مثال:

|_+_|

Tomcat سرور آپ کے ڈیسک ٹاپ پر انسٹال ہونا چاہیے، اور اس پروگرام کو چلانے کے لیے اس کا ماحول ترتیب دیا جانا چاہیے۔ Tomcat سرور ماحول کو ترتیب دینے کے لیے مندرجہ بالا ماحولیات کے سیٹ اپ کے مراحل پر عمل کریں۔ ہم اوپر کی فائل کو بطور محفوظ کریں گے۔ firstjsp.jsp میں C:apache-tomcat7.0.2webappsROOT فولڈر فائل کو محفوظ کرنے کے بعد، براؤزر پر جائیں اور URL ٹائپ کریں، http://localhost:8080/firstjsp.jsp۔ مندرجہ بالا کوڈ JSP کوئیک گائیڈ اور آپ کے سسٹم کا IP ایڈریس دکھائے گا۔

    اعلانات

جب آپ کو جاوا کوڈ میں استعمال کرنے کے لیے متغیرات یا طریقوں کی ضرورت ہوتی ہے، تو JSP ڈیکلریشنز ان کا اعلان کرتے ہیں۔ جاوا کوڈ میں کوئی متغیر یا طریقہ استعمال کرنے سے پہلے، آپ کو JSP ڈیکلریشن کا استعمال کرتے ہوئے اس کا اعلان کرنا چاہیے۔ جے ایس پی ڈیکلریشنز کا نحو ذیل میں دیا گیا ہے۔

نحو:

|_+_|

مندرجہ بالا نحو XML میں اس طرح لکھا گیا ہے:

|_+_|

اب ہم جے ایس پی کے اعلانات کی ایک مثال دیکھتے ہیں۔

مثال:

|_+_|
    اظہار

JSP میں ایک اظہار اسکرپٹنگ زبان کے تاثرات پر مشتمل ہے۔ ان اظہارات کا اندازہ لگایا جا سکتا ہے، سٹرنگ میں تبدیل کیا جا سکتا ہے، اور JSP فائل میں شامل کیا جا سکتا ہے، جہاں اظہار ظاہر ہوتا ہے۔ آپ JSP اظہارات کو متن کے ساتھ استعمال کر سکتے ہیں، کیونکہ اسے String میں تبدیل کیا جا سکتا ہے۔ HTML ٹیگز کے اندر JSP اظہار کو ٹیگ کرنا لازمی نہیں ہے۔ جے ایس پی ایکسپریشن لکھتے وقت یاد رکھنے کی ایک اہم بات یہ ہے کہ وہ اظہار کو ختم کرنے کے لیے سیمی کالون کا استعمال نہیں کرتے ہیں۔

نحو:

|_+_|

مندرجہ بالا نحو کو اس کے XML مساوی میں اس طرح لکھا جا سکتا ہے:

|_+_|

مندرجہ ذیل مثال آپ کو یہ تسلیم کرنے میں مدد کرے گی کہ HTML میں JSP اظہار کیسے استعمال کیا جائے۔

|_+_|

آپ کو موجودہ تاریخ اور وقت کے طور پر مندرجہ ذیل آؤٹ پٹ ملے گا:

|_+_|
    تبصرے

تبصرے وہ بیانات ہیں جو عمل درآمد کے لیے نہیں ہیں۔ وہ صرف پروگرامرز اور قارئین کے لیے ہیں۔ جے ایس پی میں، تبصروں کو کنٹینر کے ذریعے نظر انداز کیا جاتا ہے۔ اگر آپ JSP پروگرام کا کچھ حصہ چھپانا چاہتے ہیں، تو آپ JSP تبصروں کا استعمال کرتے ہوئے اس حصے پر تبصرہ کر سکتے ہیں۔ جے ایس پی کے تبصروں کا نحو درج ذیل ہے۔

نحو:

|_+_|

ہم ذیل کی مثال پر عمل کریں گے جس میں جے ایس پی تبصرہ شامل ہے۔

مثال:

|_+_|

اس کوڈ کا نتیجہ ذیل میں دیا گیا ہے۔

|_+_|

جے ایس پی میں تبصرے کی وضاحت کرنے کے اور بھی بہت سے طریقے ہیں۔ ذیل میں چھ مختلف تبصرے نحو اور ان کے استعمال ہیں:

مذکورہ بالا کو HTML تبصرہ کہا جاتا ہے اور براؤزر تبصرے کے اندر لکھے گئے حروف یا الفاظ کو نظر انداز کر دیتا ہے۔

    %>

ایک جامد لغوی معنی رکھتا ہے۔

    <\%

مندرجہ بالا تبصرہ ایک جامد لغوی کے طور پر بھی مراد ہے۔

یہ ایک خصوصیت میں استعمال ہونے والے ڈبل اقتباس کی وضاحت کرتا ہے۔

    '

یہ ایک خصوصیت میں استعمال ہونے والے ایک اقتباس کی وضاحت کرتا ہے۔

    ہدایات

جے ایس پی میں تین ہدایات ہیں، , ، اور . دی ہدایت کا استعمال صفحہ کی صفات کی وضاحت کے لیے کیا جاتا ہے، جیسے غلطی کا صفحہ، اسکرپٹ کی زبان، اور بفرنگ کی ضروریات۔ دوسری ہدایت، ، JSP لائف سائیکل کے ترجمے کے مرحلے کے دوران استعمال ہونے والی ایک مخصوص فائل شامل ہے۔ آخر میں، ہدایت کا استعمال ٹیب لائبریری کے اعلان اور JSP صفحہ میں مطلوبہ حسب ضرورت کارروائیوں کے لیے کیا جاتا ہے۔ جب JSP ہدایات استعمال کی جاتی ہیں، تو وہ سرولیٹ کلاس کی ساخت کو متاثر کرتی ہیں۔ جے ایس پی کی ہدایت کا نحو یہ ہے۔

|_+_|
    اعمال

اعمال وہ افعال ہیں جن کی وضاحت پہلے ہی کر دی گئی ہے۔ JSP ایکشنز کا استعمال سرولیٹ انجن کے رویے کو کنٹرول کرنے کے لیے کیا جاتا ہے۔ یہ اعمال XML کوڈ میں تعمیر کو شامل کرتے ہیں۔ JSP ایکشنز کا استعمال کرتے ہوئے، آپ کسی بھی فائل کو متحرک طور پر داخل کر سکتے ہیں، جاوا پلگ ان کے لیے HTML بنا سکتے ہیں، یا JavaBeans کے اجزاء کو دوبارہ استعمال کر سکتے ہیں۔ ذیل میں JSP اعمال کا نحو ہے۔

نحو:

|_+_|

ہم JSP کے کچھ اہم اقدامات اور ان کی تفصیل ذیل میں درج کر رہے ہیں:

    jsp: استعمال بین: یہ عمل جاوا بین کو فوری یا شناخت کرتا ہے۔jsp:getProperty: آپ آؤٹ پٹ میں JavaBean پراپرٹی کو شامل کرنے کے لیے jsp:getProperty ایکشن استعمال کر سکتے ہیں۔jsp:setProperty: یہ کارروائی JavaBean پراپرٹی کو ٹھیک کرتی ہے۔jsp: شامل کریں۔: جب صارف صفحہ کی درخواست کرتا ہے، تو یہ عمل فائل کو شامل کرتا ہے۔jsp:پلگ ان: یہ جاوا پلگ ان کے لیے ایک OBJECT یا EMBED ٹیگ اور براؤزر کے لیے مخصوص کوڈ بناتا ہے۔jsp:خصوصیت: یہ عمل XML عنصر کے اس وصف کی وضاحت کے لیے استعمال کیا جاتا ہے جو متحرک طور پر متعین ہے۔jsp: آگے: یہ عمل صارف کو نئے صفحہ پر لے جاتا ہے۔jsp: عنصر: جب آپ کو XML عناصر کو متحرک طور پر بیان کرنے کی ضرورت ہو تو اس عمل کو استعمال کریں۔jsp:متن: یہ عمل صارفین کو ٹیمپلیٹ کا متن JSP صفحہ میں شامل کرنے کے قابل بناتا ہے۔jsp:body: یہ XML عنصر کے جسم کی وضاحت کے لیے استعمال ہوتا ہے، جس کی وضاحت متحرک طور پر کی جاتی ہے۔
    مضمر آبجیکٹ

JSP، درخواست، جواب، سیشن، آؤٹ، pageContext، config، درخواست، صفحہ، اور استثناء میں نو مضمر اشیاء ہیں۔ آئیے یہاں ہر ایک مضمر شے کے بارے میں تفصیل سے جانیں۔

    درخواست: درخواست کا اعتراض HttpServletRequest ہے، جو کلائنٹ کی درخواست سے وابستہ ہے۔جواب: جوابی اعتراض HttpServletResponse ہے، جو کلائنٹ کو سرور کے جواب سے وابستہ ہے۔اجلاس: اس آبجیکٹ میں HttpSession شامل ہے اور کلائنٹ کی درخواست آبجیکٹ سے وابستہ ہے۔باہر: ایک اور مضمر اعتراض باہر ہے۔ یہ پرنٹ رائٹر آبجیکٹ کا استعمال کرتے ہوئے کلائنٹ کو آؤٹ پٹ بھیجنے کے لیے استعمال ہوتا ہے۔صفحہ سیاق و سباق: یہ مضمر آبجیکٹ سرور کی مخصوص خصوصیات کے اطلاق کی وضاحت کرتا ہے۔ سرور سے متعلق خصوصیت کی ایک مثال JspWriters ہے۔تشکیل: اس آبجیکٹ میں ServletConfig آبجیکٹ شامل ہے، جو JSP صفحہ کے ساتھ استعمال ہوتا ہے۔درخواست: JSP کا ServletContext آبجیکٹ ایپلیکیشن سیاق و سباق کے ساتھ استعمال ہوتا ہے۔صفحہ: صفحہ مضمر آبجیکٹ ان تمام طریقوں کو کال کرتا ہے، جن کی تعریف سرولیٹ کلاس سے ہوتی ہے۔رعایت: نامزد JSP Exception آبجیکٹ کا استعمال کرتے ہوئے استثنائی ڈیٹا تک رسائی حاصل کر سکتا ہے۔
    کنٹرول بہاؤ کے بیانات

JSP کنٹرول بہاؤ بیانات، فیصلہ سازی کے بیانات، اور لوپس کا بھی استعمال کرتا ہے۔ یہاں ہم دیکھیں گے کہ JSP پروگرامنگ میں فیصلہ سازی کا بیان اور لوپس کیسے استعمال ہوتے ہیں۔

فیصلہ سازی کے بیانات

فیصلہ سازی کے بیانات دستیاب انتخاب پر فیصلہ کرنے کے لیے استعمال کیے جاتے ہیں۔ فیصلہ سازی کے بیان پر عمل درآمد کے دو طریقے ہیں۔ ایک if_else سٹیٹمنٹ استعمال کر رہا ہے، اور دوسرا سوئچ کیس سٹیٹمنٹ استعمال کر رہا ہے۔ ہر if اور else حالت الگ الگ اسکرپٹ میں بند ہے۔ آئیے جے ایس پی میں if_else بیان کی ایک مثال دیکھیں۔

مثال:

|_+_|

یہاں، ہم نے 'month=3' کا اعلان کیا ہے اور if_else سٹیٹمنٹس میں شرائط کی وضاحت کی ہے۔ لہذا آؤٹ پٹ ہو گا:

|_+_|

اب، ہم سوئچ… کیس اسٹیٹمنٹس کو نافذ کریں گے۔ نیچے کا کوڈ اوپر والے کوڈ سے بالکل مختلف ہے، کیونکہ نیچے دیے گئے کوڈ کی شرائط ایک اسکرپٹ میں بیان کی گئی ہیں۔

مثال:

|_+_|

آؤٹ پٹ:

|_+_|

لوپ کے بیانات

ہم پروگرام میں لوپ کا استعمال کسی خاص ہدایات کو ایک مخصوص تعداد میں دہرانے کے لیے کرتے ہیں۔ جے ایس پی کے ذریعے تین مختلف قسم کے لوپس کی حمایت کی جاتی ہے، کے لیے، جبکہ، اور کرتے ہیں۔ آئیے ذیل میں ہر لوپ کی قسم کی مثالیں دیکھیں۔

لوپ کے لیے:

|_+_|

آؤٹ پٹ:

|_+_|

جبکہ لوپ:

|_+_|

آؤٹ پٹ:

|_+_|
    JSP میں آپریٹرز

جاوا کے تعاون سے تمام منطقی اور ریاضی والے آپریٹرز JSP میں استعمال ہوتے ہیں۔ آپریٹرز کو ان کی تشخیص کے لیے JSP اظہار میں استعمال کیا جاتا ہے۔ سب سے زیادہ فوقیت رکھنے والے آپریٹر کا پہلے جائزہ لیا جاتا ہے، اور سب سے کم ترجیح کے ساتھ آخر میں جانچا جاتا ہے۔ ہم نے تمام JSP آپریٹرز کو درج کیا ہے جن میں سب سے زیادہ ترجیح پہلے، دوسری سب سے زیادہ فوقیت اگلے، وغیرہ۔

    پوسٹ فکس: تین پوسٹ فکس آپریٹرز '()' ہیں۔ '[]'، اور '.'۔ ان تمام آپریٹرز نے بائیں سے دائیں ایسوسی ایٹیٹی کو اختیار کیا ہے۔یونیری: یونری آپریٹرز '++'، '–'، '!'، اور '~' ہیں جن کے پاس دائیں سے بائیں رفاقت ہے۔ضرب: تین ضرب والے آپریٹرز ہیں، '*'، '/'، اور '%'۔ وہ بائیں سے دائیں صحبت رکھتے ہیں۔اضافی: اضافی آپریٹرز '+' اور '-' ہیں۔ ان کے پاس بائیں سے دائیں صحبت بھی ہے۔شفٹ: شفٹ آپریٹرز، '>>'، '>>>'، اور '<<’ have left to right associativity. رشتہ دار: چار رشتہ دار آپریٹرز ہیں، '>'، '='، اور '<=’. All of them have left to right associativity. مساوات: مساوات کے آپریٹرز ہیں '==' اور '!=' بائیں سے دائیں ایسوسی ایٹیٹی کے ساتھ۔بٹ وائز اور: bitwise AND آپریٹر (&) نے بائیں سے دائیں ایسوسی ایٹیویٹی کو چھوڑ دیا ہے۔Bitwise XOR: bitwise XOR آپریٹر (^) نے بائیں سے دائیں ایسوسی ایٹیویٹی کو چھوڑ دیا ہے۔Bitwise OR: bitwise OR آپریٹر (|) نے بائیں سے دائیں ایسوسی ایٹیویٹی ہے۔منطقی اور: منطقی اور آپریٹر (&&) نے بائیں سے دائیں ایسوسی ایٹیویٹی کو چھوڑ دیا ہے۔منطقی OR: logical OR آپریٹر (||) نے بائیں سے دائیں ایسوسی ایٹیٹیٹی ہے۔مشروط: مشروط آپریٹر (؟:) کے پاس بائیں سے منسلک ہونے کا حق ہے۔تفویض: کئی اسائنمنٹ آپریٹرز ہیں، جیسے =، +=، -+، *=، %=، /=، >>=،<<=, &=, ^=, and |=. All these operators have the right to left associativity. پیراگراف: کوما آپریٹر (‘) نے بائیں سے دائیں ایسوسی ایٹیٹیٹی کو چھوڑ دیا ہے۔

JSP پانچ مختلف لٹریلز یا ڈیٹا کی اقسام، بولین، انٹیجر، فلوٹنگ پوائنٹ، سٹرنگ، اور NULL کو سپورٹ کرتا ہے۔ بولین لٹریل نتیجہ کے طور پر یا تو صحیح یا غلط لوٹتا ہے۔ عدد کی وضاحت کے لیے ایک عدد کا استعمال کیا جاتا ہے، اور فلوٹنگ پوائنٹ JSP پروگرام میں اعشاریہ نمبروں کے اعلان کے لیے استعمال ہوتا ہے۔ JSP میں اسٹرنگ ڈیٹا کی قسم جاوا زبان سے مختلف ہے۔ NULL ڈیٹا کی قسم null قدر کی وضاحت کرتی ہے۔

جے ایس پی ایکشنز

ہم نے دیکھا ہے کہ جے ایس پی کے اقدامات کیا ہیں۔ ہم نے مندرجہ بالا مختصر میں JSP کی تمام کارروائیاں بھی دیکھی ہیں۔ ایکشنز کچھ نہیں بلکہ افعال ہیں جو JSP انجن کے رویے کو منظم کرتے ہیں۔ آئیے جے ایس پی ایکشن کے نحو کو یاد کرتے ہیں۔

نحو:

|_+_|

JSP کی کارروائیاں jsp:include، jsp:useBean، jsp:setProperty، jsp:getProperty، jsp:forward، jsp:element، jsp:plugin، jsp:attribute، jsp:body، اور jsp:text ہیں۔ ان تمام JSP اعمال میں دو مشترکہ اجزاء ہیں، ID اور Scope۔

ID جز کسی بھی JSP کارروائی کی منفرد شناخت کے لیے استعمال کیا جاتا ہے۔ JSP ایکشن کا یہ جزو JSP پروگرام میں استعمال کیا جاتا ہے، انجام دینے والی کارروائی کی وضاحت کرتا ہے۔ ایک اور عنصر Scope ہے، جو JSP ایکشن کے لائف سائیکل کی شناخت کے لیے استعمال ہوتا ہے۔ کارروائی کی ID کا استعمال کرتے ہوئے، اس کی عمر کا تعین کیا جاتا ہے۔ لہذا، ID عنصر اور دائرہ کار عنصر براہ راست متناسب ہیں۔ دائرہ کار جزو ممکنہ قدریں لے سکتا ہے: صفحہ، سیشن، درخواست، یا ایپلی کیشنز۔

عمل

JSP میں UseBean ایکشن سب سے پہلے ID اور Scope کے اوصاف کے حامل آبجیکٹ کو تلاش کرتا ہے۔ اگر آبجیکٹ نہیں ملتا ہے، تو یہ عمل اس مخصوص ID اور دائرہ کار کی خصوصیات کے لیے آبجیکٹ بناتا ہے۔ UseBean کلاس کو لوڈ کرنے کا طریقہ درج ذیل ہے۔

|_+_|

بین کلاس لوڈ کرنے کے بعد، آپ دیگر دو JSP ایکشنز استعمال کر سکتے ہیں، jsp:setProperty اور jsp:getProperty . یہ اعمال بین کی خصوصیات میں ترمیم اور بازیافت کے لیے استعمال ہوتے ہیں۔ UseBean ایکشن تین مختلف استعمال کرتا ہے۔ صفات , کلاس , قسم ، اور بین نام۔ دی کلاس انتساب بین کے پیکیج کا نام تفویض کرتا ہے۔ آپ استعمال کر سکتے ہیں۔ قسم جس چیز کا ہم حوالہ دیتے ہیں اس کے لیے متغیر کی قسم کی وضاحت کے لیے عنصر۔ آخر میں، بین نام بین کا نام فراہم کرتا ہے۔ instantiate() طریقہ بین کا نام بتاتا ہے۔

عمل

ایکشن بین کی پراپرٹی کو سیٹ کرنے کے لیے استعمال کیا جاتا ہے۔ بین کی خاصیت کو ترتیب دینے کی واحد ضرورت یہ ہے کہ پھلی کی پہلے تعریف کی جانی چاہیے۔ مندرجہ ذیل کارروائی کو استعمال کرنے کے دو طریقے ہیں:

پہلا طریقہ باہر کا استعمال کر رہا ہے اور جزو کے بعد۔

|_+_|

مندرجہ بالا نحو میں، یہاں تک کہ اگر نیا عنصر فوری نہیں کیا جاتا ہے یا کوئی موجودہ نہیں پایا جاتا ہے، تو کارروائی عمل میں آتی ہے۔

کارروائی کی وضاحت کرنے کا ایک اور طریقہ jsp:useBean جزو کے اندر ہے۔

|_+_|

کو استعمال کرنے کے پہلے طریقے کے برعکس، دوسرا طریقہ صرف اس صورت میں عمل میں آتا ہے جب کوئی موجودہ پایا جاتا ہے یا نئے کو فوری بنایا جاتا ہے۔

jsp:setProperty میں چار مختلف صفات شامل ہیں، نام , جائیداد , قدر ، اور روکو . دی نام attribute اس بین کو نام تفویض کرتا ہے جس کی پراپرٹی سیٹ کی جانی ہے۔ ایک اور صفت، جائیداد ، جائیداد کی وضاحت کرتا ہے۔ دی قدر پراپرٹی کو تفویض کردہ قیمت ہے، اور روکو attribute پراپرٹی کو موصول ہونے والے پیرامیٹر کے نام کی وضاحت کرتا ہے۔

عمل

ہم نے دیکھا ہے کہ jsp:setProperty ایکشن پراپرٹی کی قدر کا تعین کرتا ہے۔ یہاں، کارروائی جائیداد کی قیمت حاصل کرتی ہے۔ ویلیو حاصل کرنے کے بعد، یہ اسے String میں تبدیل کرتا ہے اور اسے نتیجہ میں شامل کرتا ہے۔

عمل کی صرف دو صفات ہیں، نام اور جائیداد۔ دی نام وصف ایک خاص خاصیت رکھنے والے بین کے نام کی وضاحت کرتا ہے، اور جائیداد انتساب بین کی جائیداد کے نام کی وضاحت کرتا ہے۔ ذیل میں عمل کا نحو ہے:

|_+_|

آئیے ایک مثال دیکھیں جس میں شامل ہے۔ مثال پھلیاں ذیل کی فائل کو بطور محفوظ کریں۔ ExampleBean.java .

|_+_|

میں اس کوڈ کو لکھنے کے بعد ExampleBean.java فائل، اسے بنانے کے لیے مرتب کریں۔ ExampleBean.class فائل اب، کاپی کریں ExampleBean.class کو فائل کریں C:apache-tomcat-7.0.2webappsWEB-INFclassesaction فولڈر یقینی بنائیں کہ آپ نے بھی سیٹ کیا ہے۔ کلاسپتھ متغیر

اب آپ کو main.jsp فائل بنانا ہوگی اور اس میں نیچے کا کوڈ لکھنا ہوگا۔

|_+_|

آؤٹ پٹ:

|_+_|

عمل

جب آپ JSP پروگرام میں جاوا عناصر داخل کرنا چاہتے ہیں، تو ایکشن استعمال ہوتا ہے۔ یہ کارروائی براؤزر کی قسم کی بھی شناخت کرتی ہے اور اضافہ کرتی ہے۔ یا JSP پروگرام میں ٹیگ کرتا ہے۔ فرض کریں کہ آپ کو جاوا جزو کی ضرورت ہے، جس کا پلگ ان دستیاب نہیں ہے۔ ایکشن جاوا جزو کو چلانے کے لیے درکار پلگ ان کو ڈاؤن لوڈ کرتا ہے، جیسے Applet یا Bean۔ پلگ ان ایکشن میں متعدد صفات ہیں، جو 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} جیسا کہ اس نشان کی اجازت نہیں ہے یا غیر قانونی ہے۔ اس کے بجائے، آپ استعمال کر سکتے ہیں ${جو بھی جی ٹی 0} .

جے ایس پی کی ہدایات

نحو سیکشن میں، ہم نے دیکھا ہے کہ JSP میں ڈائریکٹریز کیا ہیں۔ یہاں، ہم JSP ڈائریکٹریز کو تفصیل سے سیکھیں گے۔ JSP میں ہدایات ضروری ہیں، کیونکہ وہ JSP کنٹینر کو مخصوص JSP پروسیسنگ عناصر کو سنبھالنے اور ریگولیٹ کرنے کے لیے حکم اور ہدایت دیتے ہیں۔ جے ایس پی کی ہدایات کی وجہ سے سرولیٹ کلاس کا پورا ڈھانچہ متاثر ہوتا ہے۔

نحو:

|_+_|

ہدایات میں صفات کلیدی قدر کی شکل میں ہیں۔ ہدایات میں کئی صفات ہو سکتی ہیں، اور ہر ایک کوما سے الگ کیا جاتا ہے۔ مندرجہ بالا نحو میں، ہم درمیان ایک جگہ کا مشاہدہ کر سکتے ہیں۔ '<%@’ اور ہدایت نام، اور قدر اور '%>۔' یہ جگہیں اختیاری ہیں۔ اگر آپ ان کے درمیان خالی جگہیں شامل نہیں کرتے ہیں تو کوئی فکر نہیں ہے۔ ہم اوپر دیکھ چکے ہیں کہ تین ڈائرکٹیو ٹیگ ہیں، , ، اور . آئیے ہم ان میں سے ہر ایک ہدایتی ٹیگ پر تفصیل سے بات کرتے ہیں۔

صفحہ ہدایت

صفحہ ہدایت کنٹینر کے موجودہ صفحہ کو ہدایات فراہم کرتا ہے۔ آپ اپنے JSP پروگرام میں صفحہ کی ہدایت کو کہیں بھی شامل کر سکتے ہیں۔ عام طور پر، صفحہ کی ہدایت JSP صفحہ کے اوپری حصے میں استعمال ہوتی ہے۔ صفحہ ہدایت کا نحو یہ ہے:

|_+_|

مندرجہ بالا نحو XML میں لکھا گیا ہے جیسا کہ ذیل میں دیا گیا ہے:

|_+_|

صفحہ کی ہدایت کے ساتھ 13 صفات وابستہ ہیں، جیسا کہ ذیل میں وضاحت کی گئی ہے۔

    آٹو فلش: یہ وصف سرولیٹ آؤٹ پٹ بفر کے رویے کو منظم کرتا ہے۔غلطی کا صفحہ: ایرر پیج دوسرے جے ایس پی کا یو آر ایل دکھاتا ہے، جو جاوا کو غیر چیک شدہ رن ٹائم مستثنیات کو پھینک دیتا ہے۔توسیع کرتا ہے: تیار کردہ سرولیٹ کو مخصوص سپر کلاس کو بڑھانا چاہیے۔بفر: بفر وصف آؤٹ پٹ اسٹریم کے بفرنگ ماڈل کی وضاحت کرتا ہے۔مواد کی قسم: یہ وصف کریکٹر انکوڈنگ کے لیے اسکیم کی وضاحت کرتا ہے۔isErrorPage: یہ تجویز کرتا ہے کہ آیا موجودہ JSP صفحہ دوسرے JSP صفحہ کے errorPage وصف کے ذریعے بیان کردہ URL ہے۔معلومات: یہ ایک سٹرنگ بتاتا ہے، جسے getServletInfo() طریقہ سے حاصل کیا جا سکتا ہے۔زبان: یہ وصف JSP صفحات میں استعمال ہونے والی پروگرامنگ زبان کی نشاندہی کرتا ہے۔نظر انداز کیا گیا ہے۔: یہ بتاتا ہے کہ آیا JSP صفحہ میں EL اظہار کو نظر انداز کر دیا جائے گا۔درآمد: یہ بیان JSP میں شامل کرنے کے لیے درکار تمام پیکیجز اور کلاسز کی نشاندہی کرتا ہے۔ جاوا میں، جاوا امپورٹ سٹیٹمنٹ جاوا پروگرام میں شامل کرنے کے لیے درکار تمام کلاسز اور پیکجز کی وضاحت کرتا ہے۔isThreadSafe: یہ وصف سرولیٹ کے تھریڈنگ ماڈل کی وضاحت کرتا ہے۔اجلاس: سیشن کا وصف اس بات کی تصدیق کرتا ہے کہ آیا JSP صفحہ HTTP سیشن میں حصہ لیتا ہے یا نہیں۔isScripting Enabled ہے۔: یہ عنصر وضاحت کرتا ہے کہ آیا JSP صفحہ میں اسکرپٹنگ عناصر کو استعمال کرنا ہے۔

شامل کرنے کی ہدایت

ترجمہ کے مرحلے کے دوران، شامل ہدایت کا استعمال فائل کو JSP صفحہ میں شامل کرنے کے لیے کیا جاتا ہے۔ یہ ہدایت کنٹینر کو تمام بیرونی فائلوں کو JSP صفحہ کے ساتھ یکجا کرنے کی ہدایت کرنے کے لیے بھی ہے۔ جیسا کہ صفحہ کی ہدایت صرف JSP صفحہ کے اوپری حصے میں شامل کی گئی ہے، اس لیے شامل ہدایت کو صفحہ پر کہیں بھی استعمال کیا جا سکتا ہے۔

نحو:

|_+_|

مندرجہ بالا نحو XML میں اس طرح لکھا گیا ہے:

|_+_|

یہاں، فائل کا نام متعلقہ یو آر ایل ہے۔ اگر آپ فائل کے راستے کی وضاحت نہیں کرتے ہیں، تو مرتب کرنے والا فرض کرتا ہے کہ آپ کی فائل JSP کے مقام پر موجود ہے۔

ٹیگلیب ڈائرکٹری

آخری ڈائرکٹری کی قسم ہے۔ taglib . یہ ڈائرکٹری JSP صفحہ کے بارے میں بہت سی معلومات فراہم کرتی ہے، جیسے استعمال شدہ حسب ضرورت ٹیگز کا سیٹ، لائبریری کا مقام، اور JSP صفحہ سے اپنی مرضی کے ٹیگز تلاش کرنا۔ ذیل میں ٹیگلیب ڈائرکٹری کا نحو ہے۔

|_+_|

مندرجہ بالا نحو کو XML میں اس طرح لکھا جا سکتا ہے:

|_+_|

وصف، سے نفرت ، اس مقام کی وضاحت کرتا ہے جسے کنٹینر سمجھ سکتا ہے، اور سابقہ وصف کنٹینر کو اپنی مرضی کے مطابق اعمال کی تشکیل کے بارے میں بتاتا ہے۔

JSP مضمر آبجیکٹ

JSP مضمر آبجیکٹ جاوا آبجیکٹ ہیں۔ JSP کنٹینر ڈویلپرز کو ہر JSP صفحہ میں واضح طور پر اعلان کیے بغیر ان مضمر اشیاء کو استعمال کرنے کی اجازت دیتا ہے۔ ان اشیاء کو بھی کہا جاتا ہے۔ پہلے سے طے شدہ متغیرات . نو مختلف مضمر اشیاء ہیں: درخواست، جواب، آؤٹ، سیشن، ایپلیکیشن، صفحہ، صفحہ کا حوالہ، تشکیل، اور استثناء۔

درخواست اعتراض

دی javax.servlet.http.HttpServletRequest آبجیکٹ ایک مثال بناتا ہے جسے کہا جاتا ہے۔ درخواست چیز. جب کوئی کلائنٹ یا صارف کسی خاص صفحہ کی درخواست کرتا ہے، تو JSP انجن کلائنٹ کی درخواست کی نمائندگی کرنے والی ایک نئی چیز تیار کرتا ہے۔ دی درخواست آبجیکٹ HTTP ہیڈر کی معلومات کو نکالنے کے لیے کئی طریقے پیش کرتا ہے، جیسے HTTP طریقے، کوکیز وغیرہ۔

جوابی اعتراض

دی javax.servlet.http.HttpServletResponse آبجیکٹ ایک مثال بناتا ہے جسے کہا جاتا ہے۔ جواب چیز. جیسا کہ JSP انجن نئی آبجیکٹ تخلیق کرتا ہے جب بھی صارف کسی خاص صفحہ کی درخواست کرتا ہے، یہ اس کے ردعمل کی نمائندگی کرنے والی ایک آبجیکٹ بھی بناتا ہے۔ رسپانس آبجیکٹ کا استعمال کرتے ہوئے، آپ JSP پروگرام میں نئی ​​کوکیز شامل کر سکتے ہیں، جیسے HTTP سٹیٹس کوڈز، ڈاک ٹکٹ وغیرہ۔

آؤٹ آبجیکٹ

دی javax.servlet.jsp.JspWriter آبجیکٹ ایک مثال بناتا ہے جسے کہا جاتا ہے۔ باہر چیز. JSP انجن کلائنٹ کے ذریعہ درخواست کردہ جواب میں مواد شامل کرسکتا ہے۔ دی جے ایس پی رائٹر آبجیکٹ میں تقریباً وہی طریقے موجود ہیں۔ java.io.PrintWriter کلاس میں کچھ اضافی طریقے ہیں۔ جے ایس پی رائٹر آبجیکٹ بفرنگ اور تھرو IOException کے لیے استعمال ہوتا ہے۔

ایپلی کیشن آبجیکٹ

دی javax.servlet.ServletContext ایک مثال بناتا ہے جسے ایک کہتے ہیں۔ درخواست آبجیکٹ، جو کہ کے لیے ریپر کے طور پر کام کرتا ہے۔ ServletContext چیز. یہ اعتراض JSP صفحہ کی نمائندگی کرتا ہے۔ جب JSP صفحہ شروع ہوتا ہے، تو ایک ایپلیکیشن آبجیکٹ بن جاتا ہے۔ یہ اعتراض ہٹا دیا جاتا ہے، کیونکہ JSP صفحہ jspDestroy() طریقہ استعمال کرتے ہوئے تباہ ہو جاتا ہے۔

سیشن آبجیکٹ

دی javax.servlet.http.HttpSession نامی ایک مثال بناتا ہے۔ اجلاس چیز. یہ آبجیکٹ اسی طرح کام کرتا ہے جیسا کہ یہ جاوا سرولیٹس میں کام کرتا ہے۔ سیشن آبجیکٹ کا بنیادی مقصد کلائنٹ کی درخواستوں کے درمیان سیشن کو ٹریک کرنا ہے۔

استثنیٰ آبجیکٹ

پچھلے JSP صفحہ سے استثنیٰ پر مشتمل ریپر کو ایک استثنائی آبجیکٹ کہا جاتا ہے۔ جب ایک خرابی کی حالت ہوتی ہے، تو اس سے نمٹنے کے لیے ایک استثنائی چیز استعمال کی جاتی ہے۔

صفحہ آبجیکٹ

صفحہ آبجیکٹ صفحہ کی مثال کا حوالہ فراہم کرتا ہے۔ یہ پورے JSP صفحہ کی نمائندگی کرتا ہے۔ ' یہ' آبجیکٹ اور پیج آبجیکٹ ایک دوسرے کے مترادف ہیں۔

PageContext آبجیکٹ

دی javax.servlet.jsp.PageContext نامی ایک مثال بناتا ہے۔ صفحہ سیاق و سباق چیز. کی طرح صفحہ اعتراض، صفحہ سیاق و سباق آبجیکٹ مکمل JSP صفحہ کی بھی نمائندگی کرتا ہے۔ pageContext آبجیکٹ کے اوصاف کا استعمال کرتے ہوئے، ہم دیگر مضمر اشیاء کو اخذ کر سکتے ہیں، جیسے درخواست , تشکیل , اجلاس ، اور باہر . یہ آبجیکٹ معلومات کو بھی اسٹور کرتا ہے، جیسے صفحہ کا دائرہ، ایرر پیج یو آر ایل، اور بفرنگ معلومات۔ pageContext آبجیکٹ کے ذریعہ 40 طریقے تعاون یافتہ ہیں۔

تشکیل آبجیکٹ

دی javax.servlet.ServletConfig نامی ایک مثال بناتا ہے۔ تشکیل چیز. یہ آبجیکٹ کے لیے ریپر کے طور پر کام کرتا ہے۔ ServletConfig چیز. صارف اس آبجیکٹ کو سرولیٹ یا JSP انجن کے ابتدائی پیرامیٹرز تک رسائی کے لیے استعمال کر سکتے ہیں۔ ذیل کا طریقہ وہی ہے جو جے ایس پی پیج میں کنفگ آبجیکٹ کا استعمال کرتے ہوئے استعمال کیا جاتا ہے۔

|_+_|

JSP کلائنٹ کی درخواست

جب براؤزر یا کلائنٹ کسی خاص ویب پیج کی درخواست کرتا ہے تو ویب سرور کو بہت ساری معلومات ملتی ہیں۔ یہ معلومات براہ راست استعمال نہیں کی جا سکتی ہیں، کیونکہ یہ HTTP درخواست کے ہیڈر سے گزرتی ہے۔ HTTP ہیڈر میں کئی عناصر ہوتے ہیں جو معلومات کو ذخیرہ کرتے ہیں جب براؤزر ویب صفحہ کی درخواست کرتا ہے۔ یہ عناصر ہیں قبول کریں، قبول کریں-چارسیٹ، قبول کریں-انکوڈنگ، قبول کریں-زبان، کنکشن، اجازت، کوکی، مواد کی لمبائی، اگر-تبدیل شدہ-اس سے، میزبان، حوالہ دینے والا، اگر-غیر ترمیم شدہ-سے، اور صارف-ایجنٹ۔

HTTPServletRequest آبجیکٹ

javax.servlet.http.HttpServletRequest آبجیکٹ ایک مثال بناتا ہے جسے درخواست آبجیکٹ کہتے ہیں۔ جب بھی کوئی صارف کسی خاص صفحہ کی درخواست کرتا ہے، JSP انجن نیا آبجیکٹ تیار کرتا ہے۔ درخواست آبجیکٹ کا بنیادی مقصد HTTP معلومات کو بازیافت کرنا ہے، جیسے ڈیٹا، HTTP طریقے، کوکیز وغیرہ۔ ذیل میں کچھ طریقے ہیں جو JSP پروگرام سے HTTP ہیڈر کی معلومات کو پڑھتے ہیں۔

    گنتی getAttributeNames(): اس طریقہ کار کے نتیجے میں شمار ہوتا ہے، جس میں اس درخواست کے لیے دستیاب انتساب کے نام ہوتے ہیں۔کوکی[] getCookies(): جب کلائنٹ درخواست بھیجتا ہے تو اس میں کوکی آبجیکٹ ہوتے ہیں۔ لہذا، یہ طریقہ ایک صف تیار کرتا ہے، جو ان تمام کوکی اشیاء کو رکھتا ہے.گنتی getParameterNames(): اس طریقہ کار کے نتیجے میں String اشیاء کی گنتی ہوتی ہے۔ یہ گنتی درخواست میں موجود پیرامیٹر کے نام رکھتی ہے۔گنتی getHeaderNames(): یہ اس درخواست میں موجود ہیڈر کے ناموں پر مشتمل ایک گنتی تیار کرتا ہے۔HttpSession getSession (بولین تخلیق): HttpSession getSession(boolean create) طریقہ کا نتیجہ موجودہ HttpSession میں اس درخواست سے متعلق ہے۔ اگر اس وقت کوئی سیشن موجود نہیں ہے اور تخلیق کے لیے بولین درست ہے، تو اس طریقہ کے نتیجے میں ایک نیا سیشن ہوتا ہے۔HttpSession getSession(): یہ طریقہ درخواست سے متعلق موجودہ سیشن کو لوٹاتا ہے۔ اگر سیشن دستیاب نہیں ہے تو، یہ طریقہ ایک نیا بناتا ہے اور اسے واپس کرتا ہے۔آبجیکٹ getAttribute (سٹرنگ کا نام): یہ اس وصف کی قدر پیدا کرتا ہے جس کا نام بطور آبجیکٹ ہے۔ اگر انتساب کا کوئی نام نہیں ہے، تو یہ NULL لوٹاتا ہے۔مقامی getLocale (): یہ لوکل واپس دیتا ہے، جہاں کلائنٹ مواد کو قبول کرے گا۔اسٹرنگ getAuthType(): یہ طریقہ سرولیٹ کو محفوظ کرنے کے لیے استعمال ہونے والی تصدیقی اسکیم کا نام بتاتا ہے۔ اگر JSP محفوظ نہیں ہے، تو یہ NULL لوٹاتا ہے۔ServletInputStream getInputStream(): ServletInputStream درخواست کی باڈی کو بائنری شکل میں لاتا ہے۔سٹرنگ getContent Type(): یہ طریقہ درخواست کی باڈی کی MIME قسم واپس کرتا ہے۔ اگر قسم معلوم نہیں ہے، تو یہ NULL لوٹاتا ہے۔سٹرنگ getCharacterEncoding(): درخواست کے باڈی میں موجود کریکٹر انکوڈنگ کا نام اس طریقہ سے تیار کیا گیا ہے۔String getHeader (سٹرنگ کا نام): یہ سٹرنگ فارمیٹ میں درخواست ہیڈر کی قدر واپس کرتا ہے۔اسٹرنگ getContextPath(): یہ درخواست کا URI کا حصہ تیار کرتا ہے۔String getParameter (سٹرنگ کا نام): اس طریقہ کار کے نتیجے میں اسٹرنگ فارم میں درخواست کے پیرامیٹر کی قدر ہوتی ہے۔ اگر درخواست کا پیرامیٹر موجود نہیں ہے، تو یہ NULL لوٹاتا ہے۔اسٹرنگ getMethod(): String getMethod() طریقہ HTTP درخواست کا نام تیار کرتا ہے، جو موجودہ درخواست کے ساتھ استعمال کیا گیا تھا۔اسٹرنگ گیٹ پروٹوکول(): JSP میں درخواستیں مخصوص پروٹوکول استعمال کرتی ہیں۔ یہ طریقہ پروٹوکول کا نام اور ورژن لوٹاتا ہے۔اسٹرنگ getPathInfo(): جب کلائنٹ درخواست کرتا ہے، تو یہ URL بھیجتا ہے۔ String getPathInfo() طریقہ URL سے متعلق راستے کے بارے میں اضافی معلومات واپس کرتا ہے۔اسٹرنگ getRemoteAddr(): اس طریقہ کار کے نتیجے میں کلائنٹ کے سسٹم کا انٹرنیٹ پروٹوکول (IP) پتہ ہوتا ہے۔اسٹرنگ getRemoteUser(): یہ درخواست کرنے والے تصدیق شدہ کلائنٹ کا لاگ ان تیار کرتا ہے۔ اگر صارف کی توثیق نہیں کی گئی ہے، تو یہ NULL لوٹاتا ہے۔اسٹرنگ getRemoteHost(): اگر درخواست کرنے والے کلائنٹ کا نام بازیافت کرنا ہے، تو String getRemoteHost() طریقہ استعمال کیا جا سکتا ہے۔اسٹرنگ getRequestedSessionId(): یہ طریقہ سیشن ID واپس دیتا ہے، جس کی تعریف کلائنٹ نے کی ہے۔اسٹرنگ getRequestURI(): یہ پروٹوکول کے نام سے درخواست کا URL واپس کرتا ہے۔String[] getParameterValues(سٹرنگ کا نام): یہ طریقہ String آبجیکٹ پر مشتمل ایک صف واپس دیتا ہے۔ یہ اشیاء درخواست میں موجود تمام پیرامیٹرز کی قدریں رکھتی ہیں۔اسٹرنگ getServletPath(): یہ درخواست کا URL بھی لوٹاتا ہے۔int getContentLength(): یہ درخواست کے جسم کی لمبائی کو بائٹس میں لوٹاتا ہے۔بولین isSecure(): یہ بولین ویلیو واپس دیتا ہے جس کی وضاحت کرتی ہے کہ آیا درخواست محفوظ چینل کے ذریعے کی گئی ہے یا نہیں۔int getServletPort(): یہ طریقہ درخواست کا پورٹ نمبر دیتا ہے۔int getIntHeader (سٹرنگ کا نام): اس طریقہ کار کے نتیجے میں انٹیجر فارمیٹ میں درخواست کے ہیڈر کی قدر ہوتی ہے۔

HTTP ہیڈر کی درخواست کی مثال

یہاں، ہم HTTP ہیڈر کی درخواست کی ایک سیدھی سی مثال دیکھیں گے۔ HTTP ہیڈر کی درخواست کی مثال میں، ہم لاگو کریں گے getHeaderName() HTTP ہیڈر کی معلومات کو پڑھنے کا طریقہ۔ یہ درخواست کی HTTP ہیڈر کی معلومات پر مشتمل ایک گنتی تیار کرتا ہے۔ hasmoreElement() طریقہ اس بات کا تعین کرتا ہے کہ nextElement() طریقہ کب بند ہونا چاہیے۔

مثال:

|_+_|

مندرجہ بالا کوڈ کو میں لکھیں۔ main.jsp فائل کریں اور HTTP درخواست ہیڈر کی معلومات کو پڑھنے کے لیے اس تک رسائی حاصل کریں۔ یہ آپ کو HTTP درخواست کے ہیڈر کے بارے میں تمام معلومات فراہم کرے گا، جیسے میزبان، کنکشن، کیش-کنٹرول، صارف-ایجنٹ، قبول، قبول-زبان، اور قبول-انکوڈنگ۔

جے ایس پی سرور رسپانس

جب کلائنٹ یا براؤزر ویب صفحہ کی درخواست کرتا ہے، تو ویب سرور HTTP درخواست کا جواب دیتا ہے جسے جواب کہا جاتا ہے۔ اس جواب میں ایک خالی لائن، دستاویز، اسٹیٹس لائن، اور کچھ جوابی ہیڈر شامل ہیں۔ HTTP کا جواب اس طرح لگتا ہے:

|_+_|

مندرجہ بالا کوڈ میں، HTTP ورژن ہے HTTP/1.1 , 200 اسٹیٹس کوڈ ہے، اور ٹھیک ہے اسٹیٹس کوڈ کا پیغام ہے۔ ویب سرور کے ذریعے براؤزر کو بھیجے گئے HTTP/1.1 ورژن کے ساتھ متعدد رسپانس ہیڈرز ہیں۔ یہ رسپانس ہیڈرز کیش کنٹرول، اجازت، مواد کی ترتیب، کنکشن، مواد کی لمبائی، مواد کی انکوڈنگ، مواد کی زبان، میعاد ختم ہونے، مواد کی قسم، مقام، آخری ترمیم شدہ، سیٹ کوکی، ریفریش، اور دوبارہ کوشش کے بعد ہیں۔ .

HttpServletResponse آبجیکٹ

javax.servlet.http.HttpServletResponse ایک مثال بناتا ہے جسے رسپانس آبجیکٹ کہتے ہیں۔ یہ اعتراض ویب سرور کے ذریعہ بنایا گیا ہے، جو کلائنٹ کو بھیجے گئے جواب کی نمائندگی کرتا ہے۔ جوابی آبجیکٹ HTTP ہیڈر بنانے کے لیے درکار انٹرفیس سے بھی وابستہ ہے۔ پروگرامرز JSP پروگرام میں نئی ​​کوکیز، HTTP سٹیٹس کوڈز، اور ڈیٹ سٹیمپ شامل کر سکتے ہیں۔ ذیل میں کچھ طریقے یا فنکشنز ہیں جو servlet پروگرام میں HTTP رسپانس ہیڈر کو شامل کرنے کے لیے استعمال ہوتے ہیں۔

    سٹرنگ انکوڈ یو آر ایل (اسٹرنگ یو آر ایل): یہ طریقہ کسی مخصوص URL کو انکوڈنگ کرنے کے لیے استعمال کیا جاتا ہے جس میں سیشن ID شامل ہے۔ اگر انکوڈنگ کی ضرورت ہو تو، یہ طریقہ بدلے بغیر URL بھیجتا ہے۔String encodeRedirectURL(String url): sendRedirect فنکشن میں شامل URL کو انکوڈ کیا گیا ہے۔ اگر انکوڈنگ کی ضرورت نہیں ہے، تو URL میں کوئی تبدیلی نہیں ہوگی۔boolean is Committed(): اس فنکشن کا نتیجہ بولین ویلیو میں نکلتا ہے، یہ بتاتا ہے کہ کیا جواب دیا گیا ہے۔بولین پر مشتمل ہے ہیڈر (سٹرنگ کا نام): اس کے نتیجے میں بولین ویلیو بھی نکلتی ہے کہ آیا نام کا جوابی ہیڈر سیٹ کیا گیا ہے۔void addHeader (سٹرنگ کا نام، سٹرنگ ویلیو): اس فنکشن میں اس کے نام اور قدر کے ساتھ جوابی ہیڈر شامل ہے۔void addDateHeader (سٹرنگ کا نام، لمبی تاریخ): اس میں اس کے نام اور تاریخ کے ساتھ ایک نیا جوابی ہیڈر بھی شامل ہے۔باطل فلش بفر (): یہ فنکشن بفر میں موجود مواد کو کلائنٹ کو زبردستی لکھتا ہے۔void addIntHeader (سٹرنگ کا نام، int ویلیو): اس فنکشن میں اس کے نام اور ایک عددی قدر کے ساتھ ایک نیا جوابی ہیڈر شامل ہے۔باطل ری سیٹ بفر (): یہ بنیادی بفر سے تمام مواد کو ہٹاتا یا صاف کرتا ہے لیکن ہیڈرز اور اسٹیٹس کوڈز کو صاف نہیں کرتا ہے۔باطل ری سیٹ (): یہ فنکشن سٹیٹس کوڈ اور ہیڈرز کے ساتھ بفر میں موجود تمام ڈیٹا کو ہٹاتا یا حذف کر دیتا ہے۔void sendError (int sc, String msg): اس کے نتیجے میں غلطی کا پیغام ایک خاص حیثیت رکھتا ہے اور کلائنٹ کو بھیجا جاتا ہے۔void send Error (int sc): یہ فنکشن بفر سے ڈیٹا ڈیلیٹ کر کے مخصوص سٹیٹس کوڈ کے ساتھ کلائنٹ کو ایرر میسج بھی منتقل کرتا ہے۔باطل سیٹ بفر سائز (انٹ سائز): یہ فنکشن ریسپانس باڈی کے لیے بفر سائز کو ٹھیک کرتا ہے۔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درخواست اثاثہ کافی طویل ہے
414Request-url بہت طویل ہے۔
415غیر تعاون یافتہ میڈیا کی قسم
417توقع ناکام ہوگئی
500اندرونی سرور کی خرابی
501نافذ نہیں کیا گیا
502خراب گیٹ وے
503سروس میسر نہیں
504گیٹ وے ٹائم آؤٹ
505HTTP ورژن تعاون یافتہ نہیں ہے۔

ذیل میں دیئے گئے HTTP اسٹیٹس کوڈ کو سیٹ کرنے کے لیے تین مختلف طریقے استعمال کیے جاتے ہیں۔

    عوامی باطل سیٹ اسٹیٹس (انٹ اسٹیٹس کوڈ): یہ اسٹیٹس کوڈ سیٹ کرتا ہے، جو اسٹیٹس کوڈ کے لیے انٹیجر ویلیو کو بطور دلیل استعمال کرتا ہے۔عوامی باطل sendRedirect (سٹرنگ یو آر ایل): یہ فنکشن 302 کوڈ کے ساتھ جواب تخلیق کرتا ہے۔ یہ ایک مقام کا ہیڈر بھی تیار کرتا ہے، جو نئی دستاویز کے URL کی وضاحت کرتا ہے۔عوامی باطل بھیجنے کی خرابی (انٹ کوڈ، سٹرنگ پیغام): یہ فنکشن 404 HTTP اسٹیٹس کوڈ کو ایک مختصر پیغام کے ساتھ براؤزر میں منتقل کرتا ہے۔

ہم ایک سیدھی سی مثال دیکھیں گے، جو کلائنٹ کو 407 ایرر اسٹیٹس کوڈ دکھائے گی۔

مثال:

|_+_|

مندرجہ بالا کوڈ 407 HTTP اسٹیٹس کوڈ کے ساتھ دکھائے گا۔ تصدیق کی ضرورت ہے۔ پیغام

جے ایس پی میں فارم پروسیسنگ

کئی بار، ہمیں براؤزر سے ویب سرور اور آخر میں پروگرام میں ڈیٹا منتقل کرنے کی ضرورت ہوتی ہے۔ اس ڈیٹا کو ویب سرور پر منتقل کرنے کے لیے براؤزر کے ذریعے دو طریقے GET اور POST استعمال کیے جاتے ہیں۔ JSP کا استعمال کرتے ہوئے ڈیٹا کو پڑھنے کے لیے چار طریقے استعمال کیے جاتے ہیں، getParameter() , getParameterValues() , getParameterNames() ، اور getInputStream() .

GET طریقہ

GET طریقہ انکوڈ شدہ صارف کی معلومات کو منتقل کرنے اور اسے صفحہ کی درخواست میں شامل کرنے کے لیے استعمال کیا جاتا ہے۔ انکوڈ شدہ صارف کی معلومات اور صفحہ کی درخواست کو '؟' علامت سے الگ کیا جاتا ہے۔ یہ طریقہ صارف کی معلومات کو براؤزر سے ویب سرور پر منتقل کرنے کے لیے پہلے سے طے شدہ ہے۔ یہ اسٹرنگ کو لوٹاتا ہے جو میں موجود ہوگا۔ مقام: باکس براؤزر کے. اگر آپ کے پاس خفیہ ڈیٹا ہے، جیسا کہ پاس ورڈز، GET طریقہ استعمال نہ کریں۔

URL کا استعمال کرتے ہوئے GET طریقہ کی مثال

آئیے یو آر ایل بنائیں جو GET طریقہ استعمال کرتے ہوئے GetURLForm پروگرام کو دو مختلف ویلیوز پاس کرے گا۔

|_+_|

ہم نیچے کا کوڈ main.jsp فائل میں لکھیں گے۔ ہم نے JSP کا استعمال کرتے ہوئے ڈیٹا پڑھنے کے لیے getParameter() طریقے استعمال کیے ہیں۔

مثال:

|_+_|

آؤٹ پٹ:

|_+_|

کوکیز ہینڈلنگ

کوکیز کیا ہیں؟ کوکیز کلائنٹ کے ڈیسک ٹاپ میں موجود ٹیکسٹ فائلز ہیں اور ان کا استعمال ٹریکنگ کے مقاصد کے لیے کیا جاتا ہے۔ HTTP کوکیز JSP کے ذریعے سپورٹ کی جاتی ہیں۔ یہاں، ہم HTTP کوکی کی اناٹومی، کوکی کو سیٹ یا ری سیٹ کرنے کا طریقہ، اور کوکیز میں طریقے دیکھیں گے۔

کوکی کی اناٹومی

کوکی ہمیشہ HTTP ہیڈر پر موجود ہوتی ہے۔ جب جے ایس پی کوکی کو HTTP ہیڈر میں سیٹ کرتا ہے تو اس کا ڈھانچہ درج ذیل ہوتا ہے۔

|_+_|

میں سیٹ کوکی ہیڈر اوپر، آپ مشاہدہ کر سکتے ہیں نام کی قدر جوڑا تاریخ GMT میں، a راستہ ، اور ڈومین . یہ نام کی قدر کا جوڑا URL کی شکل میں موجود ہے۔ مندرجہ بالا کوکی میں ایک اور عنصر ہے میعاد ختم ، جو براؤزر کو بتاتا ہے کہ مقررہ تاریخ اور وقت کے بعد اس کوکی کو بھول جائے۔

کوکیز کے طریقے

کوکیز سے متعلق کچھ اہم طریقے درج ذیل ہیں، ان کی تفصیل کے ساتھ۔

    عوامی سٹرنگ getDomain(): یہ فنکشن کوکی کے ڈومین کو بازیافت کرتا ہے۔عوامی باطل سیٹ ڈومین (سٹرنگ پیٹرن): آپ اس فنکشن کا استعمال کرتے ہوئے اپنی کوکی کے لیے ڈومین سیٹ کر سکتے ہیں۔عوامی int getMaxAge(): یہ کوکی کی زیادہ سے زیادہ عمر لاتا ہے۔ عمر کو سیکنڈوں میں دکھایا جاتا ہے۔عوامی باطل سیٹ میکس ایج (انٹ ایکسپائری): یہ فنکشن کوکی کی میعاد ختم ہونے سے پہلے گزر جانے کا وقت مقرر کرے گا۔عوامی سٹرنگ getValue(): یہ کوکی کی قدر کو بازیافت کرتا ہے۔عوامی سٹرنگ getName(): یہ کوکی کا نام لاتا ہے۔ آپ کوکی کا نام اس کی تخلیق کے بعد تبدیل نہیں کر سکتے۔عوامی باطل سیٹ ویلیو (اسٹرنگ نیو ویلیو): یہ فنکشن کوکی ویلیو کو ٹھیک کرتا ہے۔عوامی سٹرنگ getPath(): اس کے نتیجے میں کوکی کے ساتھ منسلک راستہ نکلتا ہے۔عوامی باطل سیٹ پاتھ (سٹرنگ یوری): یہ فنکشن کوکی کے لیے راستہ متعین کرتا ہے۔عوامی سٹرنگ getComment(): اس کا نتیجہ تبصرے میں آتا ہے، جو کوکی کا مقصد یا استعمال بتاتا ہے۔ اگر کوکی میں کوئی تبصرہ نہیں ہے، تو یہ NULL لوٹاتا ہے۔عوامی باطل سیٹ سیکیور (بولین پرچم): یہ بولین ویلیو کی وضاحت کرتا ہے کہ آیا کوکی کو انکرپٹڈ کنکشن پر بھیجنا ہے۔عوامی باطل سیٹ تبصرہ (سٹرنگ مقصد): یہ فنکشن ایک کوکی کے لیے تبصرہ سیٹ کرتا ہے جو اس کا مقصد بتاتا ہے۔

کوکی کو کیسے سیٹ کریں؟

کوکی کو ترتیب دینے کے تین سیدھے طریقے ہیں۔ یہ طریقے ذیل میں بیان کیے گئے ہیں:

  1. سب سے پہلے، کوکی آبجیکٹ بنائیں۔ کوکی کنسٹرکٹر کو کوکی کے نام اور متعلقہ قیمت کے ساتھ کال کریں۔ نام اور قدر دونوں کو String میں دکھایا گیا ہے۔
|_+_|

کوکی بناتے وقت، آپ کو یاد رکھنا چاہیے کہ نام اور قدر میں کوئی خالی جگہ یا خاص علامت نہیں ہونی چاہیے۔

  1. کوکی بنانے کے بعد، اب ہم استعمال کرتے ہوئے اس کے لیے زیادہ سے زیادہ عمر مقرر کریں گے۔ سیٹ میکس ایج فنکشن
|_+_|

مندرجہ بالا فنکشن 24 گھنٹے کی کوکی کی زیادہ سے زیادہ عمر کا تعین کرتا ہے۔

  1. آخر میں، کوکی کو HTTP رسپانس ہیڈر میں شامل کرنے کے لیے response.addCookie استعمال کریں۔
|_+_|

نتیجہ

JavaServer Pages یا Jakarta Server Pages (JSP) وہ ٹیکنالوجی ہے جو ڈویلپرز کو متحرک مواد یا ویب صفحات بنانے کے قابل بناتی ہے۔ JSP کے متعدد جدید فوائد ہیں، کیونکہ اسے برقرار رکھنا آسان ہے، سرولیٹس سے کم کوڈ کی ضرورت ہوتی ہے، اور تیزی سے ترقی کی پیشکش کرتا ہے۔ یہ مضمون نوآموز صارفین کے لیے JSP سیکھنے کے لیے ایک فوری رہنما ہے۔

ہم نے جے ایس پی کے ان تمام پہلوؤں کا احاطہ کیا ہے جو نئے ڈویلپرز کو سیکھنے کے لیے درکار ہیں۔ کسی بھی جے ایس پی پروگرام کو شروع کرنے سے پہلے، پہلے جاوا ماحول اور ٹامکیٹ کلاس پاتھ سیٹ کریں۔ یہاں تمام ضروری JSP عناصر کے بارے میں ایک مکمل ٹیوٹوریل ہے۔

ہمارے پاس ایک ہے۔ گراف تھیوری فوری گائیڈ جس میں گراف تھیوری سے متعلق تمام تفصیلات کے بارے میں تفصیل سے بات کی گئی ہے۔