Desenvolvimento dando erro na servlet

7 respostas
htmljavaservlet
C

Boa Noite Pessoal,

Quando eu compilo consigo entrar no formulário, mas quando coloco os dados e gero a servlet está dando NULL em vez de carregar os dados.

Segue a imagem e o código abaixo.

Cadastro Cliente.

<head>
    <title>Cadastro Clientes</title>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link rel="stylesheet" type="text/css" href="css/estilo.css">
</head>

<font size="5" color="#083a90" style="font-weight: 900">Cadastro de Clientes</font> </br>

</br>
</br>
<body>
<div id="area">
    
<form action="ServletCadastro" method="POST">
    
<form id="Formulario" autocomplete="on">
     
    <fieldset>
    
    <legend><font style="font-weight: 900">Informações do Cliente</font></legend>
    <label for="nome"> Nome: </label>
    <input type="text" name="Nome" size="40" placeholder="Inserir Nome" required="required"></br></br>
    
    <label for="Telefone"> Telefone: </label>
    <input type="text" name="Telefone" placeholder="inserir Telefone" size="30" required="required"><br><br>
    
    <label for="endemail"> E-mail: </label>
    <input type="e-mail" name="endmail" size="40" placeholder="Digitar um e-mail válido" required="required"> <br><br> 
    
    <input type="submit" value="Enviar" />
    
    </fieldset>
</form>
</div>    
</body>

Modelo Cadastro

package modelo;
import org.hibernate.validator.constraints.Email;

public class Cadastro {

private String nome, telefone, email;
public Cadastro() {
    super();
    nome="";
    telefone="";
    email="";
        }

public Cadastro( String nome, String telefone, String email){
        super();
        this.nome= nome;
        this.telefone= telefone;
        this.email= email;
} 

public String getNome() {
    return nome;
}
public void setNome(String nome) {
    this.nome = nome;
}

public String getTelefone() {
    return telefone;
}
public void setTelefone(String nome) {
    
    this.telefone = Telefone;
}    
public String getEmail() {
    return email;
}
public void setEmail(String nome) {
    
    this.email = Email;
}

}

Servlet Cadastro

package servlet;

import java.io.IOException;

import java.io.PrintWriter;

import javax.servlet.ServletException;

import javax.servlet.ServletOutputStream;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

/**

*

*

*/

import modelo.Cadastro;

public class ServletCadastro extends javax.servlet.http.HttpServlet implements javax.servlet.Servlet {
private static final long serialVersionUID = 1L;

public ServletCadastro() {
    super();
} 
    
/**
 *
 * @param request
 * @param response
 * @throws ServletException
 * @throws IOException
 */
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) 
throws ServletException, IOException {
}      
/**
 * Processes requests for both HTTP <code>GET</code> and <code>POST</code>
 * methods.
 *
 * @param req
 * @param res
 * @throws ServletException if a servlet-specific error occurs
 * @throws IOException if an I/O error occurs
 */

    
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse res)
    throws ServletException, IOException {
    ServletOutputStream out = res.getOutputStream();
    res.setContentType("text/html;charset=UTF-8");
            
    String nome = req.getParameter("txtnome");
    String telefone = req.getParameter("txttelefone");
    String email = req.getParameter("txtemail");
    
    // CRIAR O OBJETO Cadastro
    Cadastro objCadastro = new Cadastro (nome, telefone, email);
    
    res.setContentType("text/html") ;
    
    // CONSTRUIR A PÁGINA DE SAÍDA
    String html = "<html><head><title>Dados do Cliente</title>" +
        "</head><body><h1 align='center'>Cliente cadastrado</h1>" +
                          "<p>Nome : " + objCadastro.getNome() + "</p>" +
                  "<p>Telefone : " + objCadastro.getTelefone() + "</p>" +
                  "<p>Email : " + objCadastro.getEmail() + "</p>" +
                          "</body></html>" ;                      
    

            
    out.print(html) ;
    
}

}

7 Respostas

victormenegusso

olá @Curioso22, você utilizou a anotação ou o web.xml para declarar a url do servlert?

aonde esta dando null?

C

web.xml.

Segue a imagem de onde esta dando o NULL.

Obrigado se puder ajudar

C

web.xml.

Segue a imagem de onde esta dando o NULL.

drsmachado

Não entendi por que tua jsp possui duas tags forms seguidas:
<form action="ServletCadastro" method="POST">

<form id="Formulario" autocomplete="on">

Provavelmente isso possa ser a causa do problema.

victormenegusso

Oi @Curioso22

o erro esta na hora de obter os parâmetros da requisição…
no form você colocou:

<input type="text" name="Nome" ...>
<input type="text" name="Telefone"  ...>
<input type="e-mail" name="endmail" ...>

e no servlert:

String nome = req.getParameter("txtnome");
String telefone = req.getParameter("txttelefone");
String email = req.getParameter("txtemail");

o parâmetro do ‘getParameter’ tem que ser o ‘name’ do input, logo

String nome = req.getParameter("Nome");
String telefone = req.getParameter("Telefone");
String email = req.getParameter("endmail");
C

Vou verificar amigo e fazer as alterações.

C

Victor,

Então na servlet e no getParameter, tenho que colocar da mesma forma que no input?

Agradeço pela ajuda.

Criado 6 de outubro de 2016
Ultima resposta 6 de out. de 2016
Respostas 7
Participantes 3