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 :

response.sendRedirect vers un protocole autre que http


Sujet :

Servlets/JSP Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné Avatar de ruscov
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Mars 2007
    Messages
    347
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Belgique

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Mars 2007
    Messages : 347
    Par défaut response.sendRedirect vers un protocole autre que http
    Bonjour,

    Voici mon problème. Dans ma servlet, je souhaites faire un response.sendRedirect("URL"). Cela fonctionne très bien si je redirige vers une URL du style http://www.developpez.net/.
    Mais dans mon cas, je dois rediriger vers une URL du style
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    monprotocole://parameter1;parameter2
    C'est sensé ouvrir un programme.
    Quand je fais ça, cela ne fonctionne pas. Et j'ai pas d'erreur dans les logs. J'ai juste une page web "Page cannot be displayed". Par contre si je tape l'adresse ci-dessus directement dans le browser, cela fonctionne, il m'ouvre mon programme.
    Je vous mets mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    		Integer serial = Integer.parseInt(request.getParameter("extId"));
    		Properties configFile = new Properties();
    		configFile.load(this.getClass().getClassLoader().getResourceAsStream("config.txt"));
    		String url = configFile.getProperty("url");
    		response.sendRedirect(response.encodeRedirectURL(url + serial));
    	}
    Si quelqu'un a une idée, je l'en remercie d'avance.

  2. #2
    Rédacteur
    Avatar de lunatix
    Homme Profil pro
    Architecte technique
    Inscrit en
    Novembre 2002
    Messages
    1 960
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Novembre 2002
    Messages : 1 960
    Par défaut
    pas sur que ce soit faisable (securité du navigateur etc..)
    mais si ca l'est, il faut que tu passes par addHeader() et que tu ecrives toi même le header http de redirection

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    response.addHeader("Location", "http://www.example.org/");
    et que tu set le status a 302 ou 301
    setStatus

  3. #3
    Membre chevronné Avatar de ruscov
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Mars 2007
    Messages
    347
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Belgique

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Mars 2007
    Messages : 347
    Par défaut
    Bonjour merci pour ta réponse.

    Comme je disais, cela marche très bien avec des URL classique. Finalement j'ai testé avec un protocole que mon navigateur connaissait snews:// et ca fonctionen très bine. Il ouvre le programme associé par défaut.

    J'en ai conclu que c'est le problème venait du programme qui est sensé s'ouvrir en appellant monprotocole://.

    Ce que j'ai fait finalement, c'est ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    // response.sendRedirect(response.encodeRedirectURL(url + serial));
    response.setContentType("text/html");
    PrintWriter out = response.getWriter();
    out.println("<script type=\"text/javascript\">document.location.href = '"
        + response.encodeRedirectURL(url + serial) + "'</script>");
    out.flush();
    Du coup j'ai déporté la redirection dans le navigateur et cela a fonctionné correctement.

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 10/04/2013, 20h12
  2. [Toutes versions] Envoyer un message d'alerte vers messagerie autre que Outlook
    Par Arnaud_91 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 11/03/2011, 15h00
  3. window.open et les chemins autre que http et ft
    Par aelmalki dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 01/07/2010, 17h09
  4. Export vers ACCESS autre que [com.healthmarketscience.jackcess]
    Par Sabact dans le forum Débuter avec Java
    Réponses: 5
    Dernier message: 29/09/2009, 13h33
  5. Des protocoles de connexion autre que ODBC
    Par Chatbour dans le forum JDBC
    Réponses: 1
    Dernier message: 20/04/2008, 20h08

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