exercício método GET

9 respostas
Meg
[color=blue]Qual seria a solução para que na primeira chamada da página produto.jsp (via método GET), os campos dos dados dos produtos apareçam vazios, ou seja, sem exibir zeros e nulls. [/color]
String acao = request.getParameter("vAcao");
		 if (acao.equals("Incluir"))
			 incluir(request, response);
		 else
			 consultar(request, response);

  	   }catch (Exception objEx){
		request.setAttribute("objExcecao", objEx);
   	  	RequestDispatcher rd = request.getRequestDispatcher("paginaErro.jsp");
	      rd.forward(request, response);
	   }
	}
//PASSA CONTROLE PARA PÁGINA processado.jsp
		request.setAttribute("operacao", request.getParameter("vAcao"));
   	  	RequestDispatcher rd = request.getRequestDispatcher("processado.jsp");
	      rd.forward(request, response);
    	} catch (Exception objEx) {
    		request.setAttribute("objExcecao", objEx);
   	  	RequestDispatcher rd = request.getRequestDispatcher("paginaErro.jsp");
	      rd.forward(request, response);
    	}
    }

9 Respostas

fernandoabcampos

Olá Meg, desculpe, talvez seja uma falha de interpretação minha, mas vc poderia fornecer mais algumas informações sobre seu problema?

Por exemplo:

  • de onde vem essa chamada;
  • se você está tendo problemas com nulos e “” na captura dos seu parâmetros em seu servlet (doGet, por exemplo);
  • se está obtendo algum NullPointerException, por exemplo, após capturar os request.getParameter e tentar fazer algo com essas variáveis.

Att,
Fernando Antonio Barbeiro Campos

Meg

é mais ou menos assim… quando vou fazer a chamada para a pagina ser exibida os campos aparecem com valores zeros e null e so depois de outra chamada q passa a apresentar o valores reais…preciso que na primeira visualização da paginas todos os campos apareçam totalmente vazios,melhorou?

J

Tenta iniciar a tua bean com um construtor que seta valores nas variáveis que estão nulas

Meg

se eu setar valores nas variáveis,vai exibir os valores que setei,não? é para aparecer o campo vazio,sem nada.

fernandoabcampos

Olá Meg, seguindo o conselho do Joseph Barros, se vc tem, por exemplo, uma String e coloca ela como vazia (com literal “”) não resolve seu problema?

J

Nos campos de variáveis de classe tu simplesmente inicializa, claro que em casos de primitivos tu vai precisar setar um valor mesmo.

Meg

vlw glra pelos toqs…vou testar aki

Meg

:?:

Meg

glra,obrigada pela discas,mas não resolveu a questão...então resolvi postar o código completo do exercício.

ah, dei esta solução, q tbm não foi aceita :(

public void doGet(HttpServletRequest request,
                    HttpServletResponse response)
      throws ServletException, IOException {
    response.setContentType("text/html");
  }

infelizmente ainda não resolvi a questão.

pf,pf,pfarvozim...alguem resolve isso p mim.:)

a pergunta conforme o questionário:

Pergunta sobre o página produto.jsp.

Apresente uma solução para que na primeira chamada da página produto.jsp (via método GET), os campos dos dados dos produtos apareçam vazios, ou seja, sem exibir zeros e nulls.

I-Código fonte da classe Servlet Produto.
   
package p8;

import java.sql.*;
import java.io.IOException;
import javax.servlet.RequestDispatcher;
//outros imports omitidos desta página

public class ServletProduto extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    //Construtor **************
    public ServletProduto() {
    }

    //DoPOST
	protected void doPost(HttpServletRequest request, HttpServletResponse response)
                       throws ServletException, IOException {
	  try {
		 //vAcao é o NAME do botão SUBMIT na página produto.jsp   
		 String acao = request.getParameter("vAcao");
		 if (acao.equals("Incluir"))
			 incluir(request, response);
		 else
			 consultar(request, response);

  	   }catch (Exception objEx){
		request.setAttribute("objExcecao", objEx);
   	  	RequestDispatcher rd = request.getRequestDispatcher("paginaErro.jsp");
	      rd.forward(request, response);
	   }
	}
    
    private void incluir (HttpServletRequest request, HttpServletResponse response)
                     throws Exception {
    	try {
	    	//ESCREVER PROCEDIMENTOS PARA INSERT NA TABELA
		String strCodigo = request.getParameter("vCodigo");
		int codigo = Integer.parseInt(strCodigo);
		String descricao = request.getParameter("vDescricao");
		String strValor = request.getParameter("vVlrUnit");
		float valor = Float.parseFloat(strValor);
		String strQtde = request.getParameter("vQtde");
		int qtde = Integer.parseInt(strQtde);
		//INSTRUÇÃO SQL INSERT - FORMATO JDBC
		String sql = "INSERT INTO TBProdutos VALUES (?, ?, ?, ?)";
		Connection conexao = FabricaConexao.abreConexaoMySQL();
		PreparedStatement comando = conexao.prepareStatement(sql);
		comando.setInt(1, codigo);
		comando.setString(2, descricao);
		comando.setDouble(3, valor);
		comando.setInt(4, qtde);
		comando.execute();
		//PASSA CONTROLE PARA PÁGINA processado.jsp
		request.setAttribute("operacao", request.getParameter("vAcao"));
   	  	RequestDispatcher rd = request.getRequestDispatcher("processado.jsp");
	      rd.forward(request, response);
    	} catch (Exception objEx) {
    		request.setAttribute("objExcecao", objEx);
   	  	RequestDispatcher rd = request.getRequestDispatcher("paginaErro.jsp");
	      rd.forward(request, response);
    	}
    }
    


    private void consultar (HttpServletRequest request, HttpServletResponse response)             
                      throws Exception {
    	try {
          String strCodigo = request.getParameter("vCodigo");
	    int codProd = Integer.parseInt(strCodigo);
	    String sql = "SELECT * FROM TBProdutos WHERE Codigo = ?";
	    Connection conexao = FabricaConexao.abreConexaoMySQL();
	    PreparedStatement comando = conexao.prepareStatement(sql);
	    comando.setInt(1, codProd);
          //EXECUTA SELECT NA TABELA - executeQuery
	    ResultSet resultadoSelect = comando.executeQuery();
	    if (resultadoSelect.next()){ //Se retorno consulta válida
	      String descProd = resultadoSelect.getString("descricao");
	      float valorProd = resultadoSelect.getFloat("valorunit");
	      int qtdeProd = resultadoSelect.getInt("qtde");
	      ProdutoBean produto = 
	    		new ProdutoBean(codProd, descProd, valorProd, qtdeProd);
	      request.setAttribute("objProd", produto);
   	  	RequestDispatcher rd = request.getRequestDispatcher("produto.jsp");
	      rd.forward(request, response);
	    }
    	} catch (Exception objEx) {
    		request.setAttribute("objExcecao", objEx);
   	  	RequestDispatcher rd = request.getRequestDispatcher("paginaErro.jsp");
	      rd.forward(request, response);
    	}
    }
    

II- Trecho do Código Fonte da classe FábricaConexao

public class FabricaConexao {
	//DADOS PARA CONEXAO AO MYSQL
	 */

  private static String DRIVER_M = "com.mysql.jdbc.Driver"; //Classe do driver 
  private static String BANCO_M = "BDLoja"; //Nome do Banco criado
  private static String HOST_M = "localhost"; //Servidor BD
          private static String STR_CONEXAO_M = "jdbc:mysql://"+HOST_M+
                                     ":3306/" + BANCO_M;                 
  private static String USUARIO_M = "root"; //Usuario do banco
  private static String SENHA_M = "root"; //Senha de conexao

  public static Connection abreConexaoMySQL() throws SQLException{
	try {
	  Class.forName(DRIVER_M);
	  Connection con =  
              DriverManager.getConnection(STR_CONEXAO_M,USUARIO_M,SENHA_M);
      return con;
	} catch (ClassNotFoundException e) {
		throw new SQLException(e.getMessage());
	}
}
}

III-Trecho do Código Fonte da classe ProdutoBean (apenas construtor parametrizado)

public class ProdutoBean { //Item 3
	. . .
	public ProdutoBean(int codigo, String descricao, float vlrUnit, int qtde) {
		super();
		this.codigo = codigo;
		this.descricao = descricao;
		this.vlrUnit = vlrUnit;
		this.qtde = qtde;
	}
       . . .
Criado 7 de outubro de 2011
Ultima resposta 20 de out. de 2011
Respostas 9
Participantes 3