(JSP).logica de negocios centralizando o controle no tratamento e reducao na visao promove a reutilizacao de codigo entre as requisicoes. E uma abordagem preferivel a alternativa de codigo-incorporacao em varios pontos de vista, porque essa abordagem pode levar a uma mais propenso a erros, reutilizacao pelo ambiente de copiar e colar.Tipicamente, um controlador de coordenadas com um componente de despachante. Despachantes sao responsaveis pelo gerenciamento de visualizacao e navegacao. Assim, um distribuidor escolhe o proximo modo de exibicao para o usuario e controle de vetores para o recurso. Despachantes podem ser encapsulados dentro do controlador, direta ou pode ser extraido em um componente separado.Enquanto o padrao Front Controller sugere centralizar a manipulacao de todos os pedidos, nao limitar o numero de manipuladores do sistema, como faz um Singleton.Um aplicativo pode usar varios controladores em um sistema, cada um correspondente a um conjunto de servicos distintos.EstruturaFigura 7.1 representa o Front Controller padrao de diagrama de classe. Participantes e ResponsabilidadesFigura 7.2 mostra o diagrama de sequencia representando o padrao Front Controller. Ele descreve como o controlador processa um pedido. ControllerO controlador e o ponto de contato inicial para tratar todas as solicitacoes no sistema. O controlador pode delegar a um ajudante para completar a autenticacao e autorizacao de um usuario ou para iniciar a obtencao de contato.DispatcherUm distribuidor e responsavel pelo gerenciamento e exibicao de navegacao, gestao da escolha do modo de exibicao ao lado de apresentar para o usuario, e fornecer o mecanismo para a vetorizacao de controle para este recurso.Um despachante pode ser encapsulado dentro de um controlador ou pode ser um componente separado trabalhar em coordenacao. O atendente fornece tanto estatica expedicao a vista ou um mais sofisticado mecanismo dinamico de expedicao.O despachante usa o objeto RequestDispatcher (suportado na especificacao do servlet) e encapsula algum processamento adicional.HelperUm auxiliar e responsavel por ajudar uma vista ou controlador de completar a sua transformacao. Assim, ajudantes tem inumeras responsabilidades, incluindo a recolha de dados exigidos pela exibicao e armazenamento deste modelo intermediario, caso em que o auxiliar e por vezes referido como um grao de valor. Alem disso, os ajudantes podem adaptar este modelo de dados para uso pelo ponto de vista. Ajudantes pode atender as solicitacoes para os dados do ponto de vista, simplesmente fornecendo acesso aos dados brutos ou atraves da formatacao dos dados como conteudo da web.Uma visao pode trabalhar com qualquer numero de ajudantes, que normalmente sao implementados como componentes JavaBeans (JSP 1.0) e custom tags JSP (1.1). Alem disso, um ajudante pode representar um objeto de comando, um delegado (ver "Business Delegate" na pagina 248), ou um transformador de XSL, que e usado em combinacao com uma folha de estilo para se adaptar e converter o modelo para o formulario apropriado.ViewUma visao representa e exibe informacoes para o cliente. A visao recupera informacoes de um modelo. vistas apoio Helpers, encapsulando e adaptar o modelo de dados subjacente para utilizacao no ecra.StrategiesExistem varias estrategias para a implementacao de um controlador.Servlet Front StrategyEsta estrategia sugere execucao do controlador como uma servlet. Embora semanticamente equivalente, e preferivel a Frente JSP estrategia. O