Verificar Sessao

1 resposta
harlequinn

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

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);
		
	}
}

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.

1 Resposta

P

Pesquisa sobre filter… mais fácil de usar

Criado 14 de dezembro de 2010
Ultima resposta 14 de dez. de 2010
Respostas 1
Participantes 2