A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI) Especialista : Sistema distribuídos

Apresentações semelhantes


Apresentação em tema: "Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI) Especialista : Sistema distribuídos"— Transcrição da apresentação:

1 Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI) Especialista : Sistema distribuídos (UFBA)(arleys.castro@gmail.com)arleys.castro@gmail.com Java: Struts Boa parte do framework Struts foi desenvolvido entre maio de 2000 e junho de 2001, quando sua primeira versão foi lançada. A responsabilidade esteve com uma equipe de aproximadamente 30 desenvolvedores, sendo que Craig R. MacClanahan foi o primeiro arquiteto e desenvolvedor do framework. Após quatro anos de estrada, o Struts tornou-se padrão de mercado para aplicações web em java. Atualmente, vários frameworks são apontados como substitutos para o Struts, como o Java Server Faces, de responsabilidade do próprio Craig MacClanahan. No entanto, a procura por profissionais com conhecimento neste framework deve continuar por muitos anos.

2 Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI) Especialista : Sistema distribuídos (UFBA)(arleys.castro@gmail.com)arleys.castro@gmail.com Frameworks :: Java: Struts Um framework pode ser entendido como sendo uma aplicação reutilizável e semi-completa que pode ser especializada para produzir softwares personalizados. As aplicações construídas com o apoio de um framework são, de um modo geral, bastante semelhantes. Os desenvolvedores que trabalham em aplicações eletrônicas convencionais estão acostumados a kits de ferramentas e a ambientes de desenvolvimento que aproveitam a igualdade entre as aplicações. Os frameworks da aplicação fornecem uma base comum reutilizável podendo servir como fundação para um produto específico.

3 Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI) Especialista : Sistema distribuídos (UFBA)(arleys.castro@gmail.com)arleys.castro@gmail.com Frameworks :: Java: Struts Um framework de aplicação deve possuir as seguintes características: compreender múltiplas classes ou componentes, cada qual provendo uma abstração de um conceito em particular; definir como estes conceitos trabalharão juntos para resolver um determinado problema; possuir componentes reutilizáveis; permitir um alto nível de padronização

4 Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI) Especialista : Sistema distribuídos (UFBA)(arleys.castro@gmail.com)arleys.castro@gmail.com Framework Jakarta Struts :: Java: Struts O Struts é um framework para web que se tornou padrão na comunidade JEE (Java Enterprise Edition). O Struts provê uma implementação do modelo MVC-2 para construções de aplicações web. Mas qual a finalidade do Struts? Da mesma forma que a construção de uma casa, ponte e prédio necessitam de uma base mantenedora, os desenvolvedores utilizam o Struts para suportar cada camada de uma aplicação. O nome Struts deve-se ao papel por ele desempenhado nas aplicações web, o de fornecer toda a estrutura inicial. O Struts implementa o controlador da aplicação (a letra C da sigla MVC- 2), sendo este controlador o responsável por toda a logística e também pela integração das camadas de visualização e regra de negócio do sistema.

5 Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI) Especialista : Sistema distribuídos (UFBA)(arleys.castro@gmail.com)arleys.castro@gmail.com Framework Jakarta Struts :: Java: Struts Para facilitar o entendimento do Struts, observe na Figura abaixo, o fluxo normal de uma aplicação utilizando o Struts, e também quais tecnologias estão envolvidas em cada uma das etapas.

6 Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI) Especialista : Sistema distribuídos (UFBA)(arleys.castro@gmail.com)arleys.castro@gmail.com Framework Jakarta Struts :: Java: Struts As etapas estão descritas a seguir, de acordo com a numeração indicada na Figura 1. 1. Cada solicitação HTTP tem que ser respondida neste mesmo protocolo. Desta forma, inicia-se uma aplicação que utiliza o Struts. Esta solicitação normalmente é definida como requisicao.do, que é um nome lógico para a requisição do usuário. 2. A solicitação requisicao.do é mapeada no arquivo struts-config.xml. Neste arquivo estão todas as definições do controlador do framework. O arquivo é então lido por um ActionServlet (que fará efetivamente o papel do controlador da aplicação) na inicialização da aplicação criando então um banco de objetos com o arquivo de configuração. No arquivo de configuração são definidos os Actions (requisições dos usuários) para cada solicitação. 3. O ActionServlet (que faz o papel do controlador da aplicação), define o Action correspondente para a solicitação. Um Action pode validar a entrada de dados e acessar a camada de negócios para recuperar as informações nos bancos de dados e outros serviços de dados.

7 Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI) Especialista : Sistema distribuídos (UFBA)(arleys.castro@gmail.com)arleys.castro@gmail.com Framework Jakarta Struts :: Java: Struts 4. A requisição HTTP pode ser feita também através de um formulário HTML. Em vez de fazer com que cada Action retire os valores do campo da solicitação, o ActionServlet coloca a entrada em um JavaBean. Estes JavaBeans são definidos como FormBeans no Struts e estendem a classe org.apache.struts.action.ActionForm (os Actions e FormBeans serão abordados com maiores detalhes no decorrer do curso). 5. O Action pode acessar o FormBean, efetuar qualquer operação e armazenar o resultado em um ResultBean. 6. O Action interage com a camada de negócio onde uma base de dados poderá ser atualizada. Em geral, o Struts não apresenta a resposta em si, mas envia a solicitação para outro recurso, como uma página JSP. O Struts fornece a classe ActionForward que pode ser usada para armazenar o caminho para uma página sob um nome lógico. Desta forma, o endereço ficará oculto para o usuário. Este visualizará apenas o nome definido para o caminho (por exemplo, resposta.do). Este recurso evita que o usuário possa estar visualizando uma versão desatualizada da aplicação, já que as requisições serão feitas apenas para nomes lógicos.

8 Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI) Especialista : Sistema distribuídos (UFBA)(arleys.castro@gmail.com)arleys.castro@gmail.com Framework Jakarta Struts :: Java: Struts Ao completar a lógica de negócio, o Action selecionará e retornará um ActionForward para o servlet. Então, o servlet usará o caminho armazenado no objeto ActionForward para chamar a página e completar a resposta. Estes detalhes logísticos da aplicação são definidos no objeto ActionMapping. Cada ActionMapping está relacionado a um caminho específico. Quando este caminho for selecionado, como requisicao.do, o servlet irá recuperar o objeto ActionMapping. O mapeamento informará ao servlet quais Actions, ActionForms e ActionForwards usar.

9 Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI) Especialista : Sistema distribuídos (UFBA)(arleys.castro@gmail.com)arleys.castro@gmail.com Ambiente de desenvolvimento :: Java: Struts Para desenvolver uma aplicação que utilize o framework Struts,são necessários que sejam instalados e configurados os seguintes pacotes: JSE – Java Standard Edition (kit de desenvolvimento Java); Servlet Container, como o TOMCAT ou outros similares Apache Ant (opcional – ferramenta de build); Framework Struts. Todas as ferramentas que compõem este ambiente de desenvolvimento podem ser obtidas gratuitamente. A partir deste ponto, o aluno deverá estar com o kit de desenvolvimento Java, Apache ANT e também com o Tomcat devidamente instalados e configurados.

10 Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI) Especialista : Sistema distribuídos (UFBA)(arleys.castro@gmail.com)arleys.castro@gmail.com Obtendo e instalando o Struts :: Java: Struts O Struts é mantido pelo Apache Software Foundation e possui a licença Apache, sendo esta OpenSource. A licença Apache possibilita que o framework seja distribuído juntamente com a aplicação sem que seja necessário efetuar qualquer pagamento à fundação. O Struts pode ser obtido no site oficial do projeto, http://struts.apache.org. Os arquivos binários são distribuídos em diversos formatos na página de download http://struts.apache.org/acquiring.html. Nesta página, selecione a versão 1.2.7 (ou superior), e o formato que desejar, como jakarta-struts-1.2.7.tar.gz.

11 Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI) Especialista : Sistema distribuídos (UFBA)(arleys.castro@gmail.com)arleys.castro@gmail.com Entendendo e aplicando os conceitos :: Java: Struts A partir deste ponto, estaremos desenvolvendo uma aplicação bastante simples, mas que utilizará praticamente todos os componentes do Struts. O desenvolvimento será a partir da aplicação semi-pronta do struts – struts-blank (que já deve estar copiada para o seu diretório de desenvolvimento com o nome de cadastro). A aplicação consiste em um formulário onde o usuário deverá informar e-mail e senha. Serão feitas algumas validações, como verificar se todos os campos estão preenchidos, se o campo e-mail segue o formato nome@host.com, e se o campo senha possui pelo menos 8 caracteres.

12 Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI) Especialista : Sistema distribuídos (UFBA)(arleys.castro@gmail.com)arleys.castro@gmail.com Entendendo e aplicando os conceitos :: Java: Struts A aplicação, que iremos desenvolver, deve ter a estrutura de diretórios apresentada na Figura 3

13 Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI) Especialista : Sistema distribuídos (UFBA)(arleys.castro@gmail.com)arleys.castro@gmail.com Entendendo e aplicando os conceitos :: Java: Struts As páginas JSPs serão salvas abaixo do diretório pages. Este é o único diretório que o usuário poderá acessar pelo navegador. WEB-INF/results: páginas JSPs contendo o resultado de uma operação realizada pelo usuário. Estas páginas poderão ser chamadas somente pelo Struts. O usuário da aplicação não conseguirá acessá-las diretamente; WEB-INF/src: abaixo deste diretório serão mantidos os arquivos.java da aplicação (abaixo do subdiretório goetten); WEB-INF/lib: bibliotecas utilizadas pela aplicação; WEB-INF/classes: arquivos.class referentes às classes Java compiladas da aplicação; Os demais diretórios não serão utilizados pela nossa aplicação, no entanto fazem parte da estrutura padrão de uma aplicação utilizando o Struts.

14 Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI) Especialista : Sistema distribuídos (UFBA)(arleys.castro@gmail.com)arleys.castro@gmail.com Entendendo e aplicando os conceitos :: Java: Struts As requisições.do :: conhecendo o arquivo web.xml. No Struts, todas as requisições dos usuários recebem um nome lógico (este nome lógico vai evitar que o usuário visualize uma versão desatualizada de algum componente da aplicação). A este nome lógico é acrescentada a extensão do. No entanto, esta extensão é dinâmica, o desenvolvedor pode definir qual extensão utilizar em sua aplicação. O padrão do Struts é utilizar o.do.

15 Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI) Especialista : Sistema distribuídos (UFBA)(arleys.castro@gmail.com)arleys.castro@gmail.com Entendendo e aplicando os conceitos :: Java: Struts Na Listagem 1, a extensão para as requisições do servlet é definida, e definimos também o servlet que deverá ser invocado para estas solicitações. Listagem 1. Configuração da aplicação Fonte: cadastro/WEB-INF/struts-config.xml. 1. 2. 3. 4. 5. 6. 7. 8. 9. <forward name="welcome" path="/Welcome.do"/> 10. 11. 12. <action 13. path="/Welcome" 14. forward="/pages/register.jsp"/> 15. <action 16. path="/actions/register" 17. type="teste.RegisterAction" 18. name="userFormBean" scope="request" input="/pages/action/register.jsp"> 20. <forward name="success" path="/WEB-INF/results/result.jsp"/> 21. <forward name="bad-address" path="/WEB-INF/results/bad-address.jsp"/> 22. <forward name="bad-password" path="/WEB-INF/results/bad-password.jsp"/> 23. 24. 25.

16 Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI) Especialista : Sistema distribuídos (UFBA)(arleys.castro@gmail.com)arleys.castro@gmail.com Entendendo e aplicando os conceitos :: Java: Struts A primeira parte a ser analisada neste arquivo fica entre as linhas 15 e 23, que é onde estamos definindo os Actions que serão mapeados pela aplicação e os seus possíveis resultados (forwards). Observe as linhas 15 e 16 (<action path="/actions/register"), a propriedade define o nome lógico para o Action, neste caso /actions/register.do. Observe que a extensão.do não foi definida, pois já definimos esta extensão como padrão no arquivo web.xml. Na linha 17 (type=goetten.RegisterAction) estamos definindo qual será a classe Java responsável por fazer o tratamento da requisição. Já nas linhas 18 e 19 estamos definindo o Bean utilizado na requisição (userFormBean), este é apenas um nome lógico para o Bean. Na linha 4 definimos o nome lógico e a classe Java referente ao Bean. Entre as linhas 20 e 22, definimos todos os possíveis retornos para a requisição. O parâmetro name define um nome lógico para o resultado e o parâmetro path pode conter uma página JSP ou ainda outro Action. 12. <action 13. path="/Welcome" 14. forward="/pages/register.jsp"/> 15. <action 16. path="/actions/register" 17. type="goetten.RegisterAction" 18. name="userFormBean" scope="request" input="/pages/action/register.jsp"> 20. <forward name="success" path="/WEB-INF/results/result.jsp"/> 21. <forward name="bad-address" path="/WEB-INF/results/bad-address.jsp"/> 22. <forward name="bad-password" path="/WEB-INF/results/bad-password.jsp"/> 23.

17 Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI) Especialista : Sistema distribuídos (UFBA)(arleys.castro@gmail.com)arleys.castro@gmail.com Entendendo e aplicando os conceitos :: Java: Struts FormBeans Um FormBean nada mais é do que um JavaBean. Os JavaBeans são classes Java que seguem um conjunto de padrões de construção que facilitam a sua utilização em ferramentas de desenvolvimento (ou frameworks) e aplicação. Cada campo do formulário para ser mapeado no Action deverá ter o seu devido atributo na classe, juntamente com os métodos para definição e recuperação dos valores (set e get). Quando um formulário HTML é enviado, as duplas nome-valor são obtidas pelo controlador Struts e aplicadas em um ActionForm (org.apache.struts.action.ActionForm). O Struts compara então os nomes das propriedades deste Bean com os nomes das duplas de entrada. Quando coincidem, o controlador define a propriedade para o valor da dupla correspondente. As propriedades extras são ignoradas. As propriedades ausentes mantêm o seu valor padrão. Estes pares de entrada são compostos pelos campos do formulário HTML. Um formulário contendo os campos e-mail e password conteria os seguintes pares, por exemplo:  email=fulano@gmail.com  password = 12345678

18 Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI) Especialista : Sistema distribuídos (UFBA)(arleys.castro@gmail.com)arleys.castro@gmail.com Entendendo e aplicando os conceitos :: Java: Struts A Listagem 3 apresenta o Bean utilizado pela aplicação cadastro, o UserFormBean.java Listagem 3. FormBean da aplicação de cadastro Fonte: cadastro/src/teste/UserFormBean.java Package teste; import org.apache.struts.action.*; public class UserFormBean extends ActionForm { private String email = "Informe o email"; private String password = ""; public String getEmail() { return(email); } public void setEmail(String email) { this.email = email; } public String getPassword() { return(password); } public void setPassword(String password) { this.password = password; }

19 Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI) Especialista : Sistema distribuídos (UFBA)(arleys.castro@gmail.com)arleys.castro@gmail.com Entendendo e aplicando os conceitos :: Java: Struts ResultBeans O FormBean representa os dados de entrada, ou seja, os dados submetidos de um formulário HTML. Na maioria das aplicações, o mais importante são os dados referentes ao resultado de uma requisição, o dado criado pela lógica de negócio, podendo ser resultado de uma computação qualquer como um cálculo, ou ainda operações realizadas no banco de dados. No modelo MVC, o ResultBean representa a letra M - o Modelo. Assim como os FormBeans, os ResultBeans também devem possuir métodos para definição e recuperação de atributos. No entanto, não é necessário defini-los no arquivo de configuração do Struts (struts-config.xml) e também não há necessidade de estender qualquer classe do Struts. Nossa aplicação de cadastro utilizará o ResultBean SuggestionBean.java que armazenará sugestões de email e senha para o usuário. Quando o usuário submeter um e-mail inválido, ou uma quantidade de caracteres inferior à mínima necessária para a sua senha, o SuggestionBean será populado pela classe SuggestionUtils com valores sugestivos de e-mail e senha, sendo exibido na página de erro que reportará o email ou senha ilegal.

20 Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI) Especialista : Sistema distribuídos (UFBA)(arleys.castro@gmail.com)arleys.castro@gmail.com Entendendo e aplicando os conceitos :: Java: Struts A classe ResultBean SuggestionBean e a classe para populá-lo são apresentadas nas Listagens 4 e 5 respectivamente Listagem 4. Classe ResultBean aplicação de cadastro Fonte: cadastro/src/teste/SuggestionBean.java. package teste; public class SuggestionBean { private String email; private String password; public SuggestionBean(String email, String password) { this.email = email; this.password = password; } public String getEmail() { return(email); } public String getPassword() { return(password); } public void setEmail (String email){ this.email = email; } public void setPassword (String password){ this.password = password; }

21 Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI) Especialista : Sistema distribuídos (UFBA)(arleys.castro@gmail.com)arleys.castro@gmail.com Entendendo e aplicando os conceitos :: Java: Struts Listagem 5. Classe para popular o ResultBean Fonte: cadastro/src/teste/SuggestionUtils.java. package teste; public class SuggestionUtils { private static String[] suggestedAddresses = /* sugestões de emails para o usuário */ { "nome.sobrenome@datasul.com.br", "nome@gmail.com", "nome@ibm.com", "nome@oracle.com" }; /* String com os possíveis caracteres para a senha do usuário */ private static String chars = "abcdefghijklmnopqrstuvwxyz0123456789"; public static SuggestionBean getSuggestionBean() { /* Recuperando uma sugestão randômica para o campo de email */ String address = randomString(suggestedAddresses); /* Montando exemplo de senha com 8 caracteres randômicos */ String password = randomString(chars, 8); return(new SuggestionBean(address, password)); }

22 Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI) Especialista : Sistema distribuídos (UFBA)(arleys.castro@gmail.com)arleys.castro@gmail.com Entendendo e aplicando os conceitos :: Java: Struts Listagem 5. Continuação da Classe para popular o ResultBean Fonte: cadastro/src/teste/SuggestionUtils.java. public static int randomInt(int range) { return((int)(Math.random() * range)); } public static String randomString(String[] strings) { return(strings[randomInt(strings.length)]); } public static char randomChar(String string) { return(string.charAt(randomInt(string.length()))); } public static String randomString(String string, int length) { StringBuffer result = new StringBuffer(); for(int i=0; i<length; i++) { result.append(randomChar(string)); } return(result.toString()); }

23 Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI) Especialista : Sistema distribuídos (UFBA)(arleys.castro@gmail.com)arleys.castro@gmail.com Entendendo e aplicando os conceitos :: Java: Struts Action Um Action é uma classe Java que estende o org.apache.struts.Action. O ActionServlet, que faz o papel de controlador da aplicação, preenche o ActionForm (JavaBean) e então transmite-o para o Action. Um Action é geralmente responsável por validar a entrada, acessar as informações comerciais e determinar qual ActionForward retornar para o controlador. No arquivo de configuração da aplicação, definimos o nome lógico register para o action, apontando para a classe RegisterAction.java.

24 Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI) Especialista : Sistema distribuídos (UFBA)(arleys.castro@gmail.com)arleys.castro@gmail.com Entendendo e aplicando os conceitos :: Java: Struts Fonte: cadastro/src/teste/RegisterAction.java. 1. package teste; 2. import javax.servlet.http.*; 3. import org.apache.struts.action.*; 4. public class RegisterAction extends Action { 5. public ActionForward execute(ActionMapping mapping, 6. ActionForm form, 7. HttpServletRequest request, 8. HttpServletResponse response) 9. throws Exception { 10. UserFormBean userBean = (UserFormBean)form; 11. String email = userBean.getEmail(); 12. String password = userBean.getPassword(); 13. SuggestionBean suggestionBean = SuggestionUtils.getSuggestionBean(); 14. request.setAttribute("suggestionBean", suggestionBean); 15. if ((email == null) || (email.trim().length() < 3) || (email.indexOf("@") == -1)) { 16. return(mapping.findForward("bad-address")); 17. } else if ((password == null) || (password.trim().length() < 8)) { 18. return(mapping.findForward("bad-password")); 19. } else { 20. return(mapping.findForward("success")); 21. } 22. } 23. }

25 Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI) Especialista : Sistema distribuídos (UFBA)(arleys.castro@gmail.com)arleys.castro@gmail.com Entendendo e aplicando os conceitos :: Java: Struts Embora bastante simples, a classe RegisterAction efetua todas as ações que normalmente os Actions fazem. A classe RegisterAction estende a classe Action fornecida pelo Struts (linha 4). Entre as linhas 5 e 8 declaramos algumas classes que serão utilizadas pela aplicação. Em seguida (linha 10), há uma coerção aplicada para UserFormBean para que possa ser possível extrair os atributos e-mail (linha 11) e password (linha 12). Nas linhas 13 e 14 instanciamos o resultBean e chamamos os métodos para definir valores aos atributos.

26 Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI) Especialista : Sistema distribuídos (UFBA)(arleys.castro@gmail.com)arleys.castro@gmail.com Entendendo e aplicando os conceitos :: Java: Struts O Action pode retornar ainda três tipos diferentes de ActionForward: bad-address: o e-mail informado pelo usuário é invalido (linha 16); bad-password: a senha informada não contém no mínimo oito caracteres (linha 18); success: todos os parâmetros informados atendem a regra da aplicação (linha 20).

27 Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI) Especialista : Sistema distribuídos (UFBA)(arleys.castro@gmail.com)arleys.castro@gmail.com Entendendo e aplicando os conceitos :: Java: Struts Estes ActionForwards foram definidos no arquivo de configuração, conforme a Listagem 7. Listagem 7. Trecho do struts-config.xml que define os Forwards da aplicação Fonte: cadastro/WEB-INF/strutsconfig.xml.... <forward name="success" path="/WEB-INF/results/result.jsp"/> <forward name="bad-address" path="/WEB-INF/results/bad-address.jsp"/> <forward name="bad-password" path="/WEB-INF/results/bad-password.jsp"/>...

28 Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI) Especialista : Sistema distribuídos (UFBA)(arleys.castro@gmail.com)arleys.castro@gmail.com Entendendo e aplicando os conceitos :: Java: Struts Camada de visualização Para finalizar a aplicação, é necessário que sejam criados o formulário para que o usuário informe e-mail e senha, e os arquivos de resultado (para bad- address, bad-password e sucess). As Listagens 8, 9 e 10 apresentam os códigos destas páginas, respectivamente. Podemos observar que são páginas JSP simples e fáceis de serem entendidas.

29 Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI) Especialista : Sistema distribuídos (UFBA)(arleys.castro@gmail.com)arleys.castro@gmail.com Entendendo e aplicando os conceitos :: Java: Struts Listagem 8. Página para ser exibida caso seja informado um e-mail inválido Fonte: cadastro/WEB-INF/results/badaddress.jsp. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> ERRO: Endereço de Email inválido Endereço de E-mail inválido O Email Não segue o padrão nome@servidor.com.br (como., ). Voltar

30 Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI) Especialista : Sistema distribuídos (UFBA)(arleys.castro@gmail.com)arleys.castro@gmail.com Entendendo e aplicando os conceitos :: Java: Struts Listagem 9. Página para ser exibida caso seja informado uma senha inválida Fonte: cadastro/WEB-INF/results/badpassword.jsp. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> Senha Inválida Senha Inválida A senha digitada não contém a quantidade mínima de caracteres necessários. Exemplo de senha:. Voltar

31 Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI) Especialista : Sistema distribuídos (UFBA)(arleys.castro@gmail.com)arleys.castro@gmail.com Entendendo e aplicando os conceitos :: Java: Struts Listagem 10. Página de sucesso, caso todos os campos tenham sido preenchidos corretamente Fonte: cadastro/WEB-INF/results/result.jsp. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> Sucesso O Registro foi efetuado com sucesso. Email: Senha:

32 Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI) Especialista : Sistema distribuídos (UFBA)(arleys.castro@gmail.com)arleys.castro@gmail.com Entendendo e aplicando os conceitos :: Java: Struts Falta agora apenas o formulário para que o usuário possa informar e-mail e senha. A página JSP para este formulário é apresentada na Listagem 11

33 Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI) Especialista : Sistema distribuídos (UFBA)(arleys.castro@gmail.com)arleys.castro@gmail.com Entendendo e aplicando os conceitos :: Java: Struts Listagem 11. Formulário para que o usuário informe e-mail e senha Fonte: cadastro/pages/actions/register.jsp. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> Registro de Nova Conta Registro de Nova Conta Email: Senha:

34 Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI) Especialista : Sistema distribuídos (UFBA)(arleys.castro@gmail.com)arleys.castro@gmail.com Entendendo e aplicando os conceitos :: Java: Struts A taglib html do Struts faz o mapeamento automático dos campos do formulário com os atributos do bean associado no Action, através da tag. Os atributos não encontrados no Bean são desconsiderados. Para visualizar o resultado, precisamos acessar o endereço http://localhost:8080/pages/register.jsp.

35 Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI) Especialista : Sistema distribuídos (UFBA)(arleys.castro@gmail.com)arleys.castro@gmail.com Bibliografia :: Java: Struts Referências Struts – site oficial: http://struts.apache.org/. CAVANESS, Chuck. Programming Jakarta Struts. O'REILLY, 2002. ISBN: 0-596- 00328 – 5 DUDNEY, Bill. Jakarta Pitfals. Willey Publishing, 2003 ISBN: 0- 471- 44915-6 HUSTED, Ted. Struts in Action. Manning Books, 2004. ISBN: 85- 7393-299- 6 SPIELMAN, Sue. The Struts Framework - Pratical Guid for Java Programmers. Morgan Kaufmann Publishers, 2003. ISBN: 1- 55860- 862- 1


Carregar ppt "Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI) Especialista : Sistema distribuídos"

Apresentações semelhantes


Anúncios Google