Falem.
Seguinte. Fiz um servlet simples para uma calculadora com apenas 2 valores. As 4 operações (+, -, * e /) funcionam bem. O problema é com a raiz quadrada. Quando passo do formulario para o servlet ele diz que tem uma string nula. No servlet eu converto a String vinda do formulario para double, mas como (e onde) checar se o valor do double esta nulo ou é igual a zero? É possível? segue as codificações:
formulario.html
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Calculadora Servlet</title>
</head>
<body>
<br /><br />
<fieldset> <legend> Calculadora Servlet Java </legend>
<form id="frmCadastro" action="CalculadoraSevlet" method="post">
<br /><br />
<p>Entre com os valores a serem calculados na Calculadora Servlet Java</p>
<br /><br />
<label for="valorA">Digite o primeiro Valor:</label>
<br />
<input type="text" id="valorA" name="valorA" size=50 />
<br /><br />
<label for="valorB">Digite o segundo Valor:</label>
<br />
<input type="text" id="valorB" name="valorB" size=50 />
<br />
<br />
<p><strong>ATENÇÃO: PARA RAIZ QUADRADA USAR SOMENTE PRIMEIRO VALOR</strong></p>
<select name="opcao" id="opcao">
<option value="+">(+)</option>
<option value="-">(-)</option>
<option value="*">(*)</option>
<option value="/">(/)</option>
<option value="raiz">(Raiz Quadrada)</option>
</select>
<input id="btCalcular" type="submit" value="Calcular"/>
<input id="btLimpar" type="reset" value="Limpar"/>
<br />
<br />
</form></fieldset>
</body>
</html>
CalculadoraSevlet.java
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
-
Servlet implementation class CalculadoraSevlet
*/
@WebServlet("/CalculadoraSevlet")
public class CalculadoraSevlet extends HttpServlet {
private static final long serialVersionUID = 1L;/**
-
@see HttpServlet#HttpServlet()
*/
public CalculadoraSevlet() {
super();
// TODO Auto-generated constructor stub
}
/**
-
@see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
response.getWriter().append("Served at: ").append(request.getContextPath());
}
/**
-
@see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
response.setContentType(“text/html”);
PrintWriter saida = response.getWriter();String svalorA = request.getParameter(“valorA”);
String svalorB = request.getParameter(“valorB”);
String opcao = request.getParameter(“opcao”);double dvalorA = Double.parseDouble(svalorA);
double dvalorB = Double.parseDouble(svalorB);
double resultado = 0;
//tratar aqui se a variavel dvalorB é nula ou igual a zeroswitch (opcao){
case “+”:
resultado = dvalorA + dvalorB;
saida.print("
Resultado: "+resultado);
break;
case “-”:
resultado = dvalorA - dvalorB;
saida.print("
Resultado: "+resultado);
break;
case “*”:
resultado = dvalorA * dvalorB;
saida.print("
Resultado: "+resultado);
break;
case “/”:
resultado = dvalorA / dvalorB;
saida.print("
Resultado: "+resultado);
break;
case “raiz”://if(dvalorB == 0.0 || dvalorB.equals("")) { dvalorB = 1; resultado = ((dvalorA * dvalorA)*dvalorB); //resultado = Math.sqrt(dvalorA); saida.print("<br>Resultado: "+resultado); break;
}
}
}
-
@see HttpServlet#HttpServlet()
Obrigado desde já.