Java Struts1

  • November 2019
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Java Struts1 as PDF for free.

More details

  • Words: 1,739
  • Pages: 15
AW3 - Desenvolvimento Web com Struts

1

Introdução 1.1

2

3

4

1.1.1

A arquitetura Web J2EE mais simples

1.1.2

Model-View-Controller (M.V.C.)

Introdução ao Struts

8 8 10

12

2.1

Download e Instalação do Struts

13

2.2

Primeiro aplicativo com Struts

14

2.2.1

Vantagens do Struts

17

2.2.2

Formulários HTML com Struts Front Controller

18

2.2.3

Struts Front Controller

19

2.2.4

Struts Action

20

2.2.5

struts-config.xml

21

2.2.6

Página de resultados

21

2.2.7

Resumo do funcionamento com Struts

22

2.2.8

Estrutura e Organização do Projeto

23

2.2.9

Build

24

2.2.10

Deployment

26

2.2.11

Laboratório 1

27

Modelo de Componentes do Struts

30

3.1

Camada Controller

31

3.2

Camada View

33

3.3

Camada Model

34

3.4

O XML struts-config na íntegra

35

Componentes Controller do Struts 4.1

ActionServlet

38 39

4.1.1

ActionServlet Internamente

41

4.1.2

Configurando ActionServlet

43

4.1.3

Estendendo ActionServlet

44

4.2

5

Arquiteturas Web com J2EE

6

RequestProcessor

45

4.2.1

Configurando o RequestProcessor

46

4.2.2

RequestProcessor Internamente

47

4.2.3

Criando um RequestProcessor customizado

49

4.3

Laboratório 2

51

4.4

Modularizando um aplicativo Struts

52

4.5

Laboratório 3: Módulos com Struts

57

Action

60

5.1

Action Internamente

64

5.2

Configurando Actions

65

5.3

Tratamento de erros com Actions

68

5.3.1

ExceptionHandler

71

5.3.2

global-exceptions

73

Índice 5.4

ActionForward

5.4.1 5.5

6

global-forward

Laboratório 4: Exception e Forwards

ActionForm

74 75 77

80

6.1

Introdução

81

6.2

Laboratório 5 Capturando e manipulando dados com ActionForm

85

6.3

Validação server-side

86

6.4

Reseting ActionForm

88

6.5

ActionForm com HTML Tag Library

89

6.5.1



90

6.5.2



90

6.5.3



90

6.5.4

e

91

6.5.5



91

6.5.6



92

6.5.7

Outros Tags HTML

93

6.5.8

Exemplo de formulário completo com Struts HTML Library

95

6.6

Dynamic ActionForm

6.7

Jakarta BeanUtils

7

Bean e Logic Tag Libraries 7.1

102

106 107

7.1.1

Tabela de Tags Bean

108

7.1.2



109

7.1.3



109

7.1.4



110

7.1.5



110

7.1.6



110

7.2

8

Bean Tag Library

98

Logic Tag Library

111

7.2.1

Tabela de Tags Logic

112

7.2.2



113

7.2.3



114

7.2.4

e

114

7.2.5



115

7.2.6



115

Internacionalização

118

8.1

Conceitos básicos

119

8.2

Internacionalizando JSP’s com Custom Tags

125

8.3

ActionError e Internacionalização

126

8.4

Laboratório 6: estudo de caso – parte I

128

9

Synchronized Tokens 9.1

2

Tokens Copyright 2005 Globalcode – The Developers Company, todos os direitos reservados

130 131

AW3 - Desenvolvimento Web com Struts 9.1.1

Exemplo Completo de Synchronized Tokens

10 Frameworks Adicionais: Tiles

133

138

10.1

Tiles

141

10.2

Laboratório 7: estudo de caso – parte II

145

11 Apêndice 11.1 11.1.1

Log4J Log4J no JBoss

148 149 151

11.2

Validator

155

11.3

Configurando Eclipse para os laboratórios

160

11.4

Anexo: DTD do Struts 1.2

167

Copyright 2005 Globalcode – The Developers Company, todos os direitos reservados

3

CAPÍTULO

1

Introdução 1.1Arquiteturas Web com J2EE

1 Introdução

1 Introdução

Anotações

6

Copyright 2005 Globalcode – The Developers Company, todos os direitos reservados

AW3 - Desenvolvimento Web com Struts

O Struts é um projeto open-source criado pelo consórcio Jakarta e tem como objetivo principal oferecer facilidade de desenvolvimento de aplicativos Web com padrão Java 2 Enterprise Edition. Oferece uma série de serviços de infra-estrutura, tais como:

Controle de fluxo de requisições HTTP; Internacionalização; Formulários; Validação.

Sendo o Struts considerado um framework de desenvolvimento, o que o diferencia de uma API convencional?

Uma API ou biblioteca de classes, você simplesmente utiliza fazendo chamadas às suas classes e interfaces. Em um framework de desenvolvimento, além da utilização de classes e interfaces, você também pode estender suas funcionalidades e alterar comportamentos. Tudo isso é possível através de um modelo de trabalho, framework.

Um framework tipicamente oferece serviços técnicos “automatizáveis”, como por exemplo:

Persistência de dados em bancos SQL; Log de aplicativos; E no caso do Struts, aplicativos Web MVC de alta qualidade.

A utilização dos serviços oferecidos pelo framework é feita através da extensão de classes, implementação de interfaces, utilização de Tag Libraries (quando Web) e criação de documentos de configuração, tipicamente XML.

Um termo muito popular atualmente é “Inversão de Controle” ou Inversion of control (IOC). Esta terminologia técnica refere-se ao fato que dentro de um framework, tipicamente implementamos métodos que não chamamos por nossa iniciativa.

Por exemplo, em alguns frameworks de persistência implementamos um método para gravar um objeto em banco SQL, mas não escrevemos nenhuma classe para chamá-lo, pois este método será acionado pelo framework. Isto é inversão de controle, você implementa o método, mas quem o chama é o framework.

Anotações

Copyright 2005 Globalcode – The Developers Company, todos os direitos reservados

7

1 Introdução

1.1

Arquiteturas Web com J2EE

Basicamente, podemos caracterizar uma aplicação Web como toda e qualquer aplicação que tenha como elementos constituintes de sua arquitetura: - um cliente, uma requisição sob o protocolo http e um servidor (Web Server) que seja capaz de receber a requisição, processá-la e, em seguida, disparar (devolver) uma resposta ao cliente.

Atualmente podemos desenvolver aplicativos Web de diversas formas. Considerando principalmente o uso de uma linguagem orientada a objetos como Java, podemos modelar nossas classes de n maneiras. O modelo físico de servidores e modelagem lógica de classes determina uma arquitetura.

1.1.1

A arquitetura Web J2EE mais simples

A arquitetura Web J2EE mais simples e conhecida no mercado é a aquela baseada apenas em JSPs, com servidor HTTP e Web Container acoplados, como Jakarta Tomcat. Também é conhecida como JSP Model One.

Nessa arquitetura, toda requisição para processamento de conteúdo é feita apenas com JSP e Javabeans, responsáveis por disponibilizar saídas (resultados) apresentadas aos clientes. Tipicamente encontramos código JDBC dentro dos JSPs.

Anotações

8

Copyright 2005 Globalcode – The Developers Company, todos os direitos reservados

AW3 - Desenvolvimento Web com Struts

Esta arquitetura favorece determinadas qualidades da solução, como por exemplo:

Facilidade do desenvolvimento inicial; Simplicidade de uso, que facilita contratação de novos desenvolvedores; Custo de desenvolvimento menor; Prazo exigido menor para aplicativos menores.

Porém, desfavorece uma série de outras características, cada vez mais exigidas em desenvolvimento:

Baixo reuso de código; Dificuldade em efetuar mudanças; Dificuldade de estender; Manutenção complexa quando o aplicativo se torna maior; Conseqüente aumento no custo de manutenção, extensão e propriedade.

Com a orientação a objetos, técnicas de modelagem conhecidas (design patterns, por exemplo) somadas a um mínimo de planejamento em relação ao aplicativo, é possível melhorar, e muito, a qualidade da solução, porém, cabe ao arquiteto da solução analisar a dimensão do projeto, os recursos humanos e técnicos disponíveis, assim como, prazo e verba, para poder tomar a decisão sobre qual é a arquitetura correta para dado cenário.

Anotações

Copyright 2005 Globalcode – The Developers Company, todos os direitos reservados

9

1 Introdução

1.1.2

Model-View-Controller (M.V.C.)

O padrão de arquitetura M.V.C. é o mais utilizado atualmente para soluções Web J2EE e está presente nas principais soluções J2EE de grandes empresas. Este padrão determina a divisão do aplicativo em três principais partes:

Model: representa as entidades, operações e lógica do negócio; View: representa visualizações utilizadas pelos usuários para interagir com os dados e processamento; Controller: representa a camada que recepciona as requisições, aciona o modelo e responde para o usuário através do despacho para uma view.

Sem dúvida alguma, podemos afirmar que as aplicações desenvolvidas utilizando o padrão MVC são capazes de crescer sem qualquer dificuldade. A complexidade, ou o que chamamos de responsabilidade de componentes, é dividida de maneira mais inteligente, propiciando fraco acoplamento entre camadas, garantindo ao desenvolvedor e ao projeto maior flexibilidade para mudanças na arquitetura do software. A troca de componentes comuns (Javabeans) da camada de negócio por componentes J2EE - Enterprise Javabeans (EJB) é um exemplo típico

O Struts aplica fortemente o padrão MVC sob a arquitetura J2EE, o que faz com que ele tenha grande credibilidade e flexibilidade para desenvolvimento de aplicações Web em Java.

Veremos mais adiante, em detalhes, outros padrões criados para o desenvolvimento de solução Web com Java e as estratégias de implementação adotadas pelo Struts.

Anotações

10

Copyright 2005 Globalcode – The Developers Company, todos os direitos reservados

CAPÍTULO

2

Introdução ao Struts Download e Instalação do Struts Primeiro aplicativo com Struts

2 Introdução ao Struts

2 Introdução ao Struts

Anotações

12

Copyright 2005 Globalcode – The Developers Company, todos os direitos reservados

AW3 - Desenvolvimento Web com Struts

2.1

Download e Instalação do Struts

No site http://struts.apache.org/ você encontrará o Struts para download no formato binário. Trata-se apenas de um arquivo compactado que você deve descompactá-lo no diretório de preferência.

No diretório lib, encontramos os arquivos principais do Struts, a começar pelo próprio struts.jar. Vamos estudar mais adiante cada biblioteca deste diretório e seus arquivos de configuração.

No diretório webappps, o Struts disponibiliza um aplicativo Web J2EE chamado struts-documentation.war, que é simplesmente a cópia da documentação do site do Struts para consultas off-line. Também encontramos no diretório webapps exemplos diversos de uso de Struts.

Anotações

Copyright 2005 Globalcode – The Developers Company, todos os direitos reservados

13

2 Introdução ao Struts

2.2

Primeiro aplicativo com Struts

Vamos imaginar um caso simples de desenvolvimento para aplicarmos o Struts. Desejamos uma funcionalidade que nos retorne, informando um determinado ano, se o mesmo é bissexto ou não. Conforme discutimos anteriormente, há diferentes formas para desenvolvermos a solução com J2EE:

1. Sem Struts, podemos utilizar uma página HTML que receba o ano informado em um formulário e envie por GET ou POST para um outro JSP processar o resultado. Nesta abordagem temos uma arquitetura centralizada em JSPs:

Para esta arquitetura nosso trabalho seria o de desenvolver:

1. Um HTML com formulário de entrada do ano; 2. VerificarAno.jsp.

Anotações

14

Copyright 2005 Globalcode – The Developers Company, todos os direitos reservados

AW3 - Desenvolvimento Web com Struts 2. Para melhorar a arquitetura, podemos aplicar os patterns M.V.C., Front-Controller, Action e Factory:

Esta abordagem é mais elaborada que a anterior, porém, teríamos que desenvolver:

1. Um HTML com formulário de entrada do ano; 2. Um Java Servlet Front Controller; 3. Uma classe ActionFactory; 4. Uma interface para definir o padrão de Action; 5. Uma classe com a implementação VerificaAnoAction; 6. A página Resultado.jsp.

Apesar de tecnicamente interessante, o trabalho inicial de desenvolvimento é grande. Todavia, este investimento pode ser compensado quando nosso sistema crescer e precisarmos incluir novas funcionalidades. Teremos uma maior organização no aplicativo, que facilitará a adição de comportamentos genéricos necessários em todas as funcionalidades, como logging, segurança, debug, internacionalização, etc.

Anotações

Copyright 2005 Globalcode – The Developers Company, todos os direitos reservados

15

Related Documents

Java Struts1
November 2019 2
Java Java
June 2020 44
Java
November 2019 24
Java
November 2019 26
Java
December 2019 27