OLa Amigos!!!
Sou nova por aqui.E estou começando a estudar Webwork.E estou tendo dificuldades em fazer conexão com banco de dados.Eu tenho uma página JSP q faz o login com usuario e senha e uma action para fazer a validação e após ser validado o login e senha deste usuário é redirecionado para outra página JSP dizendo que obteve sucesso.
Etou implementando um exemplo de um artigo no GUJ, e vi outros artigo e fiz a leitura dos mesmo,porém não vi nenhum que tenha um exemplo como faz a coneção e validar um usuário por exemplo.
Estou com me código assim:
De acordo q esta indicado no artigo eu teria q validar o usuário dentro de "execute".Assim como esta dentro do método execute, não tem nenhum ligação com Banco de Dados,apenas está comnparando usuario e senha estáticos.Alguém poderia me ajudar ou me explicar como faz?
Desde já agradeceria muito
beijos
carol
public class Login
extends SystemAction
implements DisableSecurityAction
{
//variável para fazer interligação com Data Sorce
protected static DataSource dataSource;
private static final Log log = LogFactory.getLog(Login.class);
private User model = new User();
public Login() throws Exception {
if (dataSource == null) {
try {
InitialContext ic = new InitialContext();
dataSource = (DataSource) ic.lookup("java:comp/env/jdbc/StrutsDemoDS");
} catch (NamingException ex) {
System.out.println(ex.getMessage());
throw ex;
}
}
}//fim construtor login
//********************Método que irá faz a coenxão com o Data Source*********************
protected Connection getConnection() throws SQLException {
Connection conn = null;
try {
conn = dataSource.getConnection();
}
catch (SQLException e) {
throw e;
}
return conn;
}
//******************Método que vai fechar a conexão aberta****************************
protected void closeConnection(
Connection conn,
PreparedStatement stmt,
ResultSet rs) {
if (rs != null) {
try {
rs.close();
} catch (SQLException e) {
}
}
if (stmt != null) {
try {
stmt.close();
} catch (SQLException e) {
}
}
if (conn != null) {
try {
conn.close();
} catch (SQLException e) {
}
}
}
/* public LinkedList getList() throws SQLException {
return this.getList(0);
}*/
public LinkedList getList() throws SQLException {
Connection conn = null;
PreparedStatement stmt = null;
ResultSet rs = null;
LinkedList lista = new LinkedList();
try {
conn = getConnection();
stmt = conn.prepareStatement("select codpessoa,nome from pessoa");
rs = stmt.executeQuery();
while (rs.next()) {
User user = new User();
user.setPassword(rs.getInt("codpessoa"));
user.setUsername(rs.getString("nome"));
lista.add(user);
}
}
catch (SQLException e) {
throw e;
}
finally {
closeConnection(conn, stmt, rs);
}
return lista;
}
public String execute() {
// --> AQUI deveria validar de verdade o usuário
if(!model.getUsername().equals("guj")) {
addActionError(getText("login.invalidCredentials"));
addFieldError("username", getText("login.unknowUser"));
return ERROR;
}
if(model.getPassword().intValue()!=1234) {
addActionError(getText("login.invalidCredentials"));
addFieldError("password", getText("login.wrongPassword"));
return ERROR;
}
//logou com sucesso? Põe o usuário na sessão.
this.userSession.setUser(model);
return SUCCESS;
}
public Object getModel() {
return this.model;
}
}