Componentes da Equipe:
Diogo Oliveira Monte
Gilson Barbosa
Marcus Vinicius Souza Costa

Struts

    Struts é um framework MVC, um dos primeiros a utilizar a tecnologia, para construir aplicações WEB JSP baseados na plataforma J2EE(Plataforma para executar aplicativos Java do lado do servidor). O Struts foi lançado com o objetivo de facilitar o desenvolvimento de aplicações WEB, utilizando a linguagem Java, disponibilizando várias funcionalidades prontas além de facilitar a reutilização de código em diversas aplicações.

    Com isso, este framework se tornou uma das principais soluções para desenvolvimento WEB no mercado Java. Hoje o Struts é considerado uma ferramenta trabalhosa para se implementar, pois no ano em que foi lançado (2000) , diversas facilidades que o Java apresenta hoje ainda não existiam.

    Para resolver o trabalho de implementação do Struts, foi lançado o Struts 2, quem vem com a mesma proposta do Struts 1 acrescentadas mais recursos e funcionalidades.

    O struts funciona como um controlador central entre as regras de negocio e a interface com o usuário.

ActionServlet
    O action servlet controla o fluxo de navegação do sistema que é definido no Struts-Config.

Action
    O action é reponsável por acessar camada de negócio, Construir respostas para requisições do usuário e controle de tratamento de erros.

ActionMapping
    Define quais classes (Action) devem ser acessadas de acordo com o mapeamento no Struts-Config.

ActionForms
São responsáveis por coletar informações de formulários os objetos.

Páginas JSP
    São responsáveis pela camada de interface com o usuário apresentando apenas os resultados. São usadas as próprias taglibs do Struts.

ActionForward
    Associa um nome lógico para o controle de fluxo, definidos no Struts-Config.

Como funciona uma aplicação com Struts:

    O servidor recebe uma requisição do cliente. O controle é transferido para o ActionServlet que encontra no ActionMapping a URL correspondente requisitada. O ActionMapping especifica qual classe deve ser utilizada e o ActionForm correspondente. O ActionForm é populado com os dados de feitos na requisição. O controde é tranferido para o Action correspondente. Com os dados do ActionForm o Action acessa a camada de regra de negocio e gera uma resposta de acordo com a requisição. Gerada a resposta, os dados são armazenados em sessão ou request para acesso da página JSP. O Action retorna uma resposta para o ActionServlet indicando a pagina JSP, quês exibirá a resposta para o usuário.

JSF(Java Server Faces)

    JSF (Java Server Faces) é a mais nova tecnologia Java para desenvolvimento WEB e que tem modelo de interfaces que se baseia em eventos,e também incorpora o padrão de framework MVC para construir aplicações.

    No JSF, o controle é feito por arquivos de configuração (XML), servlets e controladores de ações e eventos. Os arquivos de configuração são responsáveis por mapeamento e regras de navegação. Os servlets ou FacesServlets, como são chamados, recebem requisições da web, redirecionam para o modela e por fim dar uma resposta. Os controladores de ações e eventos recebem dados da interface, camada de visualização do usuário, repassando para o modelo e então devolver o resultado para o FacesServlet.

Tecnologia Java Server Pages
    Java Server Pages (JSP e em português, páginas do servidor Java.), é uma tecnologia utilizada para desenvolver pagina na web. A JSP nada mais é do que uma página baseada em HTML.
    Por ser uma tecnologia baseada na linguagem de programação Java, tem a vantagem e facilidade de executar em diversos sistemas operacionais.

Modelo MVC
    A idéia do MVC, de forma básica, é separar a interface do usuário da lógica de negócio dividindo a aplicação em três camadas: visualização, modelo e controle. A visualização é a camada de interface com o usuário. O modelo é responsável por representar os objetos, que serão visualizados pelo usuário através de componentes na interface gráfica. A camada de controle é responsável por fazer a ligação entre a interface e o modelo, gerando a visualização apropriada de acordo com as ações do usuário. Dessa forma podemos fazer mudanças no layout sem alterar os dados, fazendo apenas pequenas adaptações.

Servlets
    São pequenas aplicações feitas em Java que encapsulam facilidades próprio a sua aplicação web, o processamento é executado dentro de uma thread do processo do servidor.

Vantagens o JSF em aplicação Web
    Permite a criação de UIs a partir de um conjunto de componentes UIs pré-definidos.
    Reutiliza componentes da HTML
    Entre vários outros.

Desvantagens do JSF em aplicações Web
    A sua linguagem é baseada em paginas.
    A execução se faz quase toda no servidor.
    O código é particionado entre cliente e servidor de forma fixa.

Semelhança entre Compilador, JSF e Struts
    A Máquina virtual do Java gera um código intermediário em baixo nível chamado de bytecode, que há torna independente de máquina, mas a grande relação entre compilador e jsf e struts é que na maioria das IDE java, o analisador uma parte do analisador léxico, semântico e sintático é feita enquanto é digitado o programa.

                                     Referencias
[(( http://www.dsc.ufcg.edu.br/~jacques/cursos/daca/html/jsf/jsf.htm))]
[((http://www.devmedia.com.br/articles/viewcomp.asp?comp=7238))]
[((www.guj.com.br/content/articles/jsf/jsf.pdf))]
[((http://www.linhadecodigo.com.br/Artigo.aspx?id=1045))]