Seevlet com ERRO

2 respostas
T

Caros,
Criei um servlet para atender uma submissão de um formulário, a resposta é a média.
O formulário tem 3 campos com notas A1, A2 e A3, quando faço a requisição recebo essa resposta.

java.lang.NullPointerException

sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:991)

java.lang.Double.parseDouble(Double.java:510)

servletMedia.ServletMedia.doPost(ServletMedia.java:26)

servletMedia.ServletMedia.doGet(ServletMedia.java:18)

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

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

Parte do código.

protected void doGet(HttpServletRequest req, HttpServletResponse res)

throws ServletException, IOException

{

doPost(req,res);
}


protected void doPost(HttpServletRequest req, HttpServletResponse res) 
throws ServletException, IOException 
{
	double a1 = Double.parseDouble(req.getParameter("a1"));
	double a2 = Double.parseDouble(req.getParameter("a2"));
	double a3 = Double.parseDouble(req.getParameter("a3"));
	
	double media;				
	
	if (a1 > a3 && a2 > a3)
	{
		media = (a1 + a2) / 2;
	}	
	else
		if (a2 > a1 && a2 > a1)
		{
			media = (a2 + a3) / 2;
		}
		else 
		{
			media = (a3 + a1) / 2;
		}
	
	res.setContentType("text/html");
	PrintWriter out = res.getWriter();
	
	out.print("<html><body>");
	
	if (media >= 6)
	{
		out.print("<h1>Aluno com media "+media+"está aprovado!");
	}
	else
	{
		out.print("<h1>Aluno com media "+media+"está reprovado!");
	}
	
	out.print("</h1></body></html>");
}

}

2 Respostas

Y

O request não tem os valores que você deveria estar passando, por isso está dando o NPE.

Verifique no formulário HTML se os nomes dos campos estão corretos (a1, a2, a3).

Não lembro se o request é case-sensitive quanto aos nomes dos campos, mas tente:

double a1 = Double.parseDouble(req.getParameter("A1"));
double a2 = Double.parseDouble(req.getParameter("A2"));
double a3 = Double.parseDouble(req.getParameter("A3"));

Talvez os campos do teu formulário estejam com nomes com letras maiúsculas.

OU

Verifique no formulário HTML se você está realmente configurando o NAME dos campos, e não os ID.

T

OK! Vc estava certo, o problema era case-sensitive.
Vlw… 8) .
Testei e deu certo!

Criado 25 de abril de 2007
Ultima resposta 27 de abr. de 2007
Respostas 2
Participantes 2