Array list

7 respostas
david.cs20

Ola estou desenvolvendo um sistema de perguntas e respostas a qual tem varias perguntas armazenadas em um array list. A principio coloquei somente 3 para testa e ver como esta ficando porem quando executo ele ñ traz a perguntas do array. Detalhe ele chama as perguntas de maneira randonica.
Porem esta dando um erro na hora de chamar as perguntas no netbeans exibi uma mensagem a respeito do banco de dados.
Segue em os codigos desenvolvidos ate o momento.

//index.jsp    
 <%--    
 Document : pergunta1    
 Created on : 02/03/2009, 21:32:21    
 Author : aluno    
 --%>    
     
 <%@page contentType="text/html" pageEncoding="UTF-8"%>    
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"    
 "http://www.w3.org/TR/html4/loose.dtd">    
 <%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>    
 <html>    
 <head>    
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">    
 <title>.:: Jogo de Perguntas ::.</title>    
 </head>    
 <body>    
 <form action="Perguntas">    
 <h2>Perguntas e Respostas</h2>    
     
 Você respondera 10 perguntas de diversos assuntos.    
     
 Na medida em que for acertando você passara para a pergunta    
 seguinte se você erra o jogo acaba e te mostra quantas    
 perguntas acertou ate o momento.    
     
 <input type="submit" value="Começa"/>    
 </form>    
     
     
     
 </body>    
 </html>
//pergunta.java  
    
    
  import java.util.ArrayList;  
    
  /* 
  * To change this template, choose Tools | Templates 
  * and open the template in the editor. 
  */  
    
  /** 
  * 
  * @author aluno 
  */  
  public class Pergunta {  
  private String pergunta;  
  private ArrayList<String> respostas;  
    
  /** 
  * @return the pergunta 
  */  
  public String getPergunta() {  
  return pergunta;  
  }  
    
  /** 
  * @param pergunta the pergunta to set 
  */  
  public void setPergunta(String pergunta) {  
  this.pergunta = pergunta;  
  }  
    
  /** 
  * @return the respostas 
  */  
  public String getRespostas(int index) {  
  return respostas.get(index);  
  }  
    
  /** 
  * @param respostas the respostas to set 
  */  
  public void setRespostas(String resposta) {  
  this.respostas.add(resposta);  
  }  
  }
//Pergutas.java   Este e o meu servlets
    
    
    
  /* 
  * To change this template, choose Tools | Templates 
  * and open the template in the editor. 
  */  
    
    
  import java.io.IOException;  
  import java.io.PrintWriter;  
  import java.util.Random;  
  import javax.servlet.ServletException;  
  import javax.servlet.http.HttpServlet;  
  import javax.servlet.http.HttpServletRequest;  
  import javax.servlet.http.HttpServletResponse;  
    
  /** 
  * 
  * @author aluno 
  */  
  public class Perguntas extends HttpServlet {  
    
  private BasePergunta DB = new BasePergunta();  
  /** 
  * Processes requests for both HTTP <code>GET</code> and <code>POST</code> methods. 
  * @param request servlet request 
  * @param response servlet response 
  * @throws ServletException if a servlet-specific error occurs 
  * @throws IOException if an I/O error occurs 
  */  
  protected void processRequest(HttpServletRequest request, HttpServletResponse response)  
  throws ServletException, IOException {  
  response.setContentType("text/html;charset=UTF-8");  
  PrintWriter out = response.getWriter();  
  try {  
    
  out.println("<html>");  
  out.println("<head>");  
  out.println("<title>Servlet Perguntas</title>");  
  out.println("</head>");  
  out.println("<body>");  
    
  Random r = new Random();  
  Pergunta P = DB.getPergunta(r.nextInt(DB.tamanho()));  
  out.println(p.getPergunta());  
    
    
  out.println("</body>");  
  out.println("</html>");  
    
  } finally {  
  out.close();  
  }  
  }  
    
  // <editor-fold defaultstate="collapsed" desc="Métodos HttpServlet. Clique no sinal de + à esquerda para editar o código.">  
  /** 
  * Handles the HTTP <code>GET</code> method. 
  * @param request servlet request 
  * @param response servlet response 
  * @throws ServletException if a servlet-specific error occurs 
  * @throws IOException if an I/O error occurs 
  */  
  @Override  
  protected void doGet(HttpServletRequest request, HttpServletResponse response)  
  throws ServletException, IOException {  
  processRequest(request, response);  
  }  
    
  /** 
  * Handles the HTTP <code>POST</code> method. 
  * @param request servlet request 
  * @param response servlet response 
  * @throws ServletException if a servlet-specific error occurs 
  * @throws IOException if an I/O error occurs 
  */  
  @Override  
  protected void doPost(HttpServletRequest request, HttpServletResponse response)  
  throws ServletException, IOException {  
  processRequest(request, response);  
  }  
    
  /** 
  * Returns a short description of the servlet. 
  * @return a String containing servlet description 
  */  
  @Override  
  public String getServletInfo() {  
  return "Short description";  
  }// </editor-fold>  
    
  }
// BasePergunta.java  
  import java.util.ArrayList;  
    
  /* 
  * To change this template, choose Tools | Templates 
  * and open the template in the editor. 
  */  
  /** 
  * 
  * @author aluno 
  */  
  public class BasePergunta {  
    
  private ArrayList<Pergunta> perguntas;  
    
  public BasePergunta() {  
  Pergunta P = new Pergunta();  
  P.setPergunta("Qual a resposta certa?");  
  P.setRespostas("certa");  
  P.setRespostas("errada");  
  P.setRespostas("errada");  
  perguntas.add(P);  
  P = new Pergunta();  
  P.setPergunta("Qual a outra resposta certa?");  
  P.setRespostas("errada");  
  P.setRespostas("certa");  
  P.setRespostas("errada");  
  perguntas.add(P);  
  P = new Pergunta();  
  P.setPergunta("Qual a mais outra resposta certa?");  
  P.setRespostas("errada");  
  P.setRespostas("errada");  
  P.setRespostas("certa");  
  perguntas.add(P);  
  }  
    
  public Pergunta getPergunta(int index) {  
  Pergunta P = perguntas.get(index);  
  perguntas.remove(index);  
  return P;  
  }  
    
  public int tamanho() {  
  return perguntas.size();  
  }  
  }

7 Respostas

thiago.correa

e qual seria a mensagem de erro?!

david.cs20

A mensagem de erro parou de aparecer no entanto ainda continua com erro
Tirei um print pra ficar mais facil a visualização do erro.

pmlm
perguntas.add(P);

O objecto perguntas foi criado?

david.cs20

Aonde no servlet ou na base pergunta?

david.cs20

…?

pmlm

Na BasePergunta, antes de adicionar as perguntas tens de inicializar o ArrayList.

david.cs20

Ok vou testar

Criado 27 de abril de 2009
Ultima resposta 28 de abr. de 2009
Respostas 7
Participantes 3