Exemplo de Login

Blz.
Estou com um problema, estou tentando fazer uma tela de login(usando struts no jbuilder8) mas está dandos erro.
Alguém tem algum exemplo? ou se for o caso eu posso mandar o que estou fazendo para alguém dá uma olhada?.

Oi

bcno, olha só, se teu exemplo não for muito grande, tu pode postar aí que a gente da uma olhada…

T+

Opa.

Espero poder receber alguma ajuda.

O login.jsp

<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
<html>
<head><title>Crabzy::Login</title></head>
<body>
<html:errors/>
  <html:form action="/efetuarConsultaLogin" method="POST">
    <TABLE cellSpacing="0" cellPadding="0" width="88" border="1">
      <TR>
        <TD>Login</TD>
      </TR>
      <TR>
        <TD><html:text property="usuStLogin"/></TD>
      </TR>
      <TR>
        <TD>Senha</TD>
      </TR>
      <TR>
        <TD><html:text property="usuStSenha"/></TD>
      </TR>
      <TR>
        <TD><html:submit>Ok</html:submit></TD>
      </TR>
    </TABLE>
  </html:form>
</body>
</html>

O LoginForm.java

package crabzy.form;

import org.apache.struts.action.*;
import javax.servlet.http.*;

public class LoginForm extends ActionForm {
  //Variáveis de instância
  private String usuStLogin;
  private String usuStSenha;
  //Métodos getters e
  public void setUsuStLogin(String usuStLogin) {
    this.usuStLogin = usuStLogin;
  }
  public String getUsuStLogin() {
    return usuStLogin;
  }
  public void setUsuStSenha(String usuStSenha) {
    this.usuStSenha = usuStSenha;
  }
  public String getUsuStSenha() {
    return usuStSenha;
  }
  //Método de validação
  public ActionErrors validate(ActionMapping actionMapping, HttpServletRequest httpServletRequest) {
    return null;
  }
  //Método para limpar os campos do formulário
  public void reset(ActionMapping actionMapping, HttpServletRequest httpServletRequest) {
    usuStLogin = null;
    usuStSenha = null;
  }
}

O LoginAction.java

package crabzy.action;

import org.apache.struts.action.*;
import javax.servlet.http.*;
import java.sql.*;
import crabzy.form.LoginForm;

public class LoginAction extends Action {
  //Método que processa a requisição HTTP especificada e cria a resposta HTTP
  //correspondente (ou encaminha para um outro componente que a ira criar)
  public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) {
    //Declarações
    HttpSession session = request.getSession();
    ActionErrors erros = new ActionErrors();
    Connection con = null;
    Statement st = null;
    ResultSet rs = null;
    LoginForm loginForm = (LoginForm) form;
    //Efetuar as operações do mapeamento '/consultaUsuarioEfetuarConsulta'
    if ("/efetuarConsultaLogin".equals(mapping.getPath())) {
      try {
        //Verifica se o usuário existe
        Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
        con = DriverManager.getConnection("jdbc:odbc:Reserva");
        st = con.createStatement();
        StringBuffer sql = new StringBuffer();

        sql.append("SELECT * FROM Usu_Usuario WHERE usu_st_login= '");
        sql.append(loginForm.getUsuStLogin());
        sql.append("' and usu_st_senha = '");
        sql.append(loginForm.getUsuStSenha());
        sql.append("'");
        rs = st.executeQuery(sql.toString());
        if (rs.next()) {
          session.setAttribute("usuario", rs.getString("usu_nr_id"));
        }
      }
      catch (ClassNotFoundException cnfe) {
        erros.add(ActionErrors.GLOBAL_ERROR, new ActionError("validacao.erro", cnfe.getMessage()));
      }
      catch (SQLException sqle) {
        erros.add(ActionErrors.GLOBAL_ERROR, new ActionError("validacao.erro", sqle.getMessage()));
      }
    }
    //Se encontrar erros, redireciona para o formulário de entrada
    if (!erros.isEmpty()) {
      saveErrors(request, erros);
      return (mapping.getInputForward());
    }
    // Eliminando o form bean obsoleto
    if (mapping.getAttribute() != null) {
      if ("request".equals(mapping.getScope())) {
        request.removeAttribute(mapping.getAttribute());
      }
      else {
        session.removeAttribute(mapping.getAttribute());
      }
    }
    //Redirecionando para sucesso
    return (mapping.findForward("sucesso"));

  }
}

O struts-config.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.0//EN" "http://jakarta.apache.org/struts/dtds/struts-config_1_0.dtd">
<struts-config>
  <form-beans>
    <form-bean name="loginForm" type="crabzy.form.LoginForm" />
  </form-beans>
  <action-mappings>
    <action name="loginForm" type="crabzy.action.LoginAction" validate="true" input="/login.jsp" scope="request" path="/efetuarConsultaLogin">
      <forward name="sucesso" path="principal.jsp" />
    </action>
  </action-mappings>
</struts-config>

[color=“red”]Editado para conter o BBCode CODE - jeveaux[/color]

Oi

bcno… Nao parece ter problemas cara…

Posta aí o erro que está dando tb…

T+

César.

Em primeiro lugar, muito obrigado pela atenção!
Mas vamos lá.

O primeiro erro é.

javax.servlet.ServletException: Error instantiating servlet class org.apache.struts.action.ActionServlet

O segundo erro é.

org.apache.jasper.JasperException: Cannot find ActionMappings or ActionFormBeans collection

org.apache.jasper.JasperException: Cannot find ActionMappings or ActionFormBeans collection

Eu tive um erro assim cara!! no meu arquivo struts-config.xml, tava faltando essa liha abaixo. eu coloquei ela funcionou.

Aproveitando o exemplo do jeveaux…

Em vez de colocar código SQL para checar a existencia do usuário no banco, talvez seja melhor por o Tomcat para fazer isso. Como? Criando um Realm. Assim o LoginAction só é chamado quando o Tomcat valida a existência do usuario no banco.