Buscar

Arquitetura MVC para Aplicacoes Web

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 37 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 37 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 37 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

1
IFPA
Curso de Tecnologia em Análise e Desenvolvimento de Sistemas
Engenharia da Web 
Desenvolvimento de Software na Web 
- Arquitetura de Software
- Padrão Arquitetural MVC
- Aplicação web com JSP e Servlet
Práticas em NetBeans
Prof. Cláudio Martins
claudiomartins2000@gmail.com
 
2
Objetivos da Aula
● Apresentar e empregar as tecnologias JSP e 
Servlet para desenvolvimento de aplicações 
web com MVC, usando a IDE Netbeans.
 
 
3
Processamento de formulário, para exibição 
de dados em todas as páginas
● Considere uma página de um formulário de 
login. 
● Após a identificação do nome do usuário, 
todas as páginas seguintes devem exibir 
esse nome.
Homepage
pag1
pag2
 
4
Mapa de Navegação 
 
5
Visão arquitetônica MVC p/ Web/Java
Controlador (servlet)
homepage.jsp
usuario.bean
<<cria bean>>
<< usa o bean >>
<< forward >>
1
2
34
5
<<submit>>
{nome}
 
6
Códigos (formulário, Servlet e página homepage.jsp)
<form action="Controlador" method="post">
 Informe seu nome: <input name="nome" size="30" type="text" >
 <br> <input type="submit" value="ENVIAR">
</form>
 protected void processRequest(HttpServletRequest request,
 HttpServletResponse response) throws ServletException, IOException {
 String nomeUsuario = request.getParameter("nome");
 request.getSession().setAttribute("USUARIO_NOME", nomeUsuario);
 request.getRequestDispatcher("homepage.jsp").forward(request, response);
 } // fim do método
 <body>
 <h1>Hello World!</h1>
 Bem vindo ${USUARIO_NOME}
 <hr>
 <br><a href="pag1.jsp">Chama página 1</a>
 <br><a href="pag2.jsp">Chama página 2</a>
 </body>
 
7
Estereótipos UML para MVC
O uso de estereótipos em UML pemite representar objetos
 com semântica própria. 
Um estereótipo é representado por um ícone ou um texto entre « e » 
Boundary (fronteira) – representam objetos que realizam a interface
da fronteira entre o sistema com os atores de interação.
São as páginas web contendo apenas controles de interação com o usuário.
Controller (controlador) – representam objetos que realizam o controle
do sistema, instanciando os objetos de dados e a navegação entre 
os objetos de fronteira.
Na arquitetura Java (web) são os servlets. Podem ser páginas JSP contendo
apenas comandos de controle, não existindo marcas HTML de saída.
Entity (entidade de dados) – representam objetos que armazenam 
os dados processados no sistema.
São os objetos java beans, contendo os dados manipulados na aplicação.
 
8
Passos para construção no NetBeans
● Para realizar o código usando o IDE 
Netbeans, foi utilizado as seguintes versões:
● Netbeans: 7.1
● Tomcat: 7.x
● OBS: ao usar versões anteriores a essas, você 
terá que observar alguns detalhes de 
configuração.
 
9
Passo 1: Escolher o tipo de projeto Web
● Abra o Netbeans e escolha no menu: Arquivo – Novo 
Projeto
● Em seguida, escolha o tipo do projeto: Java Web – 
Aplicação Web 
 
10
Passo 2: Definir o local (pasta) onde ficará o 
projeto 
● Defina o diretório (pasta) onde ficará o 
projeto.
 
11
Passo 3: Definir o servidor web
● Escolha o servidor web. Caso ele não esteja na lista, 
clique em “Adicionar” (deve estar instalado na sua 
máquina). Neste exemplo usaremo o Tomcat.
 
12
Passo 4: Definição de frameworks de apoio
● Neste caso, não usaremos nenhum. Clique 
em “Finalizar”
 
13
Projeto gerado no NetBeans
● Ao finalizar o projeto é construído (ver figura) e uma página inicial 
é criada (index.jsp).
 
14
Executando (exibindo) a página index.jsp
● Por padrão é criado no projeto web a página index.jsp. Ao 
executar o arquivo index.jsp a página é exibida no browser que 
está definido como default do sistema.
Ou clique em RUN
Caso o projeto seja o
Principal.
 
15
Exibição da página index.jsp
 
16
Definição do formulário 
 <form action="Controlador" method="get">
 Informe seu nome: <input name="nome" size="30" type="text" >
 <br>
 <input type="submit" value="ENVIAR">
 </form>
•Crie um novo arquivo JSP ou aproveite o arquivo index.jsp para 
criar um formulário como na figura a seguir.
 
17
Criando a classe Servet (Controlador)
● Utilize os atalho e siga os passos:
 
18
Nome e localização do Servlet
● O nome do Servlet é “Controlador”
● Defina o pacote com nome de “controle”
 
19
Finalizando o processo de criação do 
Servlet
● Caso você esteja usando uma especificação de 
servidor Tomcat 5, marque a opção “Adicionar 
informação ao descritor...”
 
20
Exibindo o conteúdo do Servlet
● O Netbeans gera um código de teste para exibir ao 
executar o servlet. 
 
21
Ajustando o código do servlet
● Para o nosso exemplo, delete o corpo do 
código do método processRequest e insira o 
código (em azul):
protected void processRequest(HttpServletRequest request, 
HttpServletResponse response)
 throws ServletException, IOException {
 String nomeUsuario = request.getParameter("nome");
 request.getSession()
.setAttribute("USUARIO_NOME", nomeUsuario);
 
 request.getRequestDispatcher("homepage.jsp")
.forward(request, response);
 
 } // fim do método
 
22
Código da página “homepage.jsp”
 
23
Código das páginas “pag1.jsp” e “pag2.jsp”
 
24
Atividades Práticas
25
Atividade Prática 2
1. Elaborar uma aplicação web, usando a 
arquitetura MVC (Modelo-Visão-Controle) para 
realizar um “simulador financeiro”, seguindo o 
cenário:
1. Um cliente de um banco virtual escolhe o tipo da 
aplicação (poupança ou renda fixa), informa o valor 
a investir e o tempo (em meses) de investimento. 
2. A aplicação calcula e retorna ao cliente o resultado 
mês a mês dos rendimentos acumulados, 
considerando o tempo investido, o valor e a taxa 
mensal (fixar em 0.5% ao mês para a poupança e 
0.8% ao mês para renda fixa).
26
Navegação
27
Arquitetura da aplicação
Simulador (servlet)
result.jsp
rendimento.bean
<<cria bean>>
<< usa o bean >>
<< forward >>
1
2
34
5
simula.jsp
{tipo_aplicacao,
meses, valor}
<<submit>>
28
Etapas para a construção do Projeto
1. Criar um projeto no Netbeans do tipo 
“Aplicação web”
2. Criar a classe servlet “Simulador”
3. Criar a classe “Rendimento” (que será a 
base do objeto “bean” a ser exibido na 
página de “resultado”)
4. Criar as páginas JSP: simula e resultado
29
Classe “Rendimento”...
● Crie a classe “Rendimento” com os seguintes atributos 
(ver abaixo).
Em seguida, gere os métodos Get e Set’s...
●
30
Codificando “simula.jsp”
● Adicione o código referente ao formulário...
31
Continuação
● Complete o código da classe Servlet para tratar o 
recebimento dos dados (vindos do formúlário).
● Crie um objeto do tipo (classe) “Rendimento”, 
setando os valores vindos do formulário
● Crie um método na classe Rendimento para 
calcular os rendimentos mensais conforme o tipo 
de aplicação.
● No método “service” (ou processRequest do 
Servlet), salve o objeto “Rendimento” como 
“bean” e chame a página de “resultado” (deve ser 
criada)
● A página de “resultado” deve exibir os dados 
calculados, obtidos a partir do bean anterior.
32
Tratando o recebimento dos dados (vindos do 
formúlário) no Servlet.
protected void service(HttpServletRequest req, HttpServletResponse resp) 
 throws ServletException, IOException {
 
 // recebendo os parâmetros do formulário.
 String tipoAplic = req.getParameter("aplicacao");
 Float valor = Float.valueOf(req.getParameter("valor"));
 Integer meses = Integer.valueOf(req.getParameter("meses"));System.out.println("valores = " + tipoAplic + " v=" + valor + " meses="+ meses);
 
 // atribui os dados ao objeto "rend"
 Rendimento rend = new Rendimento();
 rend.setMeses(meses);
 rend.setTipoAplicacao(tipoAplic);
 rend.setValor(valor);
 rend.calcularRendimentos(); // método que calcula os rendimentos da aplicação
 
 // salva o objeto Vector com os rendimentos mensais (como bean de request).
 req.setAttribute("rendimento_bean", rend.getRendMensais());
 // repassa para a página de resultado.
 req.getRequestDispatcher("result.jsp").forward(req, resp);
} 
33
Explicando o objeto Request
• HttpServletRequest req
– Ver em http://java.sun.com/products/servlet/2.3/javadoc/javax/servlet/http/HttpServletRequest.html
– HttpServletRequest – classe interface que 
fornece informações da solicitação oriunda via 
HTTP, para o servlet tratar.
– “req” – é o nome dado ao objeto (instanciado) no 
código. Normalmente, dá-se o nome “req”, 
“request”, “solicitacao”, ou qualquer outro nome 
que lembre o objeto no método da classe Servlet. 
● No caso de páginas JSP, esse objeto é implícito e é 
denominado “request”
34
Métodos da classe HttpServletRequest
• getParameter(String nomeParametro) – retorna um valor 
String
– Retorna o valor de um parâmetro originado na solicitação como 
um String, ou “null” se o parâmetro não existir.
• setAttribute(String nomeBean, Object obj) 
– Armazena (em memória) um objeto como atributo (bean) na 
solicitação corrente. 
• getRequestDispatcher(String páginaURL) – retorna um 
objeto RequestDispatcher 
– Retorna um objeto RequestDispatcher que age como um 
“wrapper” para a localização de um recurso definido na 
“páginaURL”.
● A classe RequestDispatcher provê o método forward:
– forward(ServletRequest request, ServletResponse response) 
– Repassa uma solicitação de um servlet para outro recurso 
(servlet, JSP, ou página HTML) de um servidor.
35
Método para calcular os rendimentos mensais 
(na classe Rendimento) 
 public void calcularRendimentos() {
 rendMensais = new Vector();
 rendimentoFinal = valor;
 float taxa = 0;
 if (tipoAplicacao.equals("POUPANCA"))
 taxa = 0.05F; // 5%
 if (tipoAplicacao.equals("RENDA-FIXA"))
 taxa = 0.08F; // 8%
 for (int i = 0; i < meses; i++) {
rendimentoFinal = rendimentoFinal * taxa + rendimentoFinal;
rendMensais.addElement(new Float(rendimentoFinal));
 }
} // fim do método
36
Página “result.jsp” - exibe os dados calculados, 
obtidos a partir do bean rendimento_bean
<%@page import="java.util.Vector, java.util.Iterator "%>
<html> 
<body>
 <h1>Resultado - Cálculo</h1>
 <%
 Vector rend= (Vector) request.getAttribute("rendimento_bean");
 int i = 0;
 for (Iterator iter = rend.iterator(); iter.hasNext();) {
Float rendMes = (Float) iter.next();
i++;
out.println("<br> MES - " + i + " - REND = " + rendMes);
 }
 %>
</body>
</html>
37
** fim da aula **
	Slide 1
	Slide 2
	Slide 3
	Slide 4
	Slide 5
	Slide 6
	Slide 7
	Slide 8
	Slide 9
	Slide 10
	Slide 11
	Slide 12
	Slide 13
	Slide 14
	Slide 15
	Slide 16
	Slide 17
	Slide 18
	Slide 19
	Slide 20
	Slide 21
	Slide 22
	Slide 23
	Slide 24
	Slide 25
	Slide 26
	Slide 27
	Slide 28
	Slide 29
	Slide 30
	Slide 31
	Slide 32
	Slide 33
	Slide 34
	Slide 35
	Slide 36
	Slide 37

Outros materiais