如何将表单中的参数发送到Servlet(出生日期)(选择日,月,年,选项)Java

时间:2013-07-01 20:38:32

标签: java html mysql servlets

我的Servlet:

package br.com.cad.servlet;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.Date;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import br.com.cad.dao.Cadastro;
import br.com.cad.basica.Contato;

public class AddDados extends HttpServlet{

    protected void service(HttpServletRequest request, HttpServletResponse response)   
            throws IOException, ServletException { 


 PrintWriter out = response.getWriter();
     String nome = request.getParameter("nome");
     String sobrenome = request.getParameter("sobrenome");
     String rg = request.getParameter("rg");  
     String cpf = request.getParameter("cpf");  
     String sexo = request.getParameter("sexo");
     String dataEmTexto = request.getParameter("DataNascimento1")+
request.getParameter("DataNascimento2")+request.getParameter("DataNascimento3");
     Calendar dataNascimento1 = null;
     Calendar dataNascimento2 = null;
     Calendar dataNascimento3 = null;
 try {  
     Date date = new SimpleDateFormat("dd/MM/yyyy").parse(dataEmTexto);  
     dataNascimento1 = Calendar.getInstance();  
     dataNascimento1.setTime(date);
     dataNascimento2 = Calendar.getInstance();  
     dataNascimento2.setTime(date);  
     dataNascimento3 = Calendar.getInstance();  
     dataNascimento3.setTime(date);  
 } catch(ParseException e) {  
     out.println("Erro de conversão da data");  
     return;   
 } 
 Contato contato = new Contato();  
     contato.setNome(nome); 
     contato.setSobrenome(sobrenome);
     contato.setRg(rg);  
     contato.setCpf(cpf);  
     contato.setSexo(sexo);
        if ("Masculino".equals(contato.getSexo())) {  
         contato.setSexo("M");  
            } else {  
         contato.setSexo("F");  
        }  
     contato.setDataNascimento1(dataNascimento1);
     contato.setDataNascimento2(dataNascimento2);
     contato.setDataNascimento3(dataNascimento3);
 Cadastro dao = new Cadastro();  
     dao.adiciona(contato);
 out.println("<html>");  
 out.println("<body>");  
 out.println("Contato " + contato.getNome() + " adicionado com sucesso");  
 out.println("</body>");  
 out.println("</html>"); 

} 
}  

我的Dao对象:

  package br.com.cad.dao;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.sql.Date;

import br.com.cad.dao.ConnectDb;
import br.com.cad.basica.Contato;
public class Cadastro {



    private Connection connection;  


    public Cadastro() {  
        this.connection = new ConnectDb().getConnection();  
    }  

    public void adiciona(Contato contato) {  
        String sql = "INSERT INTO dados_cadastro(pf_nome, pf_ultimonome, pf_rg, pf_cpf, pf_sexo,pf_dt_nasc) VALUES(?,?,?,?,?,?,?,?)";  
        try {  

            PreparedStatement stmt = connection.prepareStatement(sql);  

            stmt.setString(1, contato.getNome());  
            stmt.setString(2, contato.getSobrenome());
            stmt.setString(3, contato.getRg());  
            stmt.setString(4, contato.getCpf());
            stmt.setString(5, contato.getSexo());
            stmt.setDate(6, new Date( contato.getDataNascimento1().getTimeInMillis()) );
            stmt.setDate(7, new Date( contato.getDataNascimento2().getTimeInMillis()) );
            stmt.setDate(8, new Date( contato.getDataNascimento3().getTimeInMillis()) );

            stmt.execute();  
            stmt.close();  
            System.out.println("Cadastro realizado com sucesso!.");  
        } catch(SQLException sqlException) {  
            throw new RuntimeException(sqlException);  
        }  
    }  
}

我的html表单为cadastra.jsp

<label>Data de nascimento</label>
        <br>
            <select id="birthDay" name="dataNascimento1">
                <option selected="" value="">Dia</option>
                    <option value="1">1</option>
                    <option value="2">2</option>
                    <option value="3">3</option>
                    <option value="4">4</option>
                    <option value="5">5</option>
                    <option value="6">6</option>
                    <option value="7">7</option>
                    <option value="8">8</option>
                    <option value="9">9</option>
                    ...
                                        <option value="31">31</option>
            </select>
          <select id="birthMonth" name="dataNascimento2">
                <option selected="" value="">Mês</option>
                    <option value="1">janeiro</option>
                    <option value="2">fevereiro</option>
                    <option value="3">março</option>
</select>
<select id="birthYear" name="dataNascimento3">
             <option selected="" value="">Ano</option>
                    <option value="2013">2013</option>
                    <option value="2012">2012</option>
                    <option value="2011">2011</option>
</select>

如何将其存储在我的mysql数据库中,格式为dd / mm / yyyy?如何从出生日期的combox中获取参数?我不知道如何以html形式获取这样的树值,如树combox和转换,存储在db ... 请帮帮我!

1 个答案:

答案 0 :(得分:2)

在servlet中获得值后,可以使用SimpleDateFormat #format()将Date格式化为特定模式的字符串。

String newstring = new SimpleDateFormat(“yyyy-MM-dd”)。format(date); 的System.out.println(newstring); // 2013-01-15

此外,您的html代码必须位于表单中,如下所示:

<form:form method="post" action="addContact.html">

<!-- html fields.. -->

</form:form>

在servlet中,尝试重写doGet和doPost方法。看一眼: https://stackoverflow.com/tags/servlets/info