Pessoal, tenho o código abaixo (3 pojos, 2 servlets e pgs jsp). Gostaria de saber como posso implementar uma forma de o usuário poder alterar sua própria senha.
Creio que tenho que fazer um request no form onde o usuário digitar a senha e envia-la a um servlet que transformará o dado da requisição passando a um daoAlteraSenhadoUsusario, por ex. No momento que passo a senha, passo também o nome do usuário na sessão, para filtrar o UPDATE.
Não estou sabendo como passar a nova senha (por request) e o usuário ativo da sessão (session.getAttribute).
Algu´me sabe como fazer ?
jsp onde o usuário digita a nova senha e remete ao servlet:
<%@page import="br.com.fiap.dao.DaoUsuarios"%>
<%@page import="java.lang.String"%>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@page import="br.com.fiap.pojo.Usuarios" %>
<%
Usuarios usr = (Usuarios) session.getAttribute("jUsuario");
/*
Usuarios usr = (Usuarios) session.getAttribute("jUsuario");
DaoUsuarios u = new DaoUsuarios(usr);
if (u.trocaSenha(usr)) {
out.print("senha alterada com sucesso");
} else {
out.print("erro: " + u.getErro());
}
*/
%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Trocar a Senha</title>
</head>
<body>
<h2>Trocar a Senha</h2>
<form method="post" action="trocaSenha">
<table>
<tr>
<td>Usuário:</td>
<td><input type="text" name="usuario" value="<%=usr.getUsuario()%>" disabled="" size="20"></td>
</tr>
<tr>
<td>Senha atual:</td>
<td><input type="password" name="senha" value="<%=usr.getSenha()%>" size="20"></td>
</tr>
<tr>
<td>Senha nova:</td>
<td><input type="password" value="0" name="senhaN" size="20"></td>
</tr>
<tr>
<td colspan="2"><input type="submit" name="enviar" value="Enviar"></td>
</tr>
</table>
</form>
</body>
</html>
Servlet alterar senha:
package br.com.fiap.servlet;
[code]import br.com.fiap.dao.DaoUsuarios;
import br.com.fiap.pojo.Usuarios;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
public class TrocaSenha extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
HttpSession session = request.getSession();
response.setContentType("text/html");
PrintWriter out = response.getWriter();
Usuarios usr = (Usuarios) session.getAttribute("jUsuario");
//String nome = request.getParameter("nome");
String senha = request.getParameter("senha");
out.print("session user is: " + usr.getUsuario());
Usuarios usuario = new Usuarios(usr.getUsuario(), senha);
DaoUsuarios dao = new DaoUsuarios(usuario);
if (dao.trocaSenha(usr)) {
//dao.trocaSenha(usuario);
//session.setAttribute("jUsuario", usuario);
out.print("senha alterada");
response.sendRedirect("trocaSenha.jsp");
} else {
out.println("Erro de validação.<br>" + dao.getErro());
out.print("<br><a href='login.jsp'>Voltar</a>");
}
}
}
[/code]
Classe dao p/ statememnt:
[code]package br.com.fiap.dao;
import br.com.fiap.pojo.Usuarios;
public class DaoUsuarios extends Dao {
private Usuarios usuario;
public DaoUsuarios() {
setUsuario(usuario);
}
public DaoUsuarios(Usuarios usuario) {
setUsuario(usuario);
}
public Usuarios getUsuario() {
return usuario;
}
public void setUsuario(Usuarios usuario) {
this.usuario = usuario;
}
public boolean validaUsuario() {
boolean b = false;
if (abreConexao()) {
try {
st = cn.prepareStatement("SELECT * FROM ex01.usuarios WHERE USUARIO=? AND SENHA=?");
st.setString(1, usuario.getUsuario());
st.setString(2, usuario.getSenha());
rs = st.executeQuery();
if (rs.next()) {
b = true;
usuario.setNivel(rs.getInt("NIVEL"));
}
} catch (Exception ex) {
erro = ex.getMessage();
} finally {
fechaConexao();
}
}
return b;
}
public String incluiUsuario() {
String s = "Dados inseridos com sucesso!";
if (abreConexao()) {
try {
st = cn.prepareStatement("INSERT INTO USUARIOS (USUARIO, SENHA, NIVEL) VALUES (?,?,?)");
st.setString(1, usuario.getUsuario());
st.setString(2, usuario.getSenha());
st.setInt(3, usuario.getNivel());
st.executeUpdate();
} catch (Exception ex) {
s = erro = ex.getMessage();
} finally {
fechaConexao();
}
}
return s;
}
public boolean trocaSenha(Usuarios usr) {
boolean b = false;
String s = "Senha alterada com sucesso!";
if (abreConexao()) {
try {
st = cn.prepareStatement("UPDATE ex01.usuarios SET senha=? WHERE usuario=?");
st.setString(1, usr.getSenha());
st.setString(2, usr.getUsuario());
st.executeUpdate();
} catch (Exception ex) {
s = erro = ex.getMessage();
} finally {
fechaConexao();
}
}
return b;
}
}
[/code]