Tutorial Jogo da Velha WEB



Documentos relacionados
Faculdades Integradas Santa Cruz. Tutorial de Java MVC WEB Criando uma tela de Login com Banco de Dados

Universidade São Judas Tadeu. Faculdade de Tecnologia e Ciências Exatas. Sistemas de Informação 3ASIN

Autenticação e Autorização

Programação II Programação para a Web. Christopher Burrows

J2EE. Exemplo completo Utilização Servlet. Instrutor HEngholmJr

Executando comandos do Sistema Operacional em uma aplicação WEB Java

JSP e Servlet Princípio de MVC

!" # # # $ %!" " & ' ( 2

Aplicativos Web com Orientação a Objetos

Prof. Roberto Desenvolvimento Web Avançado

Arquitetura de Aplicações JSP/Web. Padrão Arquitetural MVC

Como criar um EJB. Criando um projeto EJB com um cliente WEB no Eclipse

Mini-Tutorial. Como criar relatórios Java para Web com JasperReports e ireport por Roberto J. Furutani 20/07/2005

Trabalhando com Servlet

Java na WEB Servlet. Sumário

1. Crie um banco de dados (no MySQL) chamado produtos e um tabela produto. Realise as inserções na tabela produto de acordo com os scripts abaixo.

INSTALAÇÃO E USO DO GOOGLE APP ENGINE PLUGIN utilizando o Eclipse Galileo

PROJETO WEB: Java. Prof Fernando Gomes

Sistemas Distribuídos na WEB (Plataformas para Aplicações Distribuídas)

Java para Desenvolvimento Web

Tutorial. Começando a Criar Aplicativos SMS

Lista de exercícios I - RESPOSTAS Servlets e banco de dados

Unidade 9: Middleware JDBC para Criação de Beans

Java Server Pages. Arquitectura de uma aplicação distribuída em Internet. Figura 1 Modelo 2

Exibir relatórios gerados pelo Jasper Report em Flex

TUTORIAL JSP & SERVLET

Gerador de código JSP baseado em projeto de banco de dados MySQL

USANDO APPLETS NO NETBEANS (WEB APPLICATION)...E A APPLET CHAMA ALGUM PACOTE EXTERNO (por Luis Alberto M Palhares de Melo Julho/2011)

Projeto webservicejax

Tencologia em Análise e Desenvolvimento de Sistemas Disciplina: WEB I Conteúdo: WEB Container Aula 04

Aula 03 - Projeto Java Web

Java para WEB. Servlets

Criando e Entendendo o Primeiro Servlet Por: Raphaela Galhardo Fernandes

TUTORIAL DE INTRODUÇÃO AO CEWOLF

Estrutura do Projeto - Trabalhando com Banco de Dados

Web Browser como o processo cliente. Servidor web com páginas estáticas Vs. Aplicações dinâmicas para a Web:

Prática em Laboratório N.02 Criando um serviço Web via NetBeans

Curso de Java. Geração de Páginas WEB. TodososdireitosreservadosKlais

Programação Na Web. Servlets: Como usar as Servlets. Agenda. Template genérico para criar Servlets Servlet 2.4 API

Programação Web Aula 12 - Java Web Software

Java na Web. Aplicações Web

Programação na Web. Servlets Leitura dos Parâmetros e Cabeçahos

Programação em Rede. Servlets. Manipulação de dados de input em Servlets

Registo de condutor (Protótipo funcional) Página apresentada ao utilizador

Tutorial RMI (Remote Method Invocation) por Alabê Duarte

COBRANÇA SITE. Instruções de Instalação e Utilização. Manual Técnico do Desenvolvedor. Segunda via do Bloqueto Digital

Introdução a Servlets e JSP. Prof. Samuel Martins samuellunamartins at gmail dot com Faculdade São Miguel

Material de Apoio Profº Alan Cleber Borim

J550. Model View Controller

Agilizando o processo de redeploy de aplicações Java

Fundamentos de Servlets. Conceitos e ciclo de vida Classes e Interfaces da API Exemplos de Servlets

Prática Sobre Servlets e JSP

Servlets & JSP. Prof. Ramon Chiara

Programação Na Web. Sessão II. Índice. Visão geral da API Sessão. Obter dados sobre uma sessão. Extrair informação sobre uma Sessão

Apache -Tomcat. Instalação e Configuração. Grupo Multitecnus,

Desenvolvimento Web TCC Turma A-1

Implementar um exemplo de relacionamento entre classes um para muitos (1:N) e um para um (1:1). Sistema para uma Promotora de Evento Agenda Anual

Material de apoio a aulas de Desenvolvimento Web. Tutorial Java WEB JSP & HTML & CSS & CLASSE & OBJETOS. AAS -

Associação Carioca de Ensino Superior Centro Universitário Carioca

Java Servlets. Leonardo Gresta Paulino Murta

Use a Cabeça! FREEMAN, Eric e Elisabeth. HTML com CSS e XHTML BASHMAN, Brian / SIERRA Kathy / BATES, Bert. Servlets & JSP

Programação web Prof. Wladimir

Unidade 14: Web Services Prof. Daniel Caetano

Persistência Java para Web com MySQL

Introdução. Servlet. Ciclo Vida. Servlet. Exemplos. Prof. Enzo Seraphim

Desenvolva aplicações para a nuvem com CloudBees - Revista Java Magazine 116

Java Server Pages (JSP)

Estudo Dirigido - Parte 1

Servlets, JSPs e Java Beans

SERVLETS. Introdução UNIDADED

PadrãoIX. Módulo II JAVA. Marcio de Carvalho Victorino. Servlets A,L,F,M

Desenvolvimento de Sistemas Corporativos Aula 1.5 Introdução a Servlets. Prof. Bruno Moreno

DWR DIRECTED WEB REMOTING

Tutorial para criação de componentes JSF Facelets Por Érico GR 07/08/2007

Prova de Java. 1) Copie o programa abaixo no eclipse e complete-o, utilizando os conceitos aprendidos durante o curso. (4 pontos)

Objetos Implícitos. Conceito. Instanciados pelo próprio contêiner. Disponíveis em quaisquer páginas JSP.

Java para WEB com Struts 2 e Hibernate

Ciclo de vida; Funcionamento; Requisições e Respostas.

J550 Integração com Bancos de Dados

Java II. Sérgio Luiz Ruivace Cerqueira

Criação de Servlets Name Directory Build WAR JSP/Servlet frameworks Launch URL Package Class name Generate header comments

Java Server Pages. O código HTML pode indicar o método de arranque do servlet gerado por um JSP : doget ou dopost.

crudgenerator Passos slimphp/extra/crudgenerator/view/index_view.php A tela abaixo m ostra o p rimeiro passo

ANDROID APPLICATION PROJECT

Java na WEB Componentes Bean

Surgindo em 1997 a API Java Servlet proporciona ao desenvolvedor a possibilidade de adicionar conteúdo dinâmico em um servidor web usando a

Programação Web. Professor: Diego Oliveira. Conteúdo 02: JSP e Servlets

UM GUIA PARA O DESENVOLVIMENTO DE APLICAÇÕES WEB USANDO JAVA

Curso de Java. Geração de Páginas WEB através de JSP. Todos os direitos reservados Klais

4 MODELAGEM DA APLICAÇÃO J2ME

Programação para Internet II

Lista de Revisão. 3. Analise a afirmativa a seguir como verdadeira ou falsa e justifique.

JavaScript. JavaScript é uma linguagem de script usada em navegadores web. É uma linguagem dinâmica, estruturada e orientada em objetos.

programação de páginas de conteúdo dinâmico

Manual de Envio de Torpedos SMS Comtele. Introdução Cadastrar um Grupo Inserir ou Importar Contatos Ordem de envio...

J550 Testes em Aplicações Web com Cactus

Faculdades Network Bacharelado em Sistemas de Informação Tópicos Avançados. Aulas 25 e 26 Exemplo de Aplicação usando JSP e MySQL

Introdução à Plataforma J2EE Java2 Enterprise Edition. Alex de V. Garcia, Dr.

Transcrição:

Tutorial Jogo da Velha WEB Criação do Projeto 1- Inicie o Eclipse 2- Crie um novo projeto Web dinâmico. 3- Na tela seguinte, digite o nome do projeto e caso no campo Target Runtime não estiver aparecendo nada, vá no botão New e localize o diretório raiz do seu TomCat.

. 4- Clique em Finish para terminar a criação do projeto. Criando a estrutura de pacotes 1- Clique com o botão direito no nome do seu projeto e escolha a opção New Package

. 2- Crie o pacote com o nome br.santacruz.jogodavelhaweb2.model.vo 3- Repita o procedimento anterior e crie os pacotes:: br.santacruz.jogodavelhaweb2.model.dao, br.santacruz.jogodavelhaweb2.control, br.santacruz.jogodavelhaweb2.control.servlets,.

Criando o VO 1- Com os pacotes já criados, crie uma nova classe dentro do pacote Vo. 2- Coloque o nome da classe como JogoVo

3- Insira o código abaixo na Classe JogoVo

package br.santacruz.jogodavelhaweb2.model.vo; import java.util.vector; public class JogoVo { private Vector<String> tabuleiro = new Vector<String>(9); private String simbolojogador1 = "X"; private String simbolojogador2 = "O"; private int njogadasjogador1 = 0; private int njogadasjogador2 = 0; private int vez = 1; private int fimjogo = 0; private int vencedor = 0; private String msg = "Nenhuma Mensagem!"; private String pos1; private String pos2; private String pos3; private String pos4; private String pos5; private String pos6; private String pos7; private String pos8; private String pos9; public JogoVo() { gettabuleiro().add(" "); gettabuleiro().add(" "); gettabuleiro().add(" "); gettabuleiro().add(" "); gettabuleiro().add(" "); gettabuleiro().add(" "); gettabuleiro().add(" "); gettabuleiro().add(" "); gettabuleiro().add(" "); public Vector<String> gettabuleiro() { return tabuleiro; public void settabuleiro(vector<string> tabuleiro) { this.tabuleiro = tabuleiro; public String getsimbolojogador1() { return simbolojogador1; public void setsimbolojogador1(string simbolojogador1) { this.simbolojogador1 = simbolojogador1; public String getsimbolojogador2() { return simbolojogador2; public void setsimbolojogador2(string simbolojogador2) { this.simbolojogador2 = simbolojogador2; public int getnjogadasjogador1() { return njogadasjogador1; public void setnjogadasjogador1(int jogadasjogador1) { njogadasjogador1 = jogadasjogador1; public int getnjogadasjogador2() { return njogadasjogador2; njogadasjogador2 = jogadasjogador2; public int getvez() { return vez;

public void setvez(int vez) { this.vez = vez; public int getfimjogo() { return fimjogo; public void setfimjogo(int fimjogo) { this.fimjogo = fimjogo; public int getvencedor() { return vencedor; public void setvencedor(int vencedor) { this.vencedor = vencedor; public String getmsg() { return msg; public void setmsg(string msg) { this.msg = msg; public String getpos1() { return this.tabuleiro.get(0); public void setpos1(string pos1) { this.pos1 = pos1; public String getpos2() { return this.tabuleiro.get(1); public void setpos2(string pos2) { this.pos2 = pos2; public String getpos3() { return this.tabuleiro.get(2); public void setpos3(string pos3) { this.pos3 = pos3; public String getpos4() { return this.tabuleiro.get(3); public void setpos4(string pos4) { this.pos4 = pos4; public String getpos5() { return this.tabuleiro.get(4); public void setpos5(string pos5) { this.pos5 = pos5; public String getpos6() { return this.tabuleiro.get(5); public void setpos6(string pos6) { this.pos6 = pos6; public String getpos7() { return this.tabuleiro.get(6); public void setpos7(string pos7) { this.pos7 = pos7; public String getpos8() { return this.tabuleiro.get(7); public void setpos8(string pos8) { this.pos8 = pos8; public String getpos9() { return this.tabuleiro.get(8);

public void setpos9(string pos9) { this.pos9 = pos9; Criando a classe de controle do Jogo 1- Crie uma nova classe no pacote de controle. De o nome de JogoControl

package br.santacruz.jogodavelhaweb2.control; import br.santacruz.jogodavelhaweb2.model.vo.jogovo; public class JogoControl { 2- Coque o código abaixo no corpo desta classe public int verificajogada(int jogada, JogoVo jogovo) { if (jogada > 0 && jogada < 10) { if (jogovo.gettabuleiro().get(jogada -1).equals(" ")) return 0; return 0; public JogoVo realizajogada(int jogada, JogoVo jogovo) { String simbolo = ""; if (jogovo.getvez() == 1) simbolo = jogovo.getsimbolojogador1(); simbolo = jogovo.getsimbolojogador2(); jogovo.gettabuleiro().set(jogada-1,simbolo); //Iverte a Vez if (jogovo.getvez() == 1) { jogovo.setvez(2); jogovo.setnjogadasjogador1(jogovo.getnjogadasjogador1()+1); { jogovo.setvez(1); jogovo.setnjogadasjogador2(jogovo.getnjogadasjogador2()+1); return jogovo; public int verificavencedor(jogovo jogovo) { if ( (jogovo.gettabuleiro().get(0).equals("x")) && (jogovo.gettabuleiro().get(1).equals("x")) && (jogovo.gettabuleiro().get(2).equals("x"))) if ( (jogovo.gettabuleiro().get(3).equals("x")) && (jogovo.gettabuleiro().get(4).equals("x")) && (jogovo.gettabuleiro().get(5).equals("x"))) if ( (jogovo.gettabuleiro().get(6).equals("x")) && (jogovo.gettabuleiro().get(7).equals("x")) && (jogovo.gettabuleiro().get(8).equals("x"))) if ( (jogovo.gettabuleiro().get(0).equals("x")) && (jogovo.gettabuleiro().get(3).equals("x")) && (jogovo.gettabuleiro().get(6).equals("x"))) if ( (jogovo.gettabuleiro().get(1).equals("x")) && (jogovo.gettabuleiro().get(4).equals("x")) && (jogovo.gettabuleiro().get(7).equals("x"))) if ( (jogovo.gettabuleiro().get(2).equals("x")) && (jogovo.gettabuleiro().get(5).equals("x")) && (jogovo.gettabuleiro().get(8).equals("x"))) if ( (jogovo.gettabuleiro().get(0).equals("x")) && (jogovo.gettabuleiro().get(4).equals("x")) && (jogovo.gettabuleiro().get(8).equals("x"))) if ( (jogovo.gettabuleiro().get(2).equals("x")) && (jogovo.gettabuleiro().get(4).equals("x")) && (jogovo.gettabuleiro().get(6).equals("x")))

if ( (jogovo.gettabuleiro().get(0).equals("o")) && (jogovo.gettabuleiro().get(1).equals("o")) && (jogovo.gettabuleiro().get(2).equals("o"))) return 2; if ( (jogovo.gettabuleiro().get(3).equals("o")) && (jogovo.gettabuleiro().get(4).equals("o")) && (jogovo.gettabuleiro().get(5).equals("o"))) return 2; if ( (jogovo.gettabuleiro().get(6).equals("o")) && (jogovo.gettabuleiro().get(7).equals("o")) && (jogovo.gettabuleiro().get(8).equals("o"))) return 2; if ( (jogovo.gettabuleiro().get(0).equals("o")) && (jogovo.gettabuleiro().get(3).equals("o")) && (jogovo.gettabuleiro().get(6).equals("o"))) return 2; if ( (jogovo.gettabuleiro().get(1).equals("o")) && (jogovo.gettabuleiro().get(4).equals("o")) && (jogovo.gettabuleiro().get(7).equals("o"))) return 2; if ( (jogovo.gettabuleiro().get(2).equals("o")) && (jogovo.gettabuleiro().get(5).equals("o")) && (jogovo.gettabuleiro().get(8).equals("o"))) return 2; if ( (jogovo.gettabuleiro().get(0).equals("o")) && (jogovo.gettabuleiro().get(4).equals("o")) && (jogovo.gettabuleiro().get(8).equals("o"))) return 2; if ( (jogovo.gettabuleiro().get(2).equals("o")) && (jogovo.gettabuleiro().get(4).equals("o")) && (jogovo.gettabuleiro().get(6).equals("o"))) return 2; return 0; public int verificafimdejogo(jogovo jogovo) { if (jogovo.getnjogadasjogador1()+jogovo.getnjogadasjogador2() >= 9) if (this.verificavencedor(jogovo)!= 0) return 0;

Criando a View 1- O objetivo é desenvolver um Html parecido com o apresentado abaixo 2- Para tanto, criar um novo arquivo JSP conforme apresentado nas figuras abaixo:

3- Clicar em Finish e na tela seguinte colocar o código listado abaixo.

<%@ page contenttype="text/html; charset=iso-8859-1"%> <%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c"%> <html> <head> <meta http-equiv="content-type" content="text/html; charset=iso-8859-1"> 4- <script> function jogar(pos) { document.form1.txtjogada.value = pos; document.form1.submit(); </script> </head> <body> <form name="form1" action="escutajogadaservlet" method="get"> <input type="hidden" name="txtjogada"/> <table border="1"> <tr> <td><input type="button" value= "<c:out value="${jogovo.pos1"/>" onclick="jogar(1)"/></td> <td><input type="button" value="<c:out value="${jogovo.pos2"/>" onclick="jogar(2)"/></td> <td><input type="button" value="<c:out value="${jogovo.pos3"/>" onclick="jogar(3)"/></td> </tr> <tr> <td><input type="button" value="<c:out value="${jogovo.pos4"/>" onclick="jogar(4)"/></td> <td><input type="button" value="<c:out value="${jogovo.pos5"/>" onclick="jogar(5)"/></td> <td><input type="button" value="<c:out value="${jogovo.pos6"/>" onclick="jogar(6)"/></td> </tr> <tr> <td><input type="button" value="<c:out value="${jogovo.pos7"/>" onclick="jogar(7)"/></td> <td><input type="button" value="<c:out value="${jogovo.pos8"/>" onclick="jogar(8)"/></td> <td><input type="button" value="<c:out value="${jogovo.pos9"/>" onclick="jogar(9)"/></td> </tr> </table> </form> <c:out value="${jogovo.msg"/> <table> <tr> <td>jogador 1: <c:out value="${jogovo.simbolojogador1"/></td> <td>jogadas: </td> </tr> <tr> </tr> <td>jogador 2: <c:out value="${jogovo.simbolojogador2"/></td> <td>jogadas: </td> </table> Vez: <c:out value="${jogovo.vez"/> </body> </html>

Importar as bibliotecas do JSTL conforme figuras abaixo

Construindo o Servlet 1- Clique com o botão direito no pacote servlets e crie um novo servlet 2- Insira o código abaixo no servlet criado

package br.santacruz.jogodavelhaweb2.control.servlets; import java.io.ioexception; import javax.servlet.requestdispatcher; import javax.servlet.servletexception; import javax.servlet.http.httpservlet; import javax.servlet.http.httpservletrequest; import javax.servlet.http.httpservletresponse; import br.santacruz.jogodavelhaweb2.control.jogocontrol; import br.santacruz.jogodavelhaweb2.model.vo.jogovo; /** * Servlet implementation class EscutaJogadaServlet */ public class EscutaJogadaServlet extends HttpServlet { private static final long serialversionuid = 1L; /** * @see HttpServlet#HttpServlet() */ public EscutaJogadaServlet() { super(); // TODO Auto-generated constructor stub /** * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) */ protected void doget(httpservletrequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub processrequest(request, response); /** * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) */ protected void dopost(httpservletrequest request, HttpServletResponse response) throws ServletException, IOException { processrequest(request, response); protected void processrequest(httpservletrequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub //Codigo da minha aplicacao! JogoVo jvo = (JogoVo) request.getsession().getattribute("jogovo"); if (jvo == null) { //Jogo Novo! jvo = new JogoVo(); request.getsession().setattribute("jogovo", jvo); jvo = (JogoVo) request.getsession().getattribute("jogovo"); if (jvo.getfimjogo() == 1) { jvo = new JogoVo(); String jogada = request.getparameter("txtjogada"); if (jogada == null) { request.getsession().setattribute("jogovo", jvo); RequestDispatcher view = request.getrequestdispatcher("index.jsp"); view.forward(request, response); int jogadaint = Integer.parseInt(jogada); JogoControl jc = new JogoControl();

//Valida if (jc.verificajogada(jogadaint,jvo) == 1) jvo = jc.realizajogada(jogadaint,jvo); jvo.setmsg("jogada INVALIDA!"); if (jc.verificafimdejogo(jvo) == 1) { jvo.setfimjogo(1); if (jc.verificavencedor(jvo) == 1) jvo.setmsg("fim de Jogo! Vencedor Jogador 1"); if (jc.verificavencedor(jvo) == 2) jvo.setmsg("fim de Jogo! Vencedor Jogador 2"); jvo.setmsg("fim de Jogo! DEU VELHA!"); request.getsession().setattribute("jogovo", jvo); RequestDispatcher view = request.getrequestdispatcher("jogoview.jsp"); view.forward(request, response);

Basta testar agora e verificar se tudo esta funcionando! Bom divertimento!