[RESOLVIDO] Passar o valor da sessão para o DAO e o Servlet

3 respostas
F

Pessoal,

Boa tarde!

Estou tentando salvar os dados em uma tabela que contém o ID do Administrador como chave estrangeira e não estou conseguindo.

Eu consigo passar o ID do admin para o formulário de cadastro depois de logar, porém, não consigo enviar este ID que está na sessão para o meu DAO e para o meu servlet de cadastro.

Por favor amigos, preciso de uma força do pessoal mais experiente para me ajudar nisto.

Muito obrigado mesmo.

Segue a estrutura do banco e do projeto.

CREATE TABLE `tipo_livro` (
  `idtipo_livro` INTEGER(10) UNSIGNED NOT NULL AUTO_INCREMENT,
  `administrador_idadministrador` INTEGER(10) UNSIGNED NOT NULL,
  `tipNome` VARCHAR(60) COLLATE latin1_swedish_ci NOT NULL DEFAULT '',
  PRIMARY KEY (`idtipo_livro`),
  KEY `tipo_livro_FKIndex1` (`administrador_idadministrador`),
  CONSTRAINT `tipo_livro_fk` FOREIGN KEY (`administrador_idadministrador`) REFERENCES `administrador` (`idadministrador`)
)ENGINE=InnoDB
AUTO_INCREMENT=1 CHARACTER SET 'latin1' COLLATE 'latin1_swedish_ci';


CREATE TABLE `administrador` (
  `idadministrador` INTEGER(10) UNSIGNED NOT NULL AUTO_INCREMENT,
  `admNome` VARCHAR(60) COLLATE latin1_swedish_ci NOT NULL DEFAULT '',
  `admLogin` VARCHAR(20) COLLATE latin1_swedish_ci NOT NULL DEFAULT '',
  `admSenha` VARCHAR(20) COLLATE latin1_swedish_ci NOT NULL DEFAULT '',
  `admCod` VARCHAR(20) COLLATE latin1_swedish_ci NOT NULL DEFAULT '',
  PRIMARY KEY (`idadministrador`)
)ENGINE=InnoDB
AUTO_INCREMENT=2 CHARACTER SET 'latin1' COLLATE 'latin1_swedish_ci';

Meu servlet

package com.romafa.controller;

import com.romafa.bean.TipoLivroBean;
import com.romafa.dao.TipoLivroDAO;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 *
 * @author Fabiano
 */
public class TipoLivroServlet extends HttpServlet {
   
    private static final String CONTENT_TYPE = "text/html; charset=windows-1252";
     
    public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
            
    {
        
        response.setContentType(CONTENT_TYPE);
        PrintWriter out = response.getWriter();
        
        TipoLivroBean tipoLivroBean = new TipoLivroBean();
        RequestDispatcher rd;
             
        //String teste = request.getParameter("ID");   Seria desta forma?
        String tipNome = request.getParameter("tipNome");
        
        
        tipoLivroBean.getAdministrador();
        tipoLivroBean.setTipNome(tipNome);
        
        TipoLivroDAO tipoLivroDAO = new TipoLivroDAO();
        
        try {
            
            if(tipoLivroDAO.adicionaTipoLivro(tipoLivroBean))
            {
                           
               rd = request.getRequestDispatcher("/cadastrarTipoLivro.jsp");
                rd.forward(request, response);
        
            }
            else
            {
                rd = request.getRequestDispatcher("/adm/index.jsp");
                rd.forward(request, response);
                
            }
        } catch (Exception ex) {
            
            out.println(ex);
        }
    }

}

Meus Beans

package br.com.bookstore.bean;

/**
 *
 * @author Fabiano
 */
public class PessoaBean {
    
    private String nome;
    private String login;
    private String senha;

    public String getNome() {
        return nome;
    }

    public void setNome(String nome) {
        this.nome = nome;
    }

    public String getLogin() {
        return login;
    }

    public void setLogin(String login) {
        this.login = login;
    }

    public String getSenha() {
        return senha;
    }

    public void setSenha(String senha) {
        this.senha = senha;
    }
    
}
package br.com.bookstore.bean;

/**
 *
 * @author Fabiano
 */
public class AdministradorBean extends PessoaBean{

    private int idAdmin;
    private String codAdm;

    public String getCodAdm() {
        return codAdm;
    }

    public void setCodAdm(String codAdm) {
        this.codAdm = codAdm;
    }

    public int getIdAdmin() {
        return idAdmin;
    }

    public void setIdAdmin(int idAdmin) {
        this.idAdmin = idAdmin;
    }
   
}
package br.com.bookstore.bean;

/**
 *
 * @author Fabiano
 */
public class TipoLivroBean {
    
    private int idTipoLivro;
    private String nome;

    public String getNome() {
        return nome;
    }

    public void setNome(String nome) {
        this.nome = nome;
    }

    public int getIdTipoLivro() {
        return idTipoLivro;
    }

    public void setIdTipoLivro(int idTipoLivro) {
        this.idTipoLivro = idTipoLivro;
    }
    
    

}

Meu DAO

package com.romafa.dao;

import java.sql.Connection;
import com.romafa.bean.TipoLivroBean;
import com.romafa.conexao.Conexao;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

/**
 *
 * @author Fabiano
 */
public class TipoLivroDAO {
    
    public boolean adicionaTipoLivro (TipoLivroBean tipoLivroBean) throws SQLException{
    
        Connection conn = null;
        PreparedStatement ps = null;
        ResultSet rs = null;
        
        try {
          
            conn = Conexao.getConexao();         
            
            String insere = "INSERT INTO tipo_livro (administrador_idadministrador, tipNome) VALUES (?, ?)";

            ps = conn.prepareStatement(insere);
           
            // DUVIDA: como pegar o id da sessao aqui?
            
            ps.setString(1, tipoLivroBean.getTipNome());

            ps.executeUpdate();

            return true;       
           
        } catch (Exception e) {
            
            rs.close();
            ps.close();
            conn.close();
            return false;
        }
        
        finally
        {
            
            rs.close();
            ps.close();
            conn.close();
        
        }
   
    }

}

Meu JSP

<%@ page contentType="text/html; charset=utf-8" language="java" import="java.sql.*" errorPage="" session="true" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>::: ROMAFA BOOK STORE :::</title>

<link href="../estilo/estilo.css" rel="stylesheet" type="text/css" />

</head>

<body>
<table width="1024" border="0" cellpadding="0" cellspacing="0">
  <tr>
    <td><img src="../img/logo.jpg" /></td>
  </tr>
  <tr>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td>
    <div id="menu_principal">
    <img src="../img/seta.jpg" />&nbsp; <a href="tipolivros.jsp">TIPO LIVRO &nbsp;</a> 
    <img src="../img/seta.jpg" />&nbsp; <a href="livros.jsp">LIVROS &nbsp;</a>
    <img src="../img/seta.jpg" />&nbsp; <a href="tipopagamento.jsp">TIPO PAGAMENTO &nbsp;</a>
    <img src="../img/seta.jpg" />&nbsp; <a href="relatorios.jsp">RELATÓRIOS &nbsp;</a> 
    <img src="../img/seta.jpg" />&nbsp; <a href="logout.jsp">SAIR &nbsp;</a>
    </div>
    </td>
  </tr>
  <tr>
    <td><img src="../img/banner.jpg" width="1024" height="159" /></td>
  </tr>
  <tr>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td valign="top"><form id="form1" name="cadastrarTipoLivro" method="post" action="TipoLivroServlet">
      <%= session.getAttribute("ID") %>
      <table width="41%" border="0" align="center">
        <tr>
          <td colspan="2">CADASTRAR TIPO DO LIVROS</td>
          </tr>
        <tr>
          <td width="19%">NOME:</td>
          <td width="81%"><input name="tipNome" type="text" id="tipNome" size="40" maxlength="60" /></td>
        </tr>
        <tr>
          <td colspan="2" align="center">
          <input type="submit" name="button" id="button" value="Enviar" />
          <input type="reset" name="button2" id="button2" value="Limpar" />
          </td>
          </tr>
      </table>
    </form></td>
  </tr>
  <tr>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td align="center"><img src="../img/rodape_adm.jpg" /></td>
  </tr>
</table>
</body>
</html>

3 Respostas

drsmachado

Sugiro atribuir o mesmo a um elemento qualquer que aceite a propriedade name e nomeá-lo como “ID”. Na servlet request.getAttribute(“ID”);

Só isto que falta.

F

Cara, muito obrigado mais uma vez.

No meu Dao eu não preciso fazer nada?

drsmachado

De resto, é igual.
Pegando o valor na servlet, preenchendo o campo adequado no objeto e enviando ao DAO, basta colocar lá um ps.setXXX e passar o parâmetro ali (não sei se é int ou se é String)

Criado 26 de maio de 2011
Ultima resposta 26 de mai. de 2011
Respostas 3
Participantes 2