5 votes

Redirection vers la page d'accueil si l'utilisateur est déjà connecté

Duplicata possible :
Comment rediriger vers une autre page lorsqu'un utilisateur déjà authentifié accède à la page de connexion ?

Si un utilisateur connecté clique sur login.jsp il devrait alors être automatiquement redirigé vers sa page home.jsp . Avant l'authentification, l'utilisateur se rend à login.jsp et après avoir été authentifié par un servlet (doPost), il est redirigé vers home.jsp Mais lorsque le même utilisateur clique à nouveau sur la page de connexion, il doit être automatiquement redirigé vers le site suivant home.jsp au lieu de se reconnecter. Comment puis-je le faire dans JSP/Servlet ? Je configure la session à partir de ce servlet après m'être authentifié avec succès.

Avant de se connecter, l'utilisateur clique sur login.jsp et se rend à doPost() de la servlet et va à home.jsp . Après s'être connecté avec succès, si l'utilisateur clique à nouveau sur login.jsp alors au lieu d'aller à login.jsp , le contrôle doit être effectué directement auprès de home.jsp . Comment faire ?

Si l'utilisateur est déconnecté, ce n'est qu'après avoir cliqué sur login.jsp Le contrôle sera transféré à login.jsp et ensuite doPost() de servlet et enfin home.jsp viendra.

9voto

Kashif Khan Points 1829

Essayez ce code dans votre login.jsp

if(session.getAttribute("authenticated")!=null && session.getAttribute("authenticated").equals(true))
{
   response.sendRedirect("home.jsp");
}

3voto

JB Nizet Points 250258

Faire en sorte que la page/action de connexion vérifie si l'utilisateur est connecté, et redirige vers la page d'accueil s'il est connecté :

if (alreadyLoggedIn) {
    response.sendRedirect(response.encodeRedirectURL(request.getContextPath() + "/home"));
    return;
}

Mais vous ne devriez probablement pas avoir de lien vers la page de connexion si l'utilisateur est déjà connecté.

0voto

dku.rajkumar Points 8886

Pour vous aider, j'ai écrit un exemple et j'ai exécuté le code dans ma machine.

Dans la page du servlet, dans doPost :

String username = request.getParameter("username");
String password = request.getParameter("password");
boolean isCredentialValid = validateCredentials(username, password);
String nextPage ="";
HttpSession session = request.getSession(true);
if(isCredentialValid){
    nextPage = "home.jsp";
    session.setAttribute("isLoggedIn", "true");
}else{
    request.setAttribute("error", "Either username or password is invalid.");
    nextPage ="login.jsp";
}
RequestDispatcher rd = request.getRequestDispatcher(nextPage);
rd.forward(request, response);

en login.jsp

<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
<script type="text/javascript">
  var isLoggedIn = "<%= (String)session.getAttribute("isLoggedIn")%>";
  if(isLoggedIn === "true")
     window.location.href="home.jsp";
  }
</script>
</head>
<body>
   <form action="Test" method="post">
    ${error}
    <br/>
     UserName : <input type="text" name="username"/>
    <br/>
     Password : <input type="text" name="password"/>
    <br/>
    <input type="submit" value="submit"/>
  </form>
</body>

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X