IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Servlets/JSP Java Discussion :

Method HTTP post n'est pas supportée par cet url


Sujet :

Servlets/JSP Java

  1. #1
    Nouveau membre du Club
    Femme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 32
    Points : 27
    Points
    27
    Par défaut Method HTTP post n'est pas supportée par cet url
    Bonsoir tout le monde!!

    Voilà j'ai cette fâcheuse erreur qui me colle et qui m'empêche de continuer mon projet...grrrr

    Pourtant mon formulaire a une méthode post...????
    A qui peut m'aider....

    Merci bien!!

    Voilà mon servlet

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
     
     
     
    import java.io.IOException;
     
    import javax.servlet.RequestDispatcher;
    import javax.servlet.ServletException;
    import javax.servlet.annotation.WebServlet;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
     
    @WebServlet(urlPatterns="/register")
    public class FirstServlet extends HttpServlet {
        private static final long serialVersionUID = 1L;
     
        @Override
        protected void doPost(HttpServletRequest req, HttpServletResponse resp)
                throws ServletException, IOException {
     
            String usermail = req.getParameter("usermail");
            req.getSession().setAttribute("usermail",usermail);
     
     
            RequestDispatcher rd = req.getRequestDispatcher("/login");
            rd.forward(req, resp);
     
        }
     
        @Override
        protected void doGet(HttpServletRequest req, HttpServletResponse resp)
                throws ServletException, IOException {
     
            resp.sendRedirect(req.getServletContext().getContextPath()+ "/login.jsp");
        }
    }
    Et voici mon formulaire:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
     
    <%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
    <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
        pageEncoding="ISO-8859-1"%>
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
     
    <html>
        <head>
            <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
            <title></title>
     
     
        </head>
     
        <body>
            <jsp:include page="/templates/header.jsp"/>
        <div>
            <form id="myForm" method="post" action="register">
                <fieldset>
                    <legend>Register</legend>
                    <ol>
                        <li>
                            <label for="usermail">Mail</label>
                            <input type="text" id="usermail" name="usermail" placeholder="usermail" required autofocus>
                        </li>
                        <li>
                            <label for="pwd">Password</label>
                            <input type="password" id="pwd" name="pwd" placeholder="password" required>
                        </li>
                        <li>
                            <label for="conf">Confirmation</label>
                            <input type="text" id="conf" name="conf" placeholder="confirmation" required>
                        </li>
                    </ol>
                </fieldset>
                <fieldset>
                    <button type = "submit" value="Submit">Submit</button>
                </fieldset>
            </form>
            </div>
     
        </body>
    </html>

    et mon web.xml

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
      <display-name></display-name>
      <welcome-file-list>
        <welcome-file>register.jsp</welcome-file>
      </welcome-file-list>
    </web-app>

  2. #2
    Membre émérite
    Avatar de olivier.pitton
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juin 2012
    Messages
    355
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2012
    Messages : 355
    Points : 2 814
    Points
    2 814
    Par défaut
    Plop,

    Vérifie que l'URL est bien /register et pas /SupLink/register. Je pense que ta page ne tape pas au bon endroit.

  3. #3
    Nouveau membre du Club
    Femme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 32
    Points : 27
    Points
    27
    Par défaut
    Merci Olivier pour ta réponse.

    L'url que j'obtiens dans la barre de navigation est http://localhost:8080/Suplink/register.


    Après plusieurs bidouilles , je réussis à faire marcher mon servlet sans vraiment avoir compris le pourquoi du comment.

    Quand je mets le code ci-dessous dans le dopost, ça me donne l'erreur que j'ai indiqué en titre.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    RequestDispatcher rd = req.getRequestDispatcher("/login");
    		rd.forward(req, resp);
    Par contre si je mets plutôt /login.jsp à la place de /login c'est ok.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    RequestDispatcher rd = req.getRequestDispatcher("/login.jsp");
    			rd.forward(req, resp);
    Je me demande pourquoi, quelqu'un le saurait-il?

  4. #4
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 804
    Points
    48 804
    Par défaut
    login et login.jsp ce n'est pas la même chose. Si tu n'a rien de mappé sur /login, ton request dispatcher ne marchera pas.

  5. #5
    Nouveau membre du Club
    Femme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 32
    Points : 27
    Points
    27
    Par défaut
    heuu, quand tu dis rien de mapper sur /login, tu veux dire quoi?

    Car dans mon LoginServlet.java, j'ai bien @Webservlet(urlpattern="/login").

  6. #6
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 804
    Points
    48 804
    Par défaut
    on peux voir le code de loginservlet?

  7. #7
    Nouveau membre du Club
    Femme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 32
    Points : 27
    Points
    27
    Par défaut
    Le voici


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
     
     
    package com.supinfo.suplink.servlets;
     
    import java.io.IOException;
     
    import javax.servlet.RequestDispatcher;
    import javax.servlet.ServletException;
    import javax.servlet.annotation.WebServlet;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import javax.servlet.http.HttpSession;
     
    @WebServlet(urlPatterns="/login")
    public class LoginServlet extends HttpServlet {
    	private static final long serialVersionUID = 1L;
     
     
    	@Override
    	protected void doPost(HttpServletRequest req, HttpServletResponse resp)
    			throws ServletException, IOException {
     
    		String username = req.getParameter("username");
    		req.getSession().setAttribute("user",username);
     
     
    		RequestDispatcher rd = req.getRequestDispatcher("/auth/dashboard.jsp");
    		rd.forward(req, resp);
     
    	}
     
    	@Override
    	protected void doGet(HttpServletRequest req, HttpServletResponse resp)
    			throws ServletException, IOException {
     
    		resp.sendRedirect(req.getServletContext().getContextPath()+ "/auth/board");
    	}
     
     
    }

  8. #8
    Membre chevronné
    Avatar de fxrobin
    Homme Profil pro
    Architecte SI, Java Fan, API Manager
    Inscrit en
    Novembre 2007
    Messages
    875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Architecte SI, Java Fan, API Manager
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2007
    Messages : 875
    Points : 2 112
    Points
    2 112
    Par défaut
    Bonjour,

    un forward sur un requestdispatcher ne maintient pas le mode d'appel HTTP.
    Le mieux étant de modifier la signature de ta méthode en passant de "doPost" à "service" dans ta classe LoginServlet.

    Ca donnerait le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
     
    package com.supinfo.suplink.servlets;   
    import java.io.IOException;   
    import javax.servlet.RequestDispatcher; 
    import javax.servlet.ServletException; 
    import javax.servlet.annotation.WebServlet; 
    import javax.servlet.http.HttpServlet; 
    import javax.servlet.http.HttpServletRequest; 
    import javax.servlet.http.HttpServletResponse; 
    import javax.servlet.http.HttpSession; 
     
    @WebServlet(urlPatterns="/login") 
    public class LoginServlet extends HttpServlet {     
        private static final long serialVersionUID = 1L;
     
        @Override     
        protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
            String username = req.getParameter("username");         
            if (username!=null) {
                      req.getSession().setAttribute("user",username);
                      RequestDispatcher rd = req.getRequestDispatcher("/auth/dashboard.jsp");
                      rd.forward(req, resp);
            } else {
                    resp.sendRedirect(req.getServletContext().getContextPath()+ "/auth/board");                
            }
        }   
     }
    tu pourrais aussi jouer avec les attributs de request pour savoir en quel mode la servlet initial a été appelée (POST ou GET) et donc déclencher le traitement qui va bien.

  9. #9
    Nouveau membre du Club
    Femme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 32
    Points : 27
    Points
    27
    Par défaut
    Ha ok je comprends mieux, merci pour ta réponse fxrobin!!!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. HTTP GET n''est pas supportée par cette URL
    Par wajdisoft dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 24/10/2009, 18h02
  2. La méthode HTTP POST n'est pas supportée par cette URL
    Par jrosenzw dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 23/10/2008, 16h48
  3. [MySQL] MySQL n'est pas chargé par php
    Par elvan49 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 23/11/2006, 17h14
  4. Réponses: 1
    Dernier message: 17/10/2006, 16h05
  5. innerText n'est pas reconnue par FireFox !
    Par faico dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 26/08/2006, 22h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo