Atualizando Banco de Dados

Bom dia Galera, estou tentando fazer um sisteminha Intranet usando como referência a apostila FJ-21 e estou com o seguinte problema…

Bem galera, quero pegar parametros da página “alterametas.jsp”, mas esta ocorrendo o famoso " NullPointerException", sera que alguem poderia me ajudar nesse erro?

[code]<%@ page language=“java” contentType=“text/html; charset=ISO-8859-1”
pageEncoding=“ISO-8859-1”%>
<%@ taglib uri=“http://java.sun.com/jsp/jstl/core
prefix=“c” %>

Insert title here
    Alteração de Metas:<br/>
    
    <form action="alterametas" method="POST">
        Campanha:<input type="text" name="campanha"/><br/>
        Meta do Dia:<input type="text" name="meta_hoje"/><br/>
        Meta da semana:<input type="text" name="meta_semana"/><br/>
        Meta do mes:<input type="text" name="meta_mes"/><br/>
        <input type="submit" value="Enviar"/>
    </form>

<c:import url=“rodape.jsp” />

[/code]

[code]package br.com.wa.servlet;

import java.io.IOException;
import java.io.PrintWriter;

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.com.wa.dao.RankingDAO;
import br.com.wa.modelo.Metas;

public class AlteraMetas extends HttpServlet {
protected void service(HttpServletRequest request,
HttpServletResponse response) throws IOException, ServletException {
// busca o writer
PrintWriter out = response.getWriter();

	// buscando os parâmetros no request
	String campanha = request.getParameter("campanha");
	int meta_hoje = (Integer.parseInt(request.getParameter("meta_hoje")));
	int meta_semana = (Integer.parseInt(request.getParameter("meta_semana")));
	int meta_mes = (Integer.parseInt(request.getParameter("meta_mes")));

	// monta um objeto contato
	Metas metas = new Metas();
	metas.setCampanha(campanha);
	metas.setMeta_hoje(meta_hoje);
	metas.setMeta_semana(meta_semana);
	metas.setMeta_mes(meta_mes);

	// salva o contato
	RankingDAO dao = new RankingDAO();
	dao.atualiza(metas);

	// imprime o nome do contato que foi adicionado

	RequestDispatcher rd = request
			.getRequestDispatcher("/ranking_online.jsp");
	rd.forward(request, response);

	out.println("<html>");
	out.println("<body>");
	out.println("Alteração feita com sucesso");
	out.println("</body>");
	out.println("</html>");
}

}[/code]

[code]package br.com.wa.dao;

import java.sql.*;

import br.com.wa.connection.Connect;
import br.com.wa.modelo.Metas;

public class RankingDAO {

private static Connection connection;

public RankingDAO(Connection connection) {
	this.connection = connection;
}

public RankingDAO() {
	this.connection = new Connect().getConexao();
}

public void atualiza(Metas metas) {

	String sql = "UPDATE CONTATOS SET META_HOJE=?, META_SEMANA=?, META_MENSAL=? WHERE TXT_PRODUTO=?";
	try {
		PreparedStatement stmt = connection.prepareStatement(sql);

		stmt.setInt(1, metas.getMeta_hoje());
		stmt.setInt(2, metas.getMeta_semana());
		stmt.setInt(3, metas.getMeta_mes());
		stmt.setString(4, metas.getCampanha());

		stmt.execute();
		stmt.close();
	} catch (SQLException e) {
		throw new RuntimeException(e);
	}
}

}
[/code]

ERRO:

[code]type Exception report

message

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

exception

java.lang.NullPointerException
br.com.wa.dao.RankingDAO.atualiza(RankingDAO.java:24)
br.com.wa.servlet.AlteraMetas.service(AlteraMetas.java:36)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
note The full stack trace of the root cause is available in the Apache Tomcat/7.0.32 logs.[/code]

OBS: Testeo método atualiza do RankingDAO e esta funcionando perfeitamente, mas parece que tem algo errado com a passagem do parâmetro.

Como sou iniciante em java não consigo resolver esse erro!

Não tenha medo de ler o erro:

[quote]java.lang.NullPointerException
br.com.wa.dao.RankingDAO.atualiza(RankingDAO.java:24) [/quote]Indica que algo está null na linha 24. Veja, ele indica a linha com erro!

Você criou um novo objeto da conexão?

Pelo que da de perceber sua Classe Connect não está conseguindo abrir a conexao com o banco de dados… de uma olhada nela se tiver dificuldades poste a sua classe para que alguem lhe ajuda…

Então, esse método atualizar eu testei e ta funcionando, o que acontece e que a servlet ta fazendo algo erra e nao passa os valores para o RankingDAO

Seria bom voce fazer alguma validaçacao na sua servlet, se os parametros não estiverem presentes lançar uma exececao, algo do tipo…

Muito estranho pois acredito q esteja fazendo corretamente e nao entendo pq nao esta passando os parametros

para ter certeza de que os paramtros estao indo troca o method do seu form coloca get e os parametros deverao aparecer na url, entao se os parametros aparecerem e voce não conseguir pega-los na servlet o seu problema esta la, faz esse teste…