Sistema web para gestão de cinema: cadastro de clientes, filmes, salas, sessões e venda de ingressos com registro de pagamentos. Projeto acadêmico desenvolvido no contexto da disciplina de Padrões de Projetos, aplicando padrões estruturais e comportamentais em uma aplicação Java EE (Servlet + JSP + MySQL).
- 👤 Clientes — cadastro, listagem, edição e exclusão.
- 🎞️ Filmes — cadastro e vínculo com sessões.
- 🏟️ Salas — capacidade e associação com sessões.
- 📅 Sessões — data/hora, filme associado e consulta de vagas disponíveis.
- 🎟️ Ingressos — emissão vinculando cliente, sessão e forma de pagamento.
- 💳 Pagamentos — abstração por interface e implementações (cartão, boleto, PIX etc.), com uso de Builder para montagem dos objetos de pagamento.
| Tecnologia | Uso |
|---|---|
| Java 24 | Linguagem Back-End principal |
| Maven | Build e empacotamento WAR |
| JavaX Servlet API / JSP | Camada web |
| MySQL | Banco de dados relacional |
Fluxo típico de requisição: navegador → /controle?model=Cliente&op=ConsultarTodos → instanciação reflexa do comando ClienteConsultarTodos → JSP de destino listaClientes.jsp.
- JDK 24 (ou ajuste no
pom.xml). - Maven 3.x.
- MySQL em execução (porta padrão
3306). - Servidor de aplicação compatível com Servlet 4 (ex.: Tomcat 9).
- Execute o script
sql/cineplus_schema.sqlno MySQL Workbench. - Ajuste credenciais em
FabricaConexao.javase necessário:- URL:
jdbc:mysql://localhost:3306/db_cineplus - Usuário:
root - Senha: (vazia por padrão)
- URL:
No diretório do projeto (onde está o pom.xml):
mvn clean packageO artefato gerado é target/CinePlus.war. Copie-o para o diretório webapps do Tomcat (ou faça o deploy pela interface de administração do servidor).
É recomendada a utilização da IDE IntelliJ IDEA com a extensão Tomcat and TomEE ou SmartTomcat.
Após o deploy com contexto /CinePlus:
- URL base:
http://localhost:8080/CinePlus/ - O
index.htmlredireciona para/CinePlus/controle(Front Controller).
Parâmetros usados pela controller:
model— nome da entidade (Cliente,Filme,Ingresso,Sala,Sessao).op— ação (por exemploCadastrar,ConsultarTodos,Atualizar,Deletar,ConsultarIdouConsultarCadastroquando existir).
- Command — cada operação (por exemplo
ClienteCadastrar,FilmeConsultarTodos) implementaICommandem pacotes por domínio (command.cliente,command.filme, …); - DAO — acesso a banco de dados em
dao; - MVC — segmentação entre entidades e manipulação de dados e abstração de lógicas de negócio da interface de usuário, com controle de servlet único através do
Controllermapeado em/controle, que despacha para comandos via parâmetrosmodeleop; - Decorator — implementação de diferentes formas de pagamento e diferentes tipos de parcelamento sem explosão de classes;
- Builder — classes Builder internos que simplificam o instanciamento de classes de modelo (
ClienteBuilder); - Factory — unificação do
Controllerpor parâmetros de especificação do modelo e da ação de acordo com o nome de suas classes Command; 53399517d2369805a9292662459a725b33873ad7- Decorator — separação modular dos objetos dePagamentoem tipos (PagamentoAVistaePagamentoParcelado) e formas de pagamento (Pix,Boleto,Cartao) sem a necessidade de criar todas as suas combinações possíveis (explosão de classes).
Uso educacional. Todos os direitos reservados para os autores.




















