Problema com querystring

2 respostas
K

Boa noite galera
blz?
será q alguem ae poderia me ajudar por favor?

to mandando valores atraves de QueryString em java

ex:
http://localhost:8080/Teste/Servelet?nome_Produto=teste&periodo_Produto=2&qtde_Produto=2&tag_Produto=alimento&ultima_Compra=[telefone removido]

e no browser está retornando esse erro:
type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

java.lang.NullPointerException

Servelet.doGet(Servelet.java:35)

javax.servlet.http.HttpServlet.service(HttpServlet.java:617)

javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)

note The full stack trace of the root cause is available in the JBoss Web/2.1.2.GA logs.

alguem pode me dar pelo menos uma dica?

vlw’s

o código segue abaixo:

import java.io.IOException;

import java.io.PrintWriter;

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.ResultSet;

import java.sql.Statement;

import java.util.Date;
import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

/**

  • Servlet implementation class Servelet
    
    */
    
    public class Servelet extends HttpServlet {
    
    private static final long serialVersionUID = 1L;
    

    /**

    • @see HttpServlet#HttpServlet()
      */
      public Servelet() {
      super();
      // TODO Auto-generated constructor stub
      }

    /**

    • @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
      
      */
      
      protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
      
      if (request.getParameter(“perido_Produto”).toString()=="" && request.getParameter(“qtde_Produto”).toString()==""){
      
      return;
      
      }
      
      //int id = Integer.parseInt(request.getParameter(“id_Produto”).toString());
      
      String produto = request.getParameter(“nome_Produto”).toString();
      
      int periodo = Integer.parseInt(request.getParameter(“periodo_Produto”).toString());
      
      int qtde = Integer.parseInt(request.getParameter(“qtde_Produto”).toString());
      
      String tag = request.getParameter(“tag_Produto”).toString();
      
      String data = request.getParameter(“ultima_Compra”).toString();
      

      String balance = cadastro_Produto(produto, qtde, periodo, tag, data);

      if(balance == null)
      
      {
      
      response.sendError(response.SC_BAD_REQUEST, “Não foi possível cadastrar o produto…”);
      
      return;
      
      }
      
      response.setContentType(“text/plain”);
      
      PrintWriter out = response.getWriter();
      
      out.print(balance);
      
      out.close();
      
      }
      
    private String cadastro_Produto(String produto, int qtde, int periodo, String tag, String data)
    
    //private String cadastro_Produto(String produto)
    
    {
    
    Connection con = null;
    
    Statement st = null;
    
    StringBuffer msgb = new StringBuffer("");
    
    try
    
    {
    
    Class.forName(org.hsqldb.jdbcDriver);
    
    con = DriverManager.getConnection(jdbc:hsqldb:hsql://localhost/xdb”, “sa”, “”);
    
    Statement stmt = con.createStatement();
    
    ResultSet rs = stmt.executeQuery(insert into produto (nm_produto, qtd_produto, prd_produto, tag_produto, data) values(’”+produto+"’, “+qtde+”,"+periodo+", ‘"+tag+"’, ‘"+data+"’)");
    
    System.out.println(insert into produto (nm_produto, qtd_produto, prd_produto, tag_produto, data) values( '”+produto+"’, “+qtde+”,"+periodo+", ‘"+tag+"’, ‘"+data+"’)");
    
    }
    
    catch(Exception e)
    
    {
    
    return e.toString();
    
    }
    
    return produto;
    

    }

    /**

    • @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
      */
      protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
      // TODO Auto-generated method stub
      }

}

2 Respostas

nel

Olá.

Por favor, sempre que postar código poste entre as tags code, pois sem ela fica muito dificíl de compreender o código ok?
Outro detalhe, veja a linha 35 do seu código, ela está acessando algum valor através de um objeto nulo, o que ocasiona um NullPointerException.

Abraços.

Vinny
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.Date;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
* Servlet implementation class Servelet
*/
public class Servelet extends HttpServlet {
private static final long serialVersionUID = 1L;

/**
* @see HttpServlet#HttpServlet()
*/
public Servelet() {
super();
// TODO Auto-generated constructor stub
}

/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

if (request.getParameter("perido_Produto").toString()=="" && request.getParameter("qtde_Produto").toString()==""){
return;
}
//int id = Integer.parseInt(request.getParameter("id_Produto").toString());
String produto = request.getParameter("nome_Produto").toString();
int periodo = Integer.parseInt(request.getParameter("periodo_Produto").toString());
int qtde = Integer.parseInt(request.getParameter("qtde_Produto").toString());
String tag = request.getParameter("tag_Produto").toString();
String data = request.getParameter("ultima_Compra").toString();


String balance = cadastro_Produto(produto, qtde, periodo, tag, data);

if(balance == null)
{
response.sendError(response.SC_BAD_REQUEST, "Não foi possível cadastrar o produto...");
return;
}
response.setContentType("text/plain");
PrintWriter out = response.getWriter();
out.print(balance);
out.close();
}


private String cadastro_Produto(String produto, int qtde, int periodo, String tag, String data)
//private String cadastro_Produto(String produto)
{
Connection con = null;
Statement st = null;
StringBuffer msgb = new StringBuffer("");
try
{
Class.forName("org.hsqldb.jdbcDriver");
con = DriverManager.getConnection("jdbc:hsqldb:hsql://localhost/xdb", "sa", "");
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery("insert into produto (nm_produto, qtd_produto, prd_produto, tag_produto, data) values('"+produto+"', "+qtde+","+periodo+", '"+tag+"', '"+data+"')");
System.out.println("insert into produto (nm_produto, qtd_produto, prd_produto, tag_produto, data) values( '"+produto+"', "+qtde+","+periodo+", '"+tag+"', '"+data+"')");
}
catch(Exception e)
{
return e.toString();
}
return produto;

}


/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
}

}

/\
Sempre use a TAG CODE pra posta código fonte

pelo erro que deu o problema esta nesse if
alguns dos 2 valores que vc esta comparando
esta com o valor null ai quando vc vai converte para string da nullPointer

if (request.getParameter("perido_Produto").toString()=="" && request.getParameter("qtde_Produto").toString()==""){  
   return;  
 }

Muda seu if para este aqui abaixo:

if (request.getParameter("perido_Produto") == null && request.getParameter("qtde_Produto") == null){  
   return;  
 }
Criado 12 de dezembro de 2009
Ultima resposta 12 de dez. de 2009
Respostas 2
Participantes 3