Sejam bem vindos, esta e a decima quarta aula de Programacao Web em Java.Ate a ultima aula de HTML e CSS descobrimos como preparar uma pagina para publicacao na Internet. Porem estas pagina preparadas assim tem um problema: sao estaticas. Uma vez escritas e copiadas para o servidor, permanecerao exatamente iguais em todos os detalhes.Decima Quarta Aula: O modelo MVCCom o conteudo de Java aprendemos como construir programas. Vamos juntar as duas coisas agora.JSP e uma sigla para Java Server Pages, e e uma tecnologia desenvolvida pela Sun para permitir o uso do Java para produzir paginas dinamicas na Web. E utilizada em conjunto com classes Java com regras especificas para atendimento a requisicoes dos usuarios. Estas classes sao os Servlets.Revisando como funciona a WebO cliente faz uma requisicao atraves do navegador quando:Digita um endereco na barra de endereco e envia;Clica em um botao de envio de um formulario;Modifica um dado em um formulario com codigo javascript relacionado;Na acao do usuario esta requisicao e enviada pela Internet (ou Intranet) ate o servidor de Web e este faz uma serie de acoes:Interpreta a requisicaoProcura na pasta root o arquivo HTML pedidoEnvia o arquivo de volta ao navegador do clientePor fim o navegador do cliente interpreta o codigo Html, css e desenha o resultado.Paginas dinamicasCom as paginas dinamicas a diferenca esta nas acoes do servidor de WEB:Interpreta a requisicao e detectando um pedido para pagina dinamica:Aciona uma classe ServletA classe Servlet interpreta qual acao foi requisitada e aciona as classes adequadasApos a execucao das acoes, e chamada a pagina JSP para preparar a resposta visuais a requisicao. As paginas JSP possuem codigo para producao de uma pagina HTML ad-roc, isto e sob demanda.O Servidor envia para o navegador cliente a pagina de resposta geradaObserve que temos duas camadas de codigo para producao de uma pagina dinamica: os Servlets e o JSP. Um modelo mais completo utiliza tres camadas e e chamada MVC Model-View-Control. Vamos ver cada uma destas camadas:ModelA camada Model (modelo) possui a representacao das informacoes do programa. No nosso exemplo, esta camada ira implementar classes para representar as entidades envolvidas no programa. Por exemplo em um programa de frente de caixa, haveria classes para representar produtos, compras, notas fiscais, itens de notas fiscais, metodos de pagamento. Estas classes iriam tambem armazenar todas as acoes que eventualmente o usuarios necessitasse realizar sobre estas entidades. Normalmente as classes utilizam um sistema de banco de dados para fazer o armazenamento persistente. Utilizaremos a biblioteca Hibernate para facilitar a persistencia dos dados. Iremos utilizar o banco de dados Mysql para os exemplosViewA camada View (visao) e responsavel por construir uma interface para interacao do usuario. Ela prepara a apresentacao da informacao para que o usuario possa reagir as respostas e continuar utilizando o programa. Em Java utilizaremos paginas JSP com Jstl para produzir as paginas de resposta. Observe que a camada View nao acessa diretamente o banco de dados, ela recebe normalmente objetos Collection geradas pelas classes da camada Model e produz codigo HMTL a partir deles. Percebeu porque tivemos uma longa aula sobre colecoes? (revise)ControlA