Problema com redirecionamento de resposta

1 resposta
wilsontads

estou tentando criar uma servlet capaz de criar uma resposta contendo três páginas diferentes,
infelizmente não estou tendo sucesso quando tento criar o JavaBean implementando a funcionalidade de autenticação
e durante a tentativa de armazenamento do objeto User na sessão.
alguém pode me ajudar?..
=\

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;
import javax.servlet.http.HttpSession;
import org.apache.catalina.User;

public LoginServlet extends HttpServlet { 
  protected void doGet(HttpServletRequest request, HttpServletResponse response) 
    throws ServletException, IOException { 
    RequestDispatcher rd = null; 
    // recupera os parâmetros do formulário do usuário
    String loginName = request.getParameter("loginName"); 
    String password = request.getParameter("password"); 
    User user = null; 
    // cria o JavaBean implementando a funcionalidade de autenticação
    UserService service = new UserService(); 
    user = service.authenticateUser(loginName, password); 
    if (user == null) { 
      // gera a mensagem de erro
      response.setContentType("text/html"); 
      PrintWriter out = response.getWriter(); 
      out.println("Usuário não existe ou a senha está incorreta, verifique seu login e senha."); 
      // retorna para a página de login do usuário
      rd = request.getRequestDispatcher("/login.html"); 
      rd.include(request, response); 
      out.close(); 
    } else { 
      // armazena o objeto User na sessão
      HttpSession session = request.getSession(); 
      session.setAttribute(ApplicationConstants.USER_OBJECT, user); 
      // constrói a resposta a partir de múltiplos componentes HTML
      rd = request.getRequestDispatcher("/header.html"); 
      rd.include(request, response); 
      rd = request.getRequestDispatcher("/mainContent.html"); 
      rd.include(request, response); 
      rd = request.getRequestDispatcher("/footer.html"); 
      rd.include(request, response); 
   } 
}

1 Resposta

furutani

No lugar de rd.include() não seria rd.forward()

Criado 28 de março de 2009
Ultima resposta 28 de mar. de 2009
Respostas 1
Participantes 2