Assim está na página WEB (mostrando somente a parte problemática):
// Data de nascimento no formato dd/MM/yyyy
String entrada = request.getParameter("nascimentoTxt");
java.util.Date data = new java.util.Date(entrada);
...
ps.setDate(2, new java.sql.Date(data.getTime()));
...
Aparentemente salva, mas na hora que tento exibir o valor, assim:
...
DateFormat df = DateFormat.getDateInstance(DateFormat.DEFAULT);
...
<td><%=df.format(rs.getDate("nascimento"))%></td>
Ele me mostra uma data diferente da qual eu supostamente salvei. Exemplo:
Digitei no campo de texto: 30/11/1978 e “salvei”. Mas ele mostra: 11/06/1980
Alguém pode me ajudar a resolver esse problema? Onde está o erro?
Desde já agradeço.
Faz uma consulta no banco de dados para ver como está salvo.
Não sabia que o Date tem construtor no formato dd/MM/yyyy 
Vc precisa primeiro converter usando o SimpleDateFormat.
dá uma olhada no tópico que vai lhe ajudar.
http://www.guj.com.br/java/257376-metodo-dataformat#1340947
abs,
Evandro
O banco que estou usando é o MySQL.
Independente do banco isso fica a controle do framework, hibernate por exemplo, ou se vc fizer manual tem que ver como seu banco recebe a data, por exempplo yyyy-MM-dd que é o caso do mySql.
Vc precisa formatar sua string antes de jogar para o banco, uma maneira seria como eu lhe passei no link. ex:
// Data de nascimento no formato dd/MM/yyyy
String entrada = request.getParameter("nascimentoTxt");
try {
SimpleDateFormat formatoTela = new SimpleDateFormat("dd/MM/yyyy");
Date data = formatoTela.parse(entrada);
ps.setDate(2, new java.sql.Date(data.getTime()));
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
abs,
Evandro