Probleme redirection servlet
thiouraye
Messages postés
7
Statut
Membre
-
thiouraye -
thiouraye -
Bonjour,
j'ai un gros soucis depuis quelques temps. Je vous explique :
j'ai une page de connexion qui comporte une div. j'interroge ma servlet pour voir si le compte existe. S'il n'existe pas j'affiche un message d'erreur sur la div. Si le compte est bon je fais une redirection vers une page index le problème c'est que la page index est mis dans la div. quoi qu'il arrive il met à jour la div. J'arrive pas à rediriger vers la bonne page et fermer la div si le login est correct. Si quelqu'un a déja eu ce genre de soucis merci de m'aider s'il vous plait.
je joins les fichiers :
la servlet :
public class CheckLoginServlet extends HttpServlet {
static Logger logger = Logger.getLogger(CheckLoginServlet.class);
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
logger.info("DO GET");
String email = request.getParameter("email");
String password = request.getParameter("password");
DAOConnection daoc = null;
Connection con = null;
logger.info("email = "+email);
logger.info("password = "+password);
String valeur = "";
try{
daoc = DAOConnection.newInstance();
con = daoc.getConnection();
Factory factory = new Factory();
int identifiantCandidat = factory.checkLoginCandidat(con,email, password);
LoginFormBean login = new LoginFormBean();
PrintWriter out = response.getWriter();
if(identifiantCandidat==0){
valeur = "Mauvais Login";
// request.setAttribute("login", login);
// Write the text to response
response.setContentType("text/html");
out.println(valeur);
out.flush();
}else{
// redirection
//int statut = 201;
UserSessionBean usersession= new UserSessionBean();
usersession.setCandidateLastname(email);
request.setAttribute("usersession", usersession);
request.setAttribute("espace", "1");
//response.setStatus(statut);
//response.sendRedirect("test.html");
out.println("/index.html");
}
}catch(Exception e){
e.printStackTrace();
}
}
}
/********************************** le JAVASCRIPT ****************/
function appelAjaxExemple(){
alert("appel ajax");
var email = document.getElementById('email').value;
var password = document.getElementById('password').value;
ajaxCallRemotePage('/CheckLoginServlet?email='+email+'&password='+password);
}
function ajaxCallRemotePage(url){
if (window.XMLHttpRequest){
// Non-IE browsers
req = new XMLHttpRequest();
req.onreadystatechange = processStateChange;
req.open("GET", url, true);
req.send(null);
}
else if (window.ActiveXObject)
{
// IE
req = new ActiveXObject("Microsoft.XMLHTTP");
req.onreadystatechange = processStateChange;
req.open("GET", url, true);
req.send();
}
else {
return; // Navigateur non compatible
}
}
function processStateChange(){
if (req.readyState == 4)
{ // Complete
if (req.status == 200)
{
// OK response
// alert("response = "+req.responseText);
var d = document.getElementById('monDiv');
d.innerHTML = req.responseText;
}else {
// Pour le debug
alert("Problem: " + req.statusText);
alert("status = : " + req.status);
}
}
}
j'ai un gros soucis depuis quelques temps. Je vous explique :
j'ai une page de connexion qui comporte une div. j'interroge ma servlet pour voir si le compte existe. S'il n'existe pas j'affiche un message d'erreur sur la div. Si le compte est bon je fais une redirection vers une page index le problème c'est que la page index est mis dans la div. quoi qu'il arrive il met à jour la div. J'arrive pas à rediriger vers la bonne page et fermer la div si le login est correct. Si quelqu'un a déja eu ce genre de soucis merci de m'aider s'il vous plait.
je joins les fichiers :
la servlet :
public class CheckLoginServlet extends HttpServlet {
static Logger logger = Logger.getLogger(CheckLoginServlet.class);
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
logger.info("DO GET");
String email = request.getParameter("email");
String password = request.getParameter("password");
DAOConnection daoc = null;
Connection con = null;
logger.info("email = "+email);
logger.info("password = "+password);
String valeur = "";
try{
daoc = DAOConnection.newInstance();
con = daoc.getConnection();
Factory factory = new Factory();
int identifiantCandidat = factory.checkLoginCandidat(con,email, password);
LoginFormBean login = new LoginFormBean();
PrintWriter out = response.getWriter();
if(identifiantCandidat==0){
valeur = "Mauvais Login";
// request.setAttribute("login", login);
// Write the text to response
response.setContentType("text/html");
out.println(valeur);
out.flush();
}else{
// redirection
//int statut = 201;
UserSessionBean usersession= new UserSessionBean();
usersession.setCandidateLastname(email);
request.setAttribute("usersession", usersession);
request.setAttribute("espace", "1");
//response.setStatus(statut);
//response.sendRedirect("test.html");
out.println("/index.html");
}
}catch(Exception e){
e.printStackTrace();
}
}
}
/********************************** le JAVASCRIPT ****************/
function appelAjaxExemple(){
alert("appel ajax");
var email = document.getElementById('email').value;
var password = document.getElementById('password').value;
ajaxCallRemotePage('/CheckLoginServlet?email='+email+'&password='+password);
}
function ajaxCallRemotePage(url){
if (window.XMLHttpRequest){
// Non-IE browsers
req = new XMLHttpRequest();
req.onreadystatechange = processStateChange;
req.open("GET", url, true);
req.send(null);
}
else if (window.ActiveXObject)
{
// IE
req = new ActiveXObject("Microsoft.XMLHTTP");
req.onreadystatechange = processStateChange;
req.open("GET", url, true);
req.send();
}
else {
return; // Navigateur non compatible
}
}
function processStateChange(){
if (req.readyState == 4)
{ // Complete
if (req.status == 200)
{
// OK response
// alert("response = "+req.responseText);
var d = document.getElementById('monDiv');
d.innerHTML = req.responseText;
}else {
// Pour le debug
alert("Problem: " + req.statusText);
alert("status = : " + req.status);
}
}
}
A voir également:
- Probleme redirection servlet
- Redirection de mail - Guide
- Redirection 410 - Forum MacOS
- L'url suivante, censée aboutir à un article, donne lieu à une redirection indiquant que la page n'a pas été trouvée. retrouvez la page recherchée. reportez le titre de l’article et son auteur. - Forum Microsoft Edge / Internet Explorer
- Retrouver un url interrogé ✓ - Forum Réseaux sociaux
- Problème 'Cette page Web présente une boucle de redirection' ✓ - Forum Google Chrome
4 réponses
Bonjour,
faire une redirection sur un script appelé en ajax ne fonctionne pas dans mes souvenir.
Par contre tu peux la faire en javascript. Exemple :
Adns
faire une redirection sur un script appelé en ajax ne fonctionne pas dans mes souvenir.
Par contre tu peux la faire en javascript. Exemple :
var d = document.getElementById('monDiv');
if(d == "index.html")
document.location.href = d;
else
d.innerHTML = req.responseText;
Adns
Merci Adns de la réponse cela m'a permis d'avancer un peu. Seulement si je fais ça en supposant que dans ma servlet je fais : out.println("index.html");
donc je pourrais pas récupéré la session de l'utilisateur si son compte est correct car dans ma servlet je fais :
UserSessionBean userSession = new UserSessionBean();
userSession.setCandidateLastname(nom);
request.setAttribute("usersession", userSession);
Merci beaucoup pour la réponse. Si vous avez d'autres pistes merci de m'aider à résoudre mon pb.
donc je pourrais pas récupéré la session de l'utilisateur si son compte est correct car dans ma servlet je fais :
UserSessionBean userSession = new UserSessionBean();
userSession.setCandidateLastname(nom);
request.setAttribute("usersession", userSession);
Merci beaucoup pour la réponse. Si vous avez d'autres pistes merci de m'aider à résoudre mon pb.
Euh ??
Je ne connais pas particulièrement les UserSessionBean mais les sessions en général non pas besoin d'être passées de pages en pages..
Mais je peux me tromper.
Sinon tu peux toujours soumettre ton formulaire vers ta servlet lorsque que la réponse reçue est bonne. Tu n'auras plus l'effet ajax mais au moins ta servlet fera une vrai redirection
Adns
Je ne connais pas particulièrement les UserSessionBean mais les sessions en général non pas besoin d'être passées de pages en pages..
Mais je peux me tromper.
Sinon tu peux toujours soumettre ton formulaire vers ta servlet lorsque que la réponse reçue est bonne. Tu n'auras plus l'effet ajax mais au moins ta servlet fera une vrai redirection
Adns