Boa tarde pessoal,
venho a vocês para ver se consigo solucionar o meu erro.
Vamos lá.
Estou fazendo um sistema de controle de almoxarifado, e para dar entrada de algum produto, eu quero verificar se o funcionario está logado. Entretanto ocorre o seguinte…
Servlet de entradaProduto
.
.
.
protected void service(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String codigoProduto = request.getParameter("codigoProduto");
String nomeProduto = request.getParameter("nomeProduto");
String numFornecedor = request.getParameter("numFornecedor");
String nomeFornecedor = request.getParameter("nomeFornecedor");
String quantidadeUnidade = request.getParameter("quantidadeUnidade");
String dataCadastro = request.getParameter("data");
String valor = request.getParameter("valor");
String botao = request.getParameter("botao");
String tipoPesquisaProduto = request.getParameter("tipoPesquisaProduto");
String tipoPesquisaFornecedor = request.getParameter("tipoPesquisaFornecedor");
if(botao.equals("Salvar")){
ProdutoDAO produtoDAO = new ProdutoDAO();
EntradaProdutoDAO entradaProdutoDAO = new EntradaProdutoDAO();
FornecedorDAO fornecedorDAO = new FornecedorDAO();
Session session = new Session();
Produto resultadoPesquisaProduto = produtoDAO.pesquisarProduto(Long.parseLong(codigoProduto));
Fornecedor resultadoPesquisaFornecedor = fornecedorDAO.pesquisar(Integer.parseInt(numFornecedor));
if(session.verificaSessao(request,response)==true){
produto.setCodProduto(Long.parseLong(codigoProduto));
fornecedor.setNumFornecedor(Integer.parseInt(numFornecedor));
entradaProduto.setDataEntrada(conversao.getDataBanco(dataCadastro));
entradaProduto.setValor(Double.parseDouble(valor));
entradaProduto.setQuantidadeUnidade(Integer.parseInt(quantidadeUnidade));
funcionario.setNumFuncionario(new Integer(request.getSession().getAttribute("sessaoUsuario")+""));
}
.
.
.
Verifica Sesão
[code]
package Servlets;
import java.io.IOException;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
public class Session {
public boolean verificaSessao(HttpServletRequest request,HttpServletResponse response) throws IOException, ServletException{
//RequestDispatcher rd = request.getRequestDispatcher("/WebEstoque/Login.jsp");
if(request.getSession().getAttribute("sessaoUsuario")+""==null){
System.out.println("Nulo");
response.sendRedirect("/WebEstoque/Login.jsp");
//rd.forward(request, response);
return false;
}
return true;
}
public HttpSession destruirSessao(HttpServletRequest request){
request.getSession().invalidate();
return request.getSession(true);
}
}[/code]
Quando eu entro direto pela URL(propositalmente), ele vai na classe Session e entra no “if” lê a primeira linha e simplismente sai do “if”, porém não redireciona. E como consequência, é retornado um NumberFormatException, pois eu tento converter um valor nulo em um número.
Ah, inclusive, nem é feita a impressão de “nulo” dentro do “if” da classe Session.
Sei que entra dentro desse “if” pois testei no modo debug.
Então é isso. =]
Alguém consegue apontar onde estou errando?
Um grande abraço.