Ajuda no servlet

2 respostas
H

Boa noite pessoal.
Estou com um problema, sou iniciante.
Estou criando um programa com um servlet que recebe o parâmetros e introduz automaticamente no banco de dados.
Mas o servlet só recebo dados String.
Como faço para ele receber como int, se isso é possível ? Já que as variáveis telefone e celular são declaradas como int na classe.

esse é o meu código do servlet

import br.com.loja.dao.ClienteDAO;

import br.com.loja.entidade.Cliente;

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;

@WebServlet(name = “AdicionaClienteServlet”, urlPatterns = {"/AdicionaClienteServlet"})
public class AdicionaClienteServlet extends HttpServlet {

@Override
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    Cliente cliente = new Cliente();
    
    
    
    
    
    cliente.setNome_cliente(req.getParameter("nome_cliente"));
    cliente.setEndereco(req.getParameter("endereco"));
    cliente.setTelefone(req.getParameter ("telefone"));      
    cliente.setCelular(req.getParameter("celular"));
    cliente.setEmail(req.getParameter("email"));
    
    ClienteDAO dao = new ClienteDAO();
    
    dao.salvar(cliente);
    
    PrintWriter out =  resp.getWriter();
    out.println("Cliente salvo com sucesso");
}

}

2 Respostas

darlan_machado

Bom, você deve entender que o Servlet poderia receber qualquer coisa, porém, o html (que é o que, no final das contas, aparece no navegador) só trabalha com texto (vamos usar isso como verdade absoluta, para simplificar).
Assim, mesmo que você tenha lá um

<input type="number" name="idade"/>

Ainda assim, quando você submeter (enviar) o formulário, terá um texto (um valor numérico interpretado como String).

Para contornar isso, basta fazer, na Servlet:

//Exemplo
String sIdade = req.getParameter("idade");//Eu isolei a recepção do valor em String, a fim de validar se não está nulo
if(null != sIdade && !"".equals(sIdade)){
    cliente.setIdade(Integer.parseInt(sIdade);
}

Entendeu?

H

Obrigado pela ajuda!! =D

Pode fechar o tópico.

Criado 21 de janeiro de 2018
Ultima resposta 22 de jan. de 2018
Respostas 2
Participantes 2