6.1 O que são JavaBeans

Já no final dos anos 90, a linguagem Java começou a ser usada ativamente para grandes aplicativos de servidor, onde o número de classes é medido em dezenas e centenas de milhares. Foi aí que surgiu a ideia de padronizar a aparência dos objetos Java.

Toda a linguagem Java não foi tocada, para não privá-la de flexibilidade. Bem, compatibilidade com versões anteriores e tudo isso. Em seguida, eles desenvolveram uma série de critérios para objetos Java de nova geração e chamaram esses objetos de Java Beans. Java recebeu o nome de uma marca popular de café, então Java Beans se traduz literalmente como "grãos de café".

Os critérios mais importantes foram:

  • O acesso aos campos internos da classe passa pelo arquivo getProperty().
  • A gravação de dados em campos de classe passa pelo arquivo setProperty(value).
  • A classe deve ter um construtor público sem parâmetros .
  • A classe deve ser serializável.
  • A classe deve ter os métodos equals()e substituídos .hashCode()toString()

Essa abordagem tornou as aplicações menos coerentes. Sempre claro:

  • como criar um objeto - existe um construtor padrão público;
  • como obter/definir o valor da propriedade;
  • como transferir/salvar um objeto (usamos serialização);
  • como comparar objetos (usando equals() e hashCode());
  • como exibir informações sobre o objeto no log (use toString).

Agora é realmente o padrão da indústria, mas já foi uma nova tendência. Parece que todo mundo já escreve assim, embora se você se lembrar do HttpClient e seus Builders, verá que o novo padrão é difícil para alguém.

Tais objetos são amplamente utilizados onde sua principal carga semântica é o armazenamento de dados. Por exemplo, em GUIs, bancos de dados e páginas JSP.

6.2 JSPs e JavaBeans

Uma das razões para o JSP era que ele poderia ser terceirizado para desenvolvedores front-end. E o que? Você tem uma pessoa que entende de HTML, deixe-a escrever JSP. Os programadores Java escrevem sua parte, os desenvolvedores front-end escrevem a deles - está tudo bem.

E estava tudo bem até que os desenvolvedores front-end tivessem que entender o código Java escrito embutido no JSP. Ou, pior ainda, escreva esse código você mesmo.

Os programadores Java também não ficaram satisfeitos com isso. Bem, por favor, diga, quais designers de layout são desenvolvedores de back-end? Sim, eles não podem escrever nada, exceto scripts. Sim, e todo o paradigma de programação diz que misturar linguagens diferentes em um arquivo é uma má forma.

Então surgiu a ideia de que eles dizem dar aos desenvolvedores front-end a oportunidade de trabalhar com objetos Java, como com código HTML. Cada tag HTML também é um objeto com seus próprios campos, por que não trabalhar com objetos Java de forma semelhante?

Dito e feito. Adicionado tags especiais e lá vamos nós.

Criação de objeto:

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

Este comando criou um objeto com o tipo objecte o colocou sessionsob o nome Name.

Os objetos podem ser armazenados em um dos quatro armazenamentos: aplicativo (global), sessão, solicitação e página. Também foi possível definir uma propriedade de tais objetos:

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

Você pode obter a propriedade de tais objetos como este:

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

Um exemplo de uso de tags:

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