6.1 Vad är JavaBeans

Redan i slutet av 90-talet började Java-språket användas aktivt för stora serverapplikationer, där antalet klasser mäts i tiotals och hundratusentals. Det var då idén att standardisera utseendet på Java-objekt kom upp.

Hela Java-språket berördes inte, för att inte beröva det flexibiliteten. Tja, bakåtkompatibilitet och allt det där. Sedan utvecklade de ett antal kriterier för nya generationens Java-objekt och kallade sådana objekt för Java Beans. Java är uppkallad efter ett populärt märke av kaffe, så Java Beans översätts bokstavligen till "kaffebönor".

De viktigaste kriterierna var:

  • Tillgång till klassens interna fält går via getProperty().
  • Att skriva data till klassfält går genom setProperty(value).
  • Klassen måste ha en offentlig parameterlös konstruktor .
  • Klassen måste kunna serialiseras.
  • Klassen måste ha metoderna equals(), hashCode()och åsidosatta toString().

Detta tillvägagångssätt gjorde ansökningarna mindre sammanhängande. Alltid tydligt:

  • hur man skapar ett objekt - det finns en offentlig standardkonstruktor;
  • hur man får/ställer in fastighetsvärdet;
  • hur man överför/spara ett objekt (vi använder serialisering);
  • hur man jämför objekt (med equals() och hashCode());
  • hur man visar information om objektet i loggen (använd toString).

Nu är det faktiskt branschstandard, men det var en gång en ny trend. Det verkar som att alla redan skriver så här, även om du kommer ihåg HttpClient och dess Builders kan du se att den nya standarden är svår för någon.

Sådana objekt används ofta där deras huvudsakliga semantiska belastning är datalagring. Till exempel i GUI, databaser och JSP-sidor.

6.2 JSP:er och JavaBeans

En av anledningarna till JSP var att den kunde outsourcas till frontend-utvecklare. Och vad? Du har en person som förstår HTML, låt honom skriva JSP. Java-programmerare skriver sin del, front-end-utvecklare skriver sin - allt är bra.

Och allt var bra tills front-end-utvecklarna var tvungna att förstå den skrivna Java-koden inbäddad i JSP. Eller, ännu värre, skriv sådan kod själv.

Java-programmerare var inte heller nöjda med detta. Tja, be berätta, vilka layoutdesigners är backend-utvecklare? Ja, de kan inte skriva något annat än manus. Ja, och hela programmeringsparadigmet säger att det är en dålig form att blanda olika språk i en fil.

Då kom idén att de säger att ge front-end-utvecklare möjlighet att arbeta med Java-objekt, som med HTML-kod. Varje HTML-tagg är också ett objekt med sina egna fält, varför inte arbeta med Java-objekt på liknande sätt?

Inte tidigare sagt än gjort. Lade till speciella taggar och så kör vi.

Objektskapande:

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

Detta kommando skapade ett objekt med typen objectoch lade in det sessionunder namnet Name.

Objekt kan lagras i en av fyra butiker: applikation (global), session, begäran och sida. Det var också möjligt att ställa in en egenskap för sådana objekt:

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

Du kan få egenskaperna för sådana objekt som detta:

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

Ett exempel på användning av taggar:

<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>