MVC, Servlets, Padrões e JSP: Guia Completo
Classificado em Computação
Escrito em em português com um tamanho de 3,35 KB.
MVC (Model-View-Controller)
Um dos objetivos do MVC como arquitetura de uma aplicação é o de separar dados ou lógica de negócios (Model) da interface do usuário (View) e do fluxo da aplicação (Control).
Registro de Servlets
Existem duas maneiras de registrar os recursos como Servlets e filtros em uma aplicação web:
- Via anotação
- Registro no deployment descriptor (web.xml)
Padrão Front Controller
O padrão Front Controller impõe que todas as solicitações feitas à aplicação sejam antes passadas a um controlador.
Adoção de Helpers
Quem atende as solicitações são os helpers. O controlador é responsável pela distribuição. Os helpers irão padronizar a aplicação. Técnicas para interface, o polimorfismo e o mapeamento da URL actions.
Classes DAO (Data Access Object)
Têm um papel bem definido: o de incorporar todos os comandos SQL relativos à consulta e manipulação de registros no banco de dados. Para isso, são usadas várias classes do pacote "java.sql".
Classes Importantes
- DriverManager: Conseguir uma conexão com o banco.
- Connection: A própria conexão / conseguir um objeto do PreparedStatement.
- PreparedStatement: Executar comandos SQL no banco de dados.
- ResultSet: Resultado retornado pelo banco.
- SQLException: Classe de exceção da aplicação.
Método Forward()
Passa toda a informação que possui à outro recurso, para que esse possa realizar mais processamento.
Factory Method
“Um padrão que define uma interface para criar um objeto, mas permite às classes decidirem qual classe instanciar. O Factory Method permite a uma classe deferir a instanciação para subclasses”.
Tags de Ação JSP
- <jsp:include attribute="value">
- <jsp:getProperty attribute="value">
- <jsp:forward attribute="value">
Escopo de Página
É válido apenas para JSP.
Escopo de Objeto
- Page
- Request
- Session
- Application
Filtros
Um filtro deve ter no mínimo três métodos. Um filtro é uma classe do usuário que implementa uma interface. Seus métodos são:
- destroy()
- delete()
- doFilter()
Configuração de um Filtro no web.xml
<filter-name>meuFiltro</filter-name>
<filter-class>br.com.caelum.filtro.MeuFiltro</filter-class>
<filter-name>meuFiltro</filter-name>
<url-pattern>/*</url-pattern>
Métodos para Objetos em Escopos de Aplicação Web
- setAttribute(String, Object)
- getAttribute(String): Retorna um objeto.
Definindo um Filtro com Anotação
Para definirmos um filtro, basta apenas criarmos uma classe que implementa a interface javax.servlet.Filter
e anotarmos a classe com @WebFilter
.
@WebFilter("/oi")
public class MeuFiltro implements Filter {
public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) {
// ...
}
}