Não consigo fazer 2 INSERT na DAO e fazer a Servlet e JSP funcionar! HELP!

Minha Classe ClienteDAO com a tentativa de colocar 2 INSERT:

public boolean gravar(Cliente c){
    try{
        this.conectar();
        String sql ;
        if(c.getIdcliente()==0)
            sql = "INSERT INTO cliente (nome, tel, end, email, cpf, idusuario)"
            + "VALUES (?,?,?,?,?,?)";
        else
            sql = "UPDATE cliente SET nome=?, tel=?, end=?, email=?, cpf=?, idusuario=?"
                    + " WHERE idcliente=?";
        PreparedStatement pstm = conn.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS);
        pstm.setString(1,c.getNome());
        pstm.setString(2,c.getTel());
        pstm.setString(3,c.getEnd());
        pstm.setString(4,c.getEmail());
        pstm.setString(5,c.getCpf());
        pstm.setInt(6,c.getUsuario().getIdusuario());
        pstm.execute();
        ResultSet rs = pstm.getGeneratedKeys();
        if(rs.next()){
            c.setIdcliente(rs.getInt(1));
        }
        try{
            Usuario u = new Usuario();
            String sql_item = "INSERT INTO usuario ( login, senha, status, idperfil) "
            + "VALUES (?,?,?,?)";
        PreparedStatement pstm_item = conn.prepareStatement(sql_item);
        pstm_item.setString(2,u.getLogin());
        pstm_item.setString(3,u.getSenha());
        pstm_item.setInt(4,u.getStatus());
        pstm_item.setInt(5, u.getPerfil().getIdperfil());
        pstm_item.execute();
        }catch(Exception e){
            e.printStackTrace();
        }
        if(c.getIdcliente()>0)
            pstm.setInt(7,c.getIdcliente());
    
        pstm.execute();
        this.desconectar();
        return true;
    }catch(Exception e){
        System.out.println(e);
        return false;
    }
}

Minha servlet :

PrintWriter out = response.getWriter();
    String idcliente = request.getParameter("idcliente");
    String nome = request.getParameter("nome");
    String tel = request.getParameter("tel");
    String cpf = request.getParameter("cpf");
    String end = request.getParameter("end");
    String email = request.getParameter("email");
    String idusuario = request.getParameter("idusuario");
    String login = request.getParameter("login");
    String senha = request.getParameter("senha");
    String status = request.getParameter("status"); 
    String idperfil = request.getParameter("idperfil");
    String mensagem = "";
    
    Cliente c = new Cliente();
    if(!idcliente.isEmpty())
       c.setIdcliente(Integer.parseInt(idcliente));
    c.setNome(nome);
    c.setTel(tel);
    c.setCpf(cpf);
    c.setEnd(end);
    c.setEmail(email);
    Usuario u = new Usuario();
    u.setIdusuario(Integer.parseInt(idusuario));
    c.setUsuario(u);
    u.setNome(nome);
    u.setLogin(login);
    u.setSenha(senha);
    u.setStatus(Integer.parseInt(status));
    Perfil p = new Perfil();
    p.setIdperfil(Integer.parseInt(idperfil));
    u.setPerfil(p);

E sempre retorna o erro na pagina

jsp: java.lang.NumberFormatException: For input string: ""

Estás fazendo um Integer.parseInt passando um String vazio.

Não consigo achar com consertar o erro. Será que está no form da jsp ?

                                                    <!-- Lado esquerdo!-->
                                                    <div class="col-md-6">
                                                        
							<!-- Nome -->
							<span class="txt9">
								Nome
							</span>

							<div class="wrap-inputname size12 bo2 bo-rad-10 m-t-3 m-b-23">
								<input class="bo-rad-10 sizefull txt10 p-l-20" type="text" name="nome" value="${usuario.nome}" placeholder="Nome">
                                                                    <input type="hidden" class="form-control" id="idusuario" name="idusuario" maxlength="25" value="${usuario.idusuario}"/>
                                                                    <input type="hidden" class="form-control" id="idusuario" name="idcliente" maxlength="25" value="${cliente.idcliente}"/>
                                                                    
                                                            </div>

							<!-- Sobrenome -->
							<span class="txt9">
								Endereço
							</span>

							<div class="wrap-inputphone size12 bo2 bo-rad-10 m-t-3 m-b-23">
								<input class="bo-rad-10 sizefull txt10 p-l-20" type="text" name="end" value="${cliente.end}" placeholder="Endereço">
							</div>

							
                                                            
                                                            <!-- Login -->
							<span class="txt9">
								Nome de usuário
							</span>

							<div class="wrap-inputemail size12 bo2 bo-rad-10 m-t-3 m-b-23">
								<input class="bo-rad-10 sizefull txt10 p-l-20" type="text" name="login" value="${usuario.login}"placeholder="Login">
							</div>
                                                            
                                                            
                                                                    <!-- Senha -->
							<span class="txt9">
								Senha
							</span>

							<div class="wrap-inputemail size12 bo2 bo-rad-10 m-t-3 m-b-23 ">
								<input class="bo-rad-10 sizefull txt10 p-l-20" type="password" name="senha" value="${usuario.senha}" placeholder="Senha">
							</div>
                                                                    <!-- Status !-->
                                                            <input type="hidden" name="status" id="status" value="1"/>
                                                            
                                                            <!-- idPerfil !-->
                                                            <span class="txt9">
                                                            </span>
                                                            <select name="idperfil" id="idperfil" required="" class="form-control">
                                                                <option value="">Selecione o Perfil</option>
                                                                    <jsp:useBean class="model.Perfil" id="perfil"/>
                                                                    <c:forEach var="p" items="${perfil.lista}">
                                                                        <option value="${p.idperfil}"
                                                                        <c:if test="${p.idperfil==usuario.perfil.idperfil}">
                                                                            selected="${p.idperfil}"
                                                                        </c:if>>${p.perfil}</option>
                                                                    </c:forEach>
                                                            </select> 
						</div>
                                                <!-- Lado esquerdo !-->
                                                
                                                <!-- Lado direito !-->
                                                <div class="col-md-6">

							<!-- Telefone -->
							<span class="txt9">
								Telefone
							</span>

							<div class="wrap-inputphone size12 bo2 bo-rad-10 m-t-3 m-b-23">
								<input class="bo-rad-10 sizefull txt10 p-l-20" type="text" name="tel" value="${cliente.tel}" maxlenght="11" placeholder="Telefone">
							</div>
                                                            
                                                            <!-- Cpf -->
							<span class="txt9">
								CPF
							</span>

							<div class="wrap-inputemail size12 bo2 bo-rad-10 m-t-3 m-b-23 ">
								<input class="bo-rad-10 sizefull txt10 p-l-20" type="text" maxlenght="14" name="cpf" value="${cliente.cpf}" placeholder="CPF">
							</div>
                                                            
                                                            <!-- Email -->
							<span class="txt9">
								Email
							</span>

							<div class="wrap-inputemail size12 bo2 bo-rad-10 m-t-3 m-b-23">
								<input class="bo-rad-10 sizefull txt10 p-l-20" type="text" name="email" placeholder="email" value="${cliente.email}" required="@">
							</div>
                                                            

						</div>
                                                            
                                                <!-- Lado direito!-->
					</div>

					<div class="wrap-btn-booking flex-c-m m-t-100">
						<!-- Button3 -->
						<button class="btn3 flex-c-m size13 txt11 trans-0-4">
							Cadastrar
						</button>
					</div>
				</form>

ClienteDAO com algumas mudanças mas continua dando o msm erro.

public boolean gravar(Cliente c){
Usuario u = new Usuario();
try{
this.conectar();
String sql ;
if(c.getIdcliente()==0)
sql = "INSERT INTO usuario (nome, login, senha, status, idperfil) "
+ “VALUES (?,?,?,?,?)”;

        else
            sql = "UPDATE cliente SET nome=?, tel=?, end=?, email=?, cpf=?, idusuario=?"
                    + " WHERE idcliente=?";
        
        PreparedStatement pstm = conn.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS);
        pstm.setString(2, u.getNome());
        pstm.setString(3,u.getLogin());
        pstm.setString(4,u.getSenha());
        pstm.setInt(5,u.getStatus());
        pstm.setInt(6, u.getPerfil().getIdperfil());
        pstm.execute();
        ResultSet rs = pstm.getGeneratedKeys();
        
        if(rs.next()){
        c.getUsuario().setIdusuario(rs.getInt(1));
        }
        
        String sql_item = "INSERT INTO cliente ( tel, end, email, cpf, idusuario)"
            + "VALUES (?,?,?,?,?)";
        PreparedStatement pstm_item = conn.prepareStatement(sql_item);
        pstm_item.setString(2,c.getTel());
        pstm_item.setString(3,c.getEnd());
        pstm_item.setString(4,c.getEmail());
        pstm_item.setString(5,c.getCpf());
        pstm_item.setInt(6,c.getUsuario().getIdusuario());
        pstm_item.execute();
        if(c.getIdcliente()>0)
            pstm.setInt(7,c.getIdcliente());
    
        pstm.execute();
        this.desconectar();
        return true;
    }catch(Exception e){
        System.out.println(e);
        return false;
    }
}

Agora você está tentando transformar um valor boolean true em um número.

Pergunta, você sabe debugar seu código? Outra coisa, a stack trace no seu console de execução deve estar dizendo em qual linha o erro está acontecendo.

Não sei kkk sou iniciante.

É importante aprender a interpretar o StackTrace, ele te diz exatamente onde o erro “estourou”.

Certo. Você está usando algum IDE ou executando seu código pelo terminal do SO?

To usando netbeans