JavaRush /جاوا بلاگ /Random-SD /JSP ڇا آهي؟ اچو ته عملي طور تي امڪانن کي ڳوليون
Анзор Кармов
سطح
Санкт-Петербург

JSP ڇا آهي؟ اچو ته عملي طور تي امڪانن کي ڳوليون

گروپ ۾ شايع ٿيل
JSP يا جاوا سرور صفحا هڪ جاوا ٽيڪنالاجي آهي جيڪا توهان کي جاوا ايپليڪيشنن لاءِ متحرڪ ويب صفحا ٺاهڻ جي اجازت ڏئي ٿي. هن آرٽيڪل ۾، اسان وڌيڪ تفصيل سان ڳالهائينداسين ته JSP ڇا آهي، هن ٽيڪنالاجي جي ڪجهه صلاحيتن تي بحث ڪنداسين، JSP صفحن جي ساخت کي ڏسو، ۽ اهو پڻ عملي طور تي ڏسڻ جي ڪوشش ڪنداسين ته اهي جاوا سرور صفحا ڇا آهن. JSP ڇا آهي؟  عملي طور تي امڪانن کي سمجھڻ - 1پر پهرين، اچو ته JSP جي فائدن ۽ اهميت بابت ڳالهايو. JSP ڊولپر کي اجازت ڏئي ٿو:
  • جاوا ڪوڊ ۾ ويب پيج تان ڊيٽا حاصل ڪريو؛
  • جاوا ڪوڊ مان ڊيٽا موڪليو ويب پيج تي؛
  • جاوا ڪوڊ لکو سڌو سنئون html اندر (جڏهن ته، توهان کي هن کي غلط استعمال نه ڪرڻ گهرجي).
JSP علم جي ضرورت جو اندازو لڳائي سگهجي ٿو ڪافي سببن جي ڪري:
  • JSP مکيه جاوا ويب ٽيڪنالاجي مان هڪ آهي؛
  • JSP وڏي پيماني تي اڪثر ڪمپنين ۽ منصوبن ۾ استعمال ڪيو ويندو آهي؛
  • JSP هڪ servlet ڪنٽينر اندر جاوا servlets سان بيحد ضم ٿي.

JSP جي تعريف

هتي وڪيپيڊيا مان هڪ تعريف آهي: JSP (JavaServer صفحا) هڪ ٽيڪنالاجي آهي جيڪا ويب ڊولپرز کي مواد ٺاهڻ جي اجازت ڏئي ٿي جنهن ۾ جامد ۽ متحرڪ جزا آهن. هڪ JSP صفحو ٻن قسمن جي متن تي مشتمل آهي: جامد ماخذ ڊيٽا، جيڪو متن جي فارميٽ مان هڪ ۾ ٿي سگهي ٿو HTML، SVG، WML، يا XML، ۽ JSP عناصر، جيڪو متحرڪ مواد ٺاهي ٿو. ان کان علاوه، JSP ٽيگ لائبريريون استعمال ڪري سگھجن ٿيون، گڏوگڏ ايڪسپريشن ٻولي (EL) جاوا ڪوڊ کي JSP صفحن جي جامد مواد ۾ شامل ڪرڻ لاءِ. JSP صفحي جو ڪوڊ Jasper JSP پيج ڪمپلر استعمال ڪندي سروليٽ جاوا ڪوڊ ۾ ترجمو ڪيو ويو آھي، ۽ پوءِ جاوا ورچوئل مشين (JVM) بائيٽ ڪوڊ ۾ مرتب ڪيو ويو آھي. Servlet ڪنٽينر جيڪي JSP صفحن تي عمل ڪرڻ جي قابل آهن پليٽ فارم-آزاد جاوا ٻولي ۾ لکيل آهن. JSP ٽيڪنالاجي هڪ پليٽ فارم آهي-آزاد، پورٽبل ۽ آساني سان وسعت واري ٽيڪنالاجي ويب ايپليڪيشنن کي ترقي ڪرڻ لاءِ.

JSP صفحي جي جوڙجڪ

عام طور تي، JSP متحرڪ ويب صفحن ڏانهن اشارو ڪري ٿو جنهن ۾ متحرڪ حصو جاوا استعمال ڪندي ٺاهيل آهي، ۽ جامد حصو مارڪ اپ ٻولين جي استعمال سان ٺاهيل آهي، اڪثر ڪري HTML. اهڙو صفحو .jsp ايڪسٽينشن سان هڪ ٽيڪسٽ ڊاڪيومينٽ آهي، جيڪو هڪ مارڪ اپ ٻولين ۾ لکيل آهي (جهڙوڪ HTML، SVG، WML ۽ XML)، JSP عناصر (يا JSP ٽيگ) سان جڙيل آهي. اهي ٽيگ سرور ڪوڊ (ڊيٽا) ڏانهن ڪالن تي مشتمل آهن ۽ ڪجهه حساب ڪتاب پڻ ڪن ٿا. اهي فائلون سرور تي پروسيس ڪيون وينديون آهن، جنهن جي نتيجي ۾ سڀئي JSP ٽيگ html ٽيگ ۾ تبديل ٿي ويندا آهن، ۽ آئوٽ هڪ باقاعده html صفحو آهي. هيٺ ڏنل آريگرام ڏيکاري ٿو هڪ آريگرام هڪ JSP صفحي جي ساخت ۽ ان جي سرور سان رابطي جو. JSP ڇا آهي؟  عملي طور تي امڪانن کي سمجھڻ - 2هڪ سادي JSP صفحي جو هڪ مثال:
<html>
  <body>
    <p> ${2 + 2} равно 4 </p>
  </body>
</html>
هن مثال ۾، هڪ JSP اظهار هڪ خاص ٻولي ۾ لکيل آهي، ايڪسپريس ٻولي (EL)، html ڪوڊ اندر "ايمبيڊ ٿيل" آهي . اهو پريزنٽيشن پرت (ويب صفحا) ۽ ايپليڪيشن ڪاروباري منطق پرت (جاوا ڪوڊ) جي وچ ۾ رابطي لاءِ هڪ اهم ميکانيزم مهيا ڪري ٿو. جيئن ته توهان مثال مان ڏسي سگهو ٿا، JSP جو اظهار گھڙيل ڪنگڻ ۾ بند ڪيو ويو آهي، هڪ معروف ڊالر جي نشاني سان - ${...}. هر شي جيڪا گھڙيل برائنس جي اندر آهي سرور تي جائزو ورتو ويو آهي، ۽ هن اظهار جو نتيجو html ۾ ڏنو ويو آهي، انهي جاء تي جتي JSP اظهار اصل ۾ وضاحت ڪئي وئي هئي. سڀني ٽيگ کي پروسيس ڪرڻ کان پوء، صفحو هن طرح نظر ايندو:
<html>
  <body>
    <p> 4 равно 4 </p>
  </body>
</html>

سرورٽ ڪنٽينر کي انسٽال ڪرڻ ۽ هلائڻ

جيئن ته JSP ڪوڊ جاوا servlet ڪوڊ ۾ ترجمو ڪيو ويو آهي، اسان کي ڪنهن به قسم جي سرورليٽ ڪنٽينر حاصل ڪرڻ جي ضرورت آهي ته جيئن اسين ڳالهائي سگهون ٿا ته JSP ڪيئن ڪم ڪري ٿو. ٻي صورت ۾، هڪ ڪنٽينر کان سواء، JSP ڪم نه ڪندو. پر پهرين، اچو ته هڪ سروليٽ ڪنٽينر جي تعريف کي ڏسو. هڪ سروليٽ ڪنٽينر هڪ پروگرام آهي جيڪو هڪ سرور آهي جيڪو سرويٽس لاءِ سسٽم سپورٽ مهيا ڪري ٿو ۽ انهن جي زندگي جي چڪر کي يقيني بڻائي ٿو وضاحتن ۾ بيان ڪيل ضابطن جي مطابق. اهو هڪ مڪمل آزاد ويب سرور جي طور تي ڪم ڪري سگهي ٿو، هڪ ٻئي ويب سرور لاءِ صفحو فراهم ڪندڙ ٿي سگهي ٿو، يا جاوا EE ايپليڪيشن سرور ۾ ضم ٿي سگهي ٿو. سڀ کان وڌيڪ مشهور سروليٽ ڪنٽينرز مان هڪ آهي Apache Tomcat. JSP ڇا آهي؟  عملي طور تي امڪانن کي سمجھڻ - 3اهو قابل ذڪر آهي ته Tomcat هڪ مڪمل جاوا EE ايپليڪيشن سرور ناهي. جڏهن ته، servlets ۽ JSP صفحن جي اهم ضرورتن لاء، Tomcat سرور ڪافي کان وڌيڪ آهي. اچو ته انسٽاليشن شروع ڪريون. توھان ڊائون لوڊ ڪري سگھو ٿا Tomcat سرڪاري صفحي تان . Windows OS لاءِ توھان ھيٺ ڏنل Tomcat انسٽال ڪري سگھو ٿا:
  1. 32-bit/64-bit ونڊوز سروس انسٽالر ڊائون لوڊ ڪريو.

  2. اچو ته فائل کي هلائي.

  3. اڳيون، عام انسٽاليشن جي طريقيڪار تي عمل ڪريو:

    1. لاڳاپيل انسٽالر ونڊو تي مثال چيڪ بڪس چيڪ ڪرڻ نه وساريو:

      JSP ڇا آهي؟  عملي طور تي امڪانن کي سمجھڻ - 4
    2. ۽ اڳ ۾ نصب ٿيل JRE جو رستو بيان ڪريو:

      JSP ڇا آهي؟  عملي طور تي امڪانن کي سمجھڻ - 5
  4. انسٽاليشن کان پوء، Tomcat لانچ ڪريو ۽ برائوزر کوليو. وڃو http://localhost:8080/ .

جيڪڏهن توهان ڏسو Tomcat شروعاتي صفحو، ان جو مطلب آهي انسٽاليشن ڪامياب ٿي وئي ۽ سرور هلائي رهيو آهي. Tomcat کي دستي طور تي شروع ڪرڻ ۽ بند ڪرڻ لاءِ، توھان ھلائي سگھوٿا ھڪڙي ٻن executable فائلن مان bin ڊاريڪٽري ۾. اهو ڊاريڪٽري اندر واقع آهي جتي Tomcat نصب ٿيل آهي: JSP ڇا آهي؟  عملي طور تي امڪانن کي سمجھڻ - 6

ڊيمو ايپليڪيشنون. لڪيل شيون

اچو ته عمل ۾ ڪجهه JSP خاصيتون ڏسو. انهن مان هڪ آهي رسائي آهي نام نهاد لڪيل شيون ( Implicit Objects ). اهي شيون آهن جيڪي ايڪسپريشن ٻولي (EL) استعمال ڪندي پهچائي سگھجن ٿيون. اهڙين شين جا مثال HTTP هيڊر يا URL پيٽرولر آهن. اچو ته ظاهر ڪريون (يا اسان جي ياداشت کي تازو ڪريو) ڪهڙا URL پيٽرولر آهن. ھيٺ ڏنل مثال ھڪڙو URL ڏيکاري ٿو پيرا ميٽرن سان. پيرا ميٽرز بولڊ ۾ آهن: http://example.net/foo/bar ?param1=value1¶m2=value2&a=1&name=Tom پيرا ميٽر هميشه سوال جي نشان سان شروع ٿين ٿا (؟). اهو پيرا ميٽر جي نالي جي پٺيان آهي، برابر نشاني جي پٺيان - پيٽرولر جي قيمت مقرر ڪئي وئي آهي. اتي ڪيترن ئي يا هڪ پيراگراف ٿي سگهي ٿو. جيڪڏهن هڪ کان وڌيڪ آهي، هر نالي جي قيمت جوڙو هڪ ايمپرسينڊ ڪردار (&) سان الڳ ڪيو ويندو آهي. مٿي ڏنل مثال ۾، ڪيترائي پيٽرول ۽ انهن جا قدر بيان ڪيا ويا آهن:
پيٽرولر جو نالو پيٽرولر جو قدر
param1 قدر 1
param2 قدر 2
هڪ 1
نالو ٽام
اچو ته هڪ نظر رکون ته توهان JSP ۾ لڪيل شيون ڪيئن رسائي ڪري سگهو ٿا، بشمول URL پيٽرولر. ائين ڪرڻ لاءِ Tomcat لانچ ڪريو ۽ برائوزر کوليو پيج تي http://localhost:8080/ پوءِ وڃو مثالن واري صفحي تي: JSP ڇا آهي؟  عملي طور تي امڪانن کي سمجھڻ - 7پوءِ لنڪ کي فالو ڪريو JSP Examples: JSP ڇا آهي؟  عملي طور تي امڪانن کي سمجھڻ - 8مثالن واري صفحي تي لنڪ کي فالو ڪريو Implicit Objects -> Execute: JSP ڇا آهي؟  عملي طور تي امڪانن کي سمجھڻ - 9هن تي صفحو توهان ڏسي سگهو ٿا هڪ مثال لڪيل شيون استعمال ڪرڻ جو. هيٺ ڏنل صفحي جو هڪ اسڪرين شاٽ آهي تفصيلي وضاحتن سان: پيج تي لاڳاپيل فيلڊ استعمال ڪندي JSP ڇا آهي؟  عملي طور تي امڪانن کي سمجھڻ - 10پيراميٽر جي قدر کي تبديل ڪرڻ جي ڪوشش ڪريو ، پوءِ نوٽ ڪريو ته ايڊريس بار ۾ هن پيرا ميٽر جي قدر پڻ تبديل ٿي وئي آهي. fooپيش ڪيل صفحي ۾ وڌيڪ ڪارڪردگي نه آهي، پر اهو هڪ سٺو حوالو آهي جيڪو توهان مستقبل ۾ حوالو ڪري سگهو ٿا جڏهن توهان کي ڪنهن خاص لڪيل اعتراض تائين پهچڻ جي ضرورت آهي. هي صفحو لڪيل شين جي هڪ فهرست تي مشتمل آهي جنهن تائين رسائي ٿي سگهي ٿي. ۽ هيٺ ڏنل، ٽيبل ۾، اهو ڏيکاريو ويو آهي ته توهان ڪنهن خاص اعتراض تائين رسائي ڪيئن ڪري سگهو ٿا.

JSP افعال

ھاڻي اچو ته پوئين صفحي ڏانھن واپس وڃو ۽ "لڪيل شيون" صفحي جي سورس ڪوڊ تي ھڪ نظر وٺو: JSP ڇا آهي؟  عملي طور تي امڪانن کي سمجھڻ - 11ھي آھي:
<%@page contentType="text/html; charset=UTF-8" %>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>

<html>
  <head>
    <title>JSP 2.0 Expression Language - Implicit Objects</title>
  </head>
  <body>
    <h1>JSP 2.0 Expression Language - Implicit Objects</h1>
    <hr>
    This example illustrates some of the implicit objects available
    in the Expression Language.  The following implicit objects are
    available (not all illustrated here):
    <ul>
      <li>pageContext - the PageContext object</li>
      <li>pageScope - a Map that maps page-scoped attribute names to
          their values</li>
      <li>requestScope - a Map that maps request-scoped attribute names
          to their values</li>
      <li>sessionScope - a Map that maps session-scoped attribute names
          to their values</li>
      <li>applicationScope - a Map that maps application-scoped attribute
          names to their values</li>
      <li>param - a Map that maps parameter names to a single String
          parameter value</li>
      <li>paramValues - a Map that maps parameter names to a String[] of
          all values for that parameter</li>
      <li>header - a Map that maps header names to a single String
          header value</li>
      <li>headerValues - a Map that maps header names to a String[] of
          all values for that header</li>
      <li>initParam - a Map that maps context initialization parameter
          names to their String parameter value</li>
      <li>cookie - a Map that maps cookie names to a single Cookie object.</li>
    </ul>

    <blockquote>
      <u><b>Change Parameter</b></u>
      <form action="implicit-objects.jsp" method="GET">
          foo = <input type="text" name="foo" value="${fn:escapeXml(param["foo"])}">
          <input type="submit">
      </form>
      <br>
      <code>
        <table border="1">
          <thead>
            <td><b>EL Expression</b></td>
            <td><b>Result</b></td>
          </thead>
          <tr>
            <td>\${param.foo}</td>
            <td>${fn:escapeXml(param["foo"])} </td>
          </tr>
          <tr>
            <td>\${param["foo"]}</td>
            <td>${fn:escapeXml(param["foo"])} </td>
          </tr>
          <tr>
            <td>\${header["host"]}</td>
            <td>${fn:escapeXml(header["host"])} </td>
          </tr>
          <tr>
            <td>\${header["accept"]}</td>
            <td>${fn:escapeXml(header["accept"])} </td>
          </tr>
          <tr>
            <td>\${header["user-agent"]}</td>
            <td>${fn:escapeXml(header["user-agent"])} </td>
          </tr>
        </table>
      </code>
    </blockquote>
  </body>
</html>
جيڪڏهن توهان HTML سان واقف آهيو، صفحي جو سورس ڪوڊ توهان لاءِ بلڪل واضح هجڻ گهرجي. هنن لائينن تي ڌيان ڏيو:
<tr>
  <td>${param.foo}</td>
  <td>${fn:escapeXml(param["foo"])} </td>
</tr>
هتي اسان ڏسون ٿا html ٽيگ <tr>۽ <td>. ٽيگ جي پٺيان <td>JSP ٽيگ آهن، گھمڻ واري ڪنگڻ ۾ ويڙهيل ${ }. بهرحال، نوٽ ڪريو ته URL پيٽرولر جو قدر ڪيئن آهي آئوٽ foo:
${fn:escapeXml(param["foo"])}
قيمت هڪ JSP فنڪشن جي استعمال جي ذريعي پيداوار آهي fn:escapeXml(). JSP افعال ڪجهه ڪارڪردگي کي ڍڪيندا آهن جيڪي ٻيهر استعمال ڪري سگھجن ٿيون. انهي حالت ۾، اهو آهي ايڪس ايم ايل فرار ٿيڻ. JSP ٽيڪنالاجي مهيا ڪري ٿي ڪمن جي وسيع رينج مان چونڊڻ لاءِ، انهي سان گڏ توهان جي پنهنجي فنڪشن ٺاهڻ جي صلاحيت. JSP ۾ هڪ فنڪشن استعمال ڪرڻ لاء، توهان کي مناسب لائبريري درآمد ڪرڻ گهرجي جنهن ۾ فنڪشن جي وضاحت ڪئي وئي آهي JSP فائل ۾.

ٽيگ لائبريريون

اچو ته مٿي ڏنل سورس ڪوڊ جي هڪ ٻي لائن تي نظر وجهون (سيڪنڊ لائين):
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
اهڙي طرح ٽيگ لائبريريون درآمد ڪيون وينديون آهن. نحو وجداني آهي. اسان ڪيترن ئي شين جي وضاحت ڪريون ٿا:
  • taglib(ٽيگ لائبريري - ٽيگ لائبريري)؛
  • urlجتي هي لائبريري واقع آهي؛
  • هڪ اڳياڙي (هن صورت ۾ fn) جنهن جي ذريعي هن لائبريري ۾ بيان ڪيل افعال کي ڪال ڪرڻ ممڪن ٿيندو.
مٿين مثال ۾، اسان ڏٺو ته ڪم درآمد ڪرڻ. خاص طور تي، اسان جي مثال ۾، اسان درآمد ڪيو JSTL (JSP معياري ٽيگ لائبريري) لائبريري. JSTL هڪ معياري ٽيگ لائبريري آهي جنهن ۾ مختلف لائبريرين جو هڪ سيٽ شامل آهي جيڪو هر سرورٽ ۽ JSP عملدرآمد سان گڏ اچي ٿو، بشمول Tomcat. هڪ ٻي مشهور ٽيگ لائبريري ڪور آهي، جيڪا هن طرح درآمد ڪري سگهجي ٿي:
<%@ taglib uri = "http://java.sun.com/jsp/jstl/core" prefix = "c" %>
جيئن ته fn، نوٽيشن cاختياري آهي ۽ عام طور تي قبول ٿيل آهي. هي نامزدگي تقريبن هر هنڌ ملي سگهي ٿي جتي اهي لائبريريون استعمال ڪيون وينديون آهن. هتي بنيادي لائبريري مان هڪ فنڪشن جو هڪ مثال آهي:
<c:out value = "${'<div>'}"/>
هي فنڪشن صرف ٽيگ آئوٽ ڪندو <div>. هي فنڪشن اڳ ۾ ئي ڪري ٿو XML فرار. هي فنڪشنل سيڪيورٽي نقطي نظر کان اهم آهي، ڇاڪاڻ ته متغير جي قيمت کي سڌو سنئون، ذريعي ${variable}، اسان اسڪرپٽ انجيڪشن لاء دروازو کوليندا آهيون.

جي ايس پي ايڊيٽنگ

هاڻي، نئين علم سان هٿياربند، اچو ته Tomcat اندر ڊيمو ايپليڪيشن ۾ تبديليون ڪرڻ جي ڪوشش ڪريو. ائين ڪرڻ لاءِ، اسان هن صفحي جو سورس ڪوڊ ڳولينداسين فولڊر اندر جنهن ۾ هي سرورليٽ ڪنٽينر نصب ڪيو ويو هو. ھي فائل ھيٺ ڏنل ايڊريس تي ملي سگھي ٿي: ...\Apache Software Foundation\Tomcat 9.0\webapps\examples\jsp\jsp2\el ان کان پوءِ فائل کوليو implicit-objects.jsp ڪنھن به ٽيڪسٽ ايڊيٽر ۾ ڪور لائبريري جي درآمد شامل ڪريو ، ۽ پوءِ ان کي استعمال ڪريو اچو ته ڪجھ ٽيڪسٽ آئوٽ ڪريون: JSP ڇا آهي؟  عملي طور تي امڪانن کي سمجھڻ - 12ھاڻي اچو ته لڪيل شيون واري صفحي کي ريفريش ڪريون ۽ ڪيل تبديلين تي ھڪ نظر وٺو: JSP ڇا آهي؟  عملي طور تي امڪانن کي سمجھڻ - 13

نتيجا

تنهن ڪري، اسان اعلي سطحي طور تي جانچ ڪيو آهي جهڙوڪ ٽيڪنالاجي JSP. اسان بحث ڪيو:
  • JSP ڇا آهي؛
  • JSP صفحي جي جوڙجڪ؛
  • Tomcat servlet ڪنٽينر کي انسٽال ڪرڻ ۽ هلائڻ جو طريقو؛
  • لڪيل شيون تائين رسائي لاءِ ڊيمو ايپليڪيشن، جيڪا Tomcat سرور ورهائڻ واري پيڪيج ۾ شامل آهي؛
  • JSP افعال ۽ ٽيگ لائبريريون.

اڳتي ڇا آهي؟

مواد کي محفوظ ڪرڻ لاء توهان ڪري سگهو ٿا:
  1. هن مضمون ۾ بيان ڪيل هر شي کي ورجايو.
  2. ٻين ڊيمو ايپليڪيشنن تي غور ڪريو Tomcat سرور سان شامل.
  3. پنهنجو پاڻ جي ايپليڪيشن لکو ۽ ان کي هڪ سروليٽ ڪنٽينر تي لڳايو. ھدايت جي طور تي، توھان استعمال ڪري سگھوٿا آرٽيڪل ٺاھيو ھڪڙو سادو ويب پروجيڪٽ IntelliJ Idea Enterprise. قدم بہ قدم، تصويرن سان.
تبصرا
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION