Obrigado por visitar a devmedia.com.br!

Precisamos de você para divulgar nossos vídeos e cursos gratuitos para a comunidade.

Se você gosta da devmedia.com.br por favor dê-nos o seu clique para o Google+ e ajude outros desenvolvedores ao redor do mundo.



Obrigado por seu apoio!
Equipe DevMedia

sair sem compartilhar (x)
DevMedia - asp.net, Java, Delphi, SQL e web Design, tudo em um só lugar!
Bem vindo a DevMedia!
LOGIN:     SENHA:

  #Este é um post fechado

Este post está disponível para assinantes da Java Magazine DIGITAL ou para quem possui Créditos DevMedia. Clique aqui para saber mais sobre como abrir este post!



Artigo Java Magazine 25 - A Prática dos Portlets

Artigo publicado pela Java Magazine.

BRK##: 27 - 26
Esse artigo faz parte da revista Java Magazine edição 25. Clique aqui para ler todos os artigos desta edição

 

 

Atenção: por essa edição ser muito antiga não há arquivo PDF para download.Os artigos dessa edição estão disponíveis somente através do formato HTML.

 

A Prática dos Portlets

Parte 1: Visão Geral, Criação e Execução

Conhecá e aprenda a criar Portlets, que podem transformar um site num “desktop virtual” com aplicações web modulares, integradas e altamente personalizadas

Há algum tempo já convivemos com portais web: sites que pretendem ser uma “âncora” ou um “ponto de acesso” para quem está entrando na rede (como UOL, Terra, Yahoo etc.). Em comum, esses sites agregam informações e serviços, de forma que a maior parte das operações que o usuário queira fazer possa ser realizada dentro do portal, ou pelo menos a partir dele. Como exemplo, partindo de uol.com.br o usuário pode verificar notícias, fazer compras, pesquisar arquivos de revistas, entrar em salas de bate-papo e muitas outras coisas – tudo com um único login de assinante.

A nova geração de portais avança esse conceito para a criação de “desktops virtuais”, disponibilizando aplicativos e informações para o usuário de maneira personalizada. Por exemplo:

§       Em uma empresa podem existir vários aplicativos web disponibilizados na intranet. Em alguns casos, cada aplicativo necessita de um login próprio e é acessado por uma URL específica. Já num portal, todos os aplicativos estão alojados dentro da página principal, sendo normalmente organizados por abas e acessíveis a partir de um único login.

§       Em um site bancário, cada cliente pode querer configurar sua página inicial (mostrada pelo site logo após o login) de acordo com as suas necessidades: um cliente pode escolher visualizar dados referentes às suas aplicações, e outro pode preferir informações sobre seu saldo atual e pagamentos agendados.

 

Dessa forma, podemos definir algumas características fundamentais a todos os portais:

§      Login único – Uma vez que o usuário realiza o login no portal, ele passa a ter acesso a todos os aplicativos e conteúdos (notícias, boletins e informações em geral) disponíveis sem necessidade de logins adicionais.

§      Personalização – Um portal disponibiliza um conjunto de aplicativos e conteúdos para seus usuários, porém cada usuário pode selecionar em quais destes está interessado e como deverão ser dispostos na tela.

§      Gerenciamento – Um administrador pode facilmente criar e atualizar tanto os conteúdos quanto os aplicativos.

 

É necessário, portanto, uma API e um conceito (ou paradigma) para o desenvolvimento dos aplicativos que serão disponibilizados dentro de um portal. Em Java, essa API e esse conceito são conhecidos como Portlets, que são especificados através da JSR-168.

Como acontece com várias JSRs, cada fabricante incorpora nas suas implementações algumas funcionalidades adicionais que tornam o sistema incompatível com seus concorrentes. Aqui optei por utilizar somente as funcionalidades especificadas na JSR-168, garantindo que as informações descritas possam ser aplicadas a qualquer gerenciador de portais Java compatível com a especificação de Portlets, como o Jetspeed 2 da Apache (portals.apache.org/jetspeed-2), que é utilizado para os exemplos), uPortal, Liferay, Exo, entre outros (veja links).

O que são portlets?

Voltando ao exemplo do site bancário, cada aplicativo que o usuário opta por mostrar na sua página, como saldo, posição da carteira, pagamentos agendados etc., é chamado de Portlet. Mais precisamente, um portlet é um componente web Java gerenciado por um Portlet Container, responsável pela geração dinâmica de um fragmento de página.

Um Portlet Container é um componente do portal, responsável por gerenciar e invocar os portlets. O portal é responsável pelas tarefas de gerência e agregação dos fragmentos dos portlets e dos conteúdos “gerais”, como notícias, avisos e outras informações que são apresentadas na forma de fragmentos estáticos dentro da página e configuradas por ferramentas de gerência de conteúdo. Por exemplo, o Jetspeed e o uPortal (uportal.org) são portais, com ferramentas próprias de gerência e configuração de conteúdos; porém ambos utilizam o projeto Pluto (portals.apache.org/pluto) como Portlet Container.

A Figura 1 mostra um exemplo de página de portal com dois portlets: um para visualização de artigos (o exemplo apresentado adiante) e outro para visualização de sites externos, mostrando um pedaço da página do site da Java Magazine.

Uma mudança envolvida no desenvolvimento de portlets é a questão de como o site deve ser encarado do ponto de vista da geração dinâmica do conteúdo. Portlets normalmente são desenvolvidos utilizando servlets ou páginas JSP. A diferença está na forma como os servlets/JSPs são desenvolvidos: enquanto que no método “tradicional” eles são responsáveis pela geração da página inteira, nos portlets são responsáveis somente pela criação dos fragmentos de página relativos à sua área (marcadas em vermelho na Figura 1). Todas as demais áreas são geradas pelo portal, que incluirá na página o fragmento gerado por cada portlet.

Assim, a primeira regra para um portlet é que ele não deve utilizar tags que possam invalidar a página gerada pelo portal, ou que interfiram nos fragmentos gerados por outros portlets. Especificamente, a versão 1.0 da JSR de Portlets proíbe a utilização das tags base, body, frame, frameset, head, html e



ATENÇÃO! A exibição deste artigo foi interrompida.


  #Este é um post fechado

Este post está disponível para assinantes da Java Magazine DIGITAL ou para quem possui Créditos DevMedia. Clique aqui para saber mais sobre como abrir este post!







    0 COMENTÁRIO

[Fechar]

Este post é fechado - você precisa ter acesso ao post para incluir um comentário.


Nenhum comentário foi postado - seja o primeiro a comentar!



Autor
Alexandre Denes Dos Santos

é Bacharel em Ciência da Computação e Mestre em Sistemas Inteligentes pela PUCPR. Atualmente trabalha como professor dos cursos de Graduação em Análise de Sistemas, Sistemas de Informação, Engenharia da Computação e Ciência da Computação da PUCPR. Alexandre é membro do Corpo Editorial da Java ...


Space do autor
Estatísticas
Favorito:
Comentários:
Feedback:
Utilidade:
0   0
[Fechar]

Você precisa estar logado para dar um feedback.

Clique aqui para efetuar o login
[Fechar]
Este post está disponível para assinantes da Java Magazine DIGITAL ou para quem possui Créditos DevMedia.

  Conheça os planos de créditos DevMedia e visualize esse post agora mesmo!

Plano conveniência – Neste plano este post custa R$ 4,90 (Compre agora)
Esse plano permite que você compre somente um post, pagando por ele seu preço sem desconto.

Plano ocasional: Aqui este post custa: R$ 1,96 (assinante) ou R$ 2,45 (não-assinante)
Este plano é ideal para quem tem interesse em mais de um post. Você compra um mínimo de R$ 50,00 em créditos e ganha, em média, 50% de desconto no preço do post. Compre Créditos agora!

Assinatura de Créditos (Plano econômico) – Aqui este post custa R$ 1,47
Este plano é ideal para quem tem interesse em muitos posts. Com esse plano você compra R$ 180,00 em créditos e ganha, em média, 80% de desconto no preço do post. Assine este plano agora!

> Saiba mais sobre o Sistema de Créditos DevMedia
web-03
DevMedia  |  Anuncie  |  Fale conosco
Hospedagem web por Porta 80 Web Hosting
2012 - Todos os Direitos Reservados a web-03