JavaRush /Blog Jawa /Random-JV /Apa JSP? Ayo njelajah kemungkinan ing laku
Анзор Кармов
tingkat
Санкт-Петербург

Apa JSP? Ayo njelajah kemungkinan ing laku

Diterbitake ing grup
JSP utawa Java Server Pages minangka teknologi Java sing ngidini sampeyan nggawe kaca web dinamis kanggo aplikasi Java. Ing artikel iki, kita bakal ngomong kanthi luwih rinci babagan apa JSP, ngrembug sawetara kemampuan teknologi iki, ndeleng struktur kaca JSP, lan uga nyoba kanggo ndeleng praktis apa Java Server Pages iki. Apa JSP?  Ngerteni kemungkinan ing laku - 1Nanging pisanan, ayo ngomong babagan keuntungan lan pentinge JSP. JSP ngidini pangembang kanggo:
  • nampa data saka kaca web menyang kode Jawa;
  • ngirim data saka kode Jawa menyang kaca web;
  • nulis kode Jawa langsung nang html (Nanging, sampeyan kudu ora planggaran iki).
Kebutuhan kanggo kawruh JSP bisa ditaksir cukup dhuwur amarga sawetara alasan:
  • JSP minangka salah sawijining teknologi web Jawa utama;
  • JSP digunakake akeh ing akeh perusahaan lan proyek;
  • JSP nggabungake seamlessly karo servlets Jawa nang wadhah servlet.

Definisi JSP

Mangkene definisi saka Wikipedia: JSP (JavaServer Pages) yaiku teknologi sing ngidini pangembang web nggawe konten sing nduweni komponen statis lan dinamis. Kaca JSP ngemot rong jinis teks: data sumber statis, sing bisa dadi salah sawijining format teks HTML, SVG, WML, utawa XML, lan unsur JSP, sing nggawe konten dinamis. Kajaba iku, perpustakaan tag JSP bisa digunakake, uga Expression Language (EL) kanggo nyisipake kode Jawa menyang isi statis kaca JSP. Kode kaca JSP diterjemahake menyang kode Java servlet nggunakake kompiler kaca Jasper JSP, banjur dikompilasi menyang Java Virtual Machine (JVM) bytecode. Wadah servlet sing bisa ngeksekusi kaca JSP ditulis nganggo basa Jawa sing bebas platform. Teknologi JSP minangka platform-independen, portabel lan gampang extensible teknologi kanggo ngembangaken aplikasi web.

Struktur kaca JSP

Umumé, JSP nuduhake kaca web dinamis sing bagean dinamis digawe nggunakake Jawa, lan bagean statis digawe nggunakake basa markup, paling asring HTML. Kaca kasebut minangka dokumen teks kanthi ekstensi .jsp, ditulis ing salah sawijining basa markup (kayata HTML, SVG, WML lan XML), diselingi karo unsur JSP (utawa tag JSP). Tag kasebut ngemot panggilan menyang kode server (data) lan uga nindakake sawetara petungan. File kasebut diproses ing server, minangka asil kabeh tag JSP diowahi dadi tag html, lan output minangka kaca html biasa. Diagram ing ngisor iki nuduhake diagram struktur kaca JSP lan interaksi karo server. Apa JSP?  Ngerteni kemungkinan ing laku - 2Conto kaca JSP prasaja:
<html>
  <body>
    <p> ${2 + 2} равно 4 </p>
  </body>
</html>
Ing conto iki, ekspresi JSP sing ditulis ing basa khusus, Expression Language (EL), "ditempelake" ing kode html . Iki nyedhiyakake mekanisme penting kanggo interaksi antarane lapisan presentasi (kaca web) lan lapisan logika bisnis aplikasi (kode Jawa). Nalika sampeyan bisa ndeleng saka conto, expression JSP terlampir ing kurung kriting, karo tandha dollar anjog - ${...}. Kabeh sing nang kurung kriting dievaluasi ing server, lan asil saka expression iki diwenehi ing html, ing panggonan ngendi expression JSP Originally ditetepake. Sawise ngolah kabeh tag, kaca bakal katon kaya iki:
<html>
  <body>
    <p> 4 равно 4 </p>
  </body>
</html>

Nginstal lan mbukak wadhah servlet

Wiwit kode JSP diterjemahake menyang kode servlet Jawa, kita kudu njaluk sawetara jinis wadhah servlet nang endi wae supaya kita bisa ngomong babagan cara kerja JSP. Yen ora, tanpa wadhah, JSP ora bakal bisa. Nanging pisanan, ayo goleki definisi wadah servlet. Wadah servlet minangka program sing minangka server sing nyedhiyakake dhukungan sistem kanggo servlet lan njamin siklus uripe sesuai karo aturan sing ditetepake ing spesifikasi. Bisa dianggo minangka server web independen lengkap, dadi panyedhiya kaca kanggo server web liyane, utawa nggabungake menyang server aplikasi Java EE. Salah sawijining wadah servlet sing paling populer yaiku Apache Tomcat. Apa JSP?  Ngerteni kemungkinan ing laku - 3Perlu dicathet menawa Tomcat dudu server aplikasi Java EE sing lengkap. Nanging, kanggo kabutuhan penting servlets lan kaca JSP, server Tomcat luwih saka cukup. Ayo dadi miwiti instalasi. Sampeyan bisa ngundhuh Tomcat saka kaca resmi . Kanggo Windows OS sampeyan bisa nginstal Tomcat kaya ing ngisor iki:
  1. Unduh 32-bit/64-bit Windows Service Installer.

  2. Ayo mbukak file kasebut.

  3. Sabanjure, tindakake prosedur instalasi biasanipun:

    1. Aja lali mriksa kothak Conto ing jendhela installer sing cocog:

      Apa JSP?  Ngerteni kemungkinan ing laku - 4
    2. lan nemtokake path menyang JRE sing wis diinstal:

      Apa JSP?  Ngerteni kemungkinan ing laku - 5
  4. Sawise instalasi, bukak Tomcat lan bukak browser. Pindhah menyang http://localhost:8080/ .

Yen sampeyan ndeleng kaca wiwitan Tomcat, tegese instalasi sukses lan server mlaku. Kanggo miwiti lan mungkasi Tomcat kanthi manual, sampeyan bisa mbukak salah siji saka rong file eksekusi ing direktori bin. Dumunung ing direktori ing ngendi Tomcat diinstal: Apa JSP?  Ngerteni kemungkinan ing laku - 6

Aplikasi demo. obyek sing didhelikake

Ayo katon ing sawetara fitur JSP ing tumindak. Salah sijine yaiku akses menyang obyek sing didhelikake ( Obyek Implisit ). Iki minangka obyek sing bisa diakses nggunakake Expression Language (EL). Conto obyek kasebut yaiku header HTTP utawa parameter URL. Ayo mbukak (utawa refresh memori kita) apa parameter URL. Conto ing ngisor iki nuduhake URL kanthi paramèter. Parameter kandel: http://example.net/foo/bar ?param1=value1¶m2=value2&a=1&name=Tom Parameter tansah diwiwiti kanthi tandha pitakon (?). Iki diterusake kanthi jeneng parameter, diikuti tandha sing padha - nilai parameter ditemtokake. Bisa uga ana sawetara utawa siji paramèter. Yen ana luwih saka siji, saben pasangan jeneng-nilai dipisahake dening karakter ampersand (&). Ing conto ing ndhuwur, sawetara paramèter lan nilai kasebut ditetepake:
Jeneng parameter Nilai parameter
param1 nilai1
param2 nilai2
a 1
jeneng Tom
Ayo goleki carane sampeyan bisa ngakses obyek sing didhelikake ing JSP, kalebu paramèter URL. Kanggo nindakake iki, bukak Tomcat lan bukak browser ing kaca http: // localhost: 8080 / Banjur pindhah menyang kaca Conto: Apa JSP?  Ngerteni kemungkinan ing laku - 7Banjur tututi link Conto JSP: Apa JSP?  Ngerteni kemungkinan ing laku - 8Ing kaca conto tututi link Obyek Implisit -> Eksekusi: Apa JSP?  Ngerteni kemungkinan ing laku - 9Iki. kaca sampeyan bisa ndeleng conto nggunakake obyek didhelikake. Ing ngisor iki ana gambar kaca kanthi panjelasan sing rinci: Apa JSP?  Ngerteni kemungkinan ing laku - 10Coba ganti nilai parameter foonggunakake kolom sing cocog ing kaca kasebut, banjur deleng yen nilai parameter iki uga wis diganti ing bilah alamat. Kaca sing disedhiyakake ora nduweni fungsi akeh, nanging minangka referensi sing apik sing bisa dirujuk ing mangsa ngarep nalika sampeyan kudu ngakses obyek sing didhelikake. Kaca iki ngemot dhaptar obyek sing didhelikake sing bisa diakses. Lan ing ngisor iki, ing tabel, dituduhake carane sampeyan bisa ngakses obyek tartamtu.

Fungsi JSP

Saiki ayo bali menyang kaca sadurunge lan deleng kode sumber kaca "obyek sing didhelikake": Apa JSP?  Ngerteni kemungkinan ing laku - 11Iki:
<%@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>
Yen sampeyan kenal karo HTML, kode sumber kaca kudu cukup jelas kanggo sampeyan. Pay manungsa waé menyang baris iki:
<tr>
  <td>${param.foo}</td>
  <td>${fn:escapeXml(param["foo"])} </td>
</tr>
Ing kene kita ndeleng tag html <tr>lan <td>. Tag kasebut diterusake karo <td>tag JSP, dibungkus nganggo kurung kriting ${ }. Nanging, sok dong mirsani carane nilai parameter URL diumumake foo:
${fn:escapeXml(param["foo"])}
Nilai kasebut metu liwat nggunakake fungsi JSP fn:escapeXml(). Fungsi JSP ngemot sawetara fungsi sing bisa digunakake maneh. Ing kasus iki, XML uwal. teknologi JSP menehi sawetara saka sudhut fungsi kanggo milih saka, uga kemampuan kanggo nggawe fungsi dhewe. Kanggo nggunakake fungsi ing JSP, sampeyan kudu ngimpor perpustakaan cocok kang fungsi ditetepake menyang file JSP.

Tag perpustakaan

Ayo goleki baris liyane kode sumber (baris kapindho) ing ndhuwur:
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
Iki carane perpustakaan tag diimpor. Sintaksis kasebut intuisi. Kita nemtokake sawetara perkara:
  • taglib(tag perpustakaan - tag perpustakaan);
  • url, ngendi perpustakaan iki dumunung;
  • ater-ater (ing kasus iki fn) liwat kang bakal bisa nelpon fungsi ditetepake ing perpustakaan iki.
Ing conto ing ndhuwur, kita ndeleng fungsi ngimpor. Khusus, ing conto kita, kita ngimpor perpustakaan JSTL (JSP Standard Tag Library). JSTL minangka perpustakaan tag standar sing ngemot sakumpulan perpustakaan sing beda karo saben servlet lan implementasi JSP, kalebu Tomcat. Pustaka tag populer liyane yaiku inti, sing bisa diimpor kaya iki:
<%@ taglib uri = "http://java.sun.com/jsp/jstl/core" prefix = "c" %>
Minangka karo fn, notasi ciku opsional lan umum ditampa. Sebutan iki bisa ditemokake meh ing endi wae ing ngendi perpustakaan iki digunakake. Punika conto fungsi saka perpustakaan inti:
<c:out value = "${'<div>'}"/>
Fungsi iki mung bakal ngasilake tag <div>. Fungsi iki wis nindakake XML escaping. Fungsi iki penting saka titik keamanan tampilan, amarga dening outputting Nilai saka variabel langsung, liwat ${variable}, kita mbukak lawang kanggo injeksi script.

JSP Editing

Saiki, kanthi bersenjata kawruh anyar, ayo nyoba ngganti aplikasi demo ing Tomcat. Kanggo nindakake iki, kita bakal nemokake kode sumber kaca iki ing folder ing ngendi wadhah servlet iki diinstal. Berkas iki bisa ditemokake ing alamat ing ngisor iki: ...\Apache Software Foundation\Tomcat 9.0\webapps\examples\jsp\jsp2\el Banjur mbukak file implicit-objects.jsp ing sembarang editor teks Tambah impor perpustakaan inti , banjur gunakake Ayo metu sawetara teks: Apa JSP?  Ngerteni kemungkinan ing laku - 12Saiki ayo refresh kaca obyek sing didhelikake lan deleng owah-owahan sing ditindakake: Apa JSP?  Ngerteni kemungkinan ing laku - 13

Asil

Dadi, kita wis nliti teknologi kaya JSP. We rembugan:
  • apa JSP;
  • Struktur halaman JSP;
  • prosedur kanggo nginstal lan mbukak wadhah servlet Tomcat;
  • aplikasi demo kanggo ngakses obyek sing didhelikake, sing kalebu ing paket distribusi server Tomcat;
  • Fungsi JSP lan perpustakaan tag.

Apa sabanjure?

Kanggo ngamanake materi sampeyan bisa:
  1. Baleni kabeh sing diterangake ing artikel iki.
  2. Coba aplikasi demo liyane sing kalebu karo server Tomcat.
  3. Tulis aplikasi sampeyan dhewe lan pasang menyang wadhah servlet. Minangka panuntun, sampeyan bisa nggunakake artikel Nggawe proyek web prasaja ing IntelliJ Idea Enterprise. Langkah demi langkah, kanthi gambar.
Komentar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION