6.1 Ano ang JavaBeans

Nasa huling bahagi ng dekada 90, nagsimulang aktibong gamitin ang wikang Java para sa malalaking aplikasyon ng server, kung saan ang bilang ng mga klase ay sinusukat sa sampu at daan-daang libo. Noon ay dumating ang ideya na gawing pamantayan ang hitsura ng mga bagay sa Java.

Ang buong wika ng Java ay hindi hinawakan, upang hindi ito maalis sa kakayahang umangkop. Well, backwards compatibility at lahat ng iyon. Pagkatapos ay bumuo sila ng ilang pamantayan para sa mga bagong henerasyong Java object at tinawag ang mga naturang object na Java Beans. Pinangalanan ang Java sa isang sikat na brand ng kape, kaya literal na isinalin ang Java Beans sa "coffee beans".

Ang pinakamahalagang pamantayan ay:

  • Ang pag-access sa mga panloob na larangan ng klase ay dumadaan sa getProperty().
  • Ang pagsusulat ng data sa mga field ng klase ay dumadaan sa setProperty(value).
  • Ang klase ay dapat magkaroon ng pampublikong parameterless constructor .
  • Ang klase ay dapat na serializable.
  • Ang klase ay dapat magkaroon ng equals(), hashCode()at mga pamamaraan na na-override toString().

Ang diskarte na ito ay ginawa ang mga application na hindi gaanong magkakaugnay. Palaging malinaw:

  • kung paano lumikha ng isang bagay - mayroong isang pampublikong default na tagabuo;
  • kung paano makuha/itakda ang halaga ng ari-arian;
  • kung paano maglipat/mag-save ng isang bagay (ginagamit namin ang serialization);
  • paano ihambing ang mga bagay (gamit ang equals() at hashCode());
  • kung paano magpakita ng impormasyon tungkol sa bagay sa log (gamitin ang toString).

Ngayon ito ay aktwal na ang pamantayan ng industriya, ngunit ito ay dating isang bagong trend. Mukhang ganito na ang pagsusulat ng lahat, bagama't kung naaalala mo ang HttpClient at ang Mga Tagabuo nito, makikita mo na ang bagong pamantayan ay mahirap para sa isang tao.

Ang ganitong mga bagay ay malawakang ginagamit kung saan ang kanilang pangunahing semantic load ay imbakan ng data. Halimbawa, sa mga GUI, database, at mga pahina ng JSP.

6.2 JSP at JavaBeans

Isa sa mga dahilan para sa JSP ay na maaari itong i-outsource sa mga front-end na developer. At ano? Mayroon kang taong nakakaintindi ng HTML, hayaan siyang magsulat ng JSP. Sinusulat ng mga programmer ng Java ang kanilang bahagi, isinulat ng mga front-end na developer ang kanila - lahat ay maayos.

At lahat ay maayos hanggang sa ang mga front-end na developer ay kailangang maunawaan ang nakasulat na Java code na naka-embed sa JSP. O, mas masahol pa, sumulat ng ganoong code sa iyong sarili.

Ang mga programmer ng Java ay hindi rin nasiyahan dito. Well, pray tell, sinong mga layout designer ang backend developer? Oo, wala silang maisulat maliban sa mga script. Oo, at ang buong paradigm ng programming ay nagsasabi na ang paghahalo ng iba't ibang mga wika sa isang file ay isang masamang anyo.

Pagkatapos ay lumabas ang ideya na sinasabi nilang bigyan ang mga front-end na developer ng pagkakataon na magtrabaho sa mga bagay ng Java, tulad ng sa HTML code. Ang bawat HTML tag ay isa ring object na may sariling mga field, bakit hindi gumana sa Java objects sa katulad na paraan?

Wala pang sinabi at tapos na. Nagdagdag ng mga espesyal na tag at umalis na kami.

Paggawa ng bagay:

<jsp:useBean id="Name" class="Object type" scope="session"/>

Ang utos na ito ay lumikha ng isang bagay na may uri objectat ilagay ito sa sessionilalim ng pangalan Name.

Maaaring maimbak ang mga bagay sa isa sa apat na tindahan: application (global), session, kahilingan, at page. Posible rin na magtakda ng isang pag-aari ng mga naturang bagay:

<jsp:setProperty name="Name" property="propName" value="string constant"/>

Maaari mong makuha ang pag-aari ng mga bagay na tulad nito:

<jsp:getProperty name="Name" property="propName"/>

Isang halimbawa ng paggamit ng mga tag:

<body>
    <center>
        <h2>Using JavaBeans in JSP</h2>
        <jsp:useBean id = "test" class = "com.example.TestBean" />
        <jsp:setProperty name = "test" property = "message" value = "Hello JSP..." />
        <p> What-to do important</p>
        <jsp:getProperty name = "test" property = "message" />
    </center>
   </body>