JSP – JavaBeans Scope – Session – Java

Publicado: 2 de novembro de 2014 em Java

O escopo de um objeto descreve a disponibilidade de sua abrangência e quem tem acesso a ele. Por exemplo, se um objeto é definido para ter alcance a uma pagina página, então ele está disponível apenas durante a duração da solicitação atual nessa página antes de ser destruído pelo contêiner. Neste caso, somente a página atual tem acesso a esses dados, e ninguém mais pode lê-lo. No outro extremo da escala, se um objeto tem espaço de aplicação, em seguida, qualquer página pode utilizar os dados porque ele estará disponível durante toda a aplicação, o que significa até que o contêiner seja destruído.

Escopos de um JavaBean

  • Page: Os objetos com escopo de página são acessíveis apenas dentro da página em que são criados.
  • Request: Os objetos com escopo de solicitação são acessíveis a partir de páginas que processão o o mesmo pedido em que eles foram criados.
  • Session: Os objetos com escopo de sessão são acessíveis a partir de páginas processadas que estão na mesma sessão em que eles foram criadas.
  • Application: Os objetos com escopo de aplicação são acessíveis a partir de páginas JSP que residem na mesma aplicação. Isso cria um objeto global que está disponível para todas as páginas.

 

Criando uma aplicação com o escopo de Sessão

Caso você não defina um escopo quando você declara o uso de um Bean em uma pagina JSP, o escopo padrão estabelecido será por pagina, ou seja apenas a pagina no qual o Bean pertence poderá acessar os valores das propriedades nelas modificadas.

Quando utilizamos o escopo por sessão os Beans funcionam de certo modo como objetos estáticos ou seja toda a sessão poderá acessar os mesmos valores de suas propriedades não importa a quantidade de paginas existentes na aplicação que utilizam o mesmo Bean. Se aberto uma nova sessão o Bean então será  inicializado de acordo com seus valores no construtor do objeto.

1 – Crie uma aplicação Web com duas paginas JSP chamadas de index.jsp e index2.jsp. Crie um classe chamada de MeuBean.java e utilize os códigos abaixo em cada respectivo arquivo. Note que estamos utilizando o método que altera a propriedade Setter do Bean com parâmetros. Assim que você compilar sua aplicação o construtor do Bean inicializará o valor da propriedade cor do texto do Box como vermelho (Red), utilize manualmente o parâmetro para mudar a cor do texto para azul (Blue) dentro do navegador do Eclipse cujo nos propicia uma sessão única:

?cor=blue
Session - parâmetro cor

Session – parâmetro cor

2 – Apague o parâmetro e mude manualmente a URL do navegador do Eclipse para a index2.jsp, você notará que o Bean manteve a cor da propriedade que definimos na pagina anterior, isto é devido estarmos na mesma sessão, deste modo o construtor da classe não reinicializou o valor da propriedade cor:

Session - Página 2

Session – Página 2

3 – Para abrir outra sessão você precisa somente copiar a URL da pagina 2 do navegador do Eclipse e colar no seu Browser, você verá que quando outra sessão da aplicação web é inicializada o Bean é inicializado novamente. Você pode agora brincar com a aplicação no navegador do Eclipse e no navegador externo, para entender melhor como funciona os JavaBeans por sessão:

Sessão - Firefox

Sessão – Firefox

Exemplo:

Neste exemplo criamos duas paginas JSP e um JavaBean que interage entre as paginas pela sessão do navegador, você poderá brincar com as propriedades de cores no texto da pagina para entender como é utilizado o recurso de sessão de um objeto Bean utilizando o navegador do Eclipse e um navegador externo ao mesmo tempo.

Java

package org.desenvolvimento.aberto;

public class MeuBean {

  // Declara atributo
  private String cor;

  // Construtor da classe
  public MeuBean()
  {
	  cor = "Red";
  }

  // Método Getter
  public String getCor()
  {
	  return cor;
  }

  // Método Setter
  public void setCor(String cor)
  {
	  this.cor = cor;
  }

}

JSP – index.jsp

<html>
<head>
<title>Desenvolvimento Aberto</title>

<!-- Inicializa o JavaBean -->
<jsp:useBean id="meubean" class="org.desenvolvimento.aberto.MeuBean" scope="session" />
<style type="text/css">

div {
    background-color: lightgrey;
    width: 300px;
    padding: 25px;
    border: 25px solid black;
    margin: 25px;
}

</style>
</head>
<body>

	<h1>JavaBeans e Páginas JSP</h1>

	<h2>Escopo: Session - Pagina 1 </h2>

	<h4>Este é o valor da cor:</h4>

	<jsp:setProperty name="meubean" property="cor" param="cor" /> 

	<div style="color: <jsp:getProperty name="meubean" property="cor" />">
	Desenvolvimento Aberto <br> Página 1</div>

	<p>
		<jsp:getProperty name="meubean" property="cor" />
	</p>

</body>
</html>

JSP – index2.jsp

<html>
<head>
<title>Desenvolvimento Aberto</title>

<!-- Inicializa o JavaBean -->
<jsp:useBean id="meubean" class="org.desenvolvimento.aberto.MeuBean" scope="session"/>
<style type="text/css">

div {
    background-color: lightgrey;
    width: 300px;
    padding: 25px;
    border: 25px solid black;
    margin: 25px;
}

</style>
</head>
<body>

	<h1>JavaBeans e Páginas JSP</h1>

	<h2>Escopo: Session - Pagina 2 </h2>

	<h4>Este é o valor da cor:</h4>

	<jsp:setProperty name="meubean" property="cor" param="cor" /> 

	<div style="color: <jsp:getProperty name="meubean" property="cor" />">
	Desenvolvimento Aberto <br> Página 2</div>

	<p>
		<jsp:getProperty name="meubean" property="cor" />
	</p>

</body>
</html>
Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

w

Conectando a %s