Modèle d'URL de servlet correspondant à une URL se terminant par une barre oblique (& # 8220; / & # 8221;)

StackOverflow https://stackoverflow.com/questions/459263

Question

J'aimerais spécifier un modèle d'URL de servlet correspondant à une URL se terminant par une barre oblique ("/") et uniquement une barre oblique.

Je comprends que le motif

    /example/path/*

correspondra à une URL de

    http://example.com/example/path/

et que cela semble fonctionner. Cependant, ce même modèle correspondrait également aux URL de

    http://example.com/example/path/a/
    http://example.com/example/path/b/
    http://example.com/example/path/c/

Je recherche simplement un modèle d'URL correspondant à http://example.com. / example / path / uniquement sans que le http: / /example.com/example/path/a/ , etc.

Clarification: un modèle d'URL se terminant par une barre oblique n'est pas autorisé.

Était-ce utile?

La solution

Il est tout à fait possible que vous ne puissiez pas le faire en effectuant un mappage dans web.xml.

Ce que vous pouvez faire est de mapper le servlet à / mypath / *, puis de vérifier la partie après / mypath / via request.getPathInto (). Si c'est "/", lancez votre code. Si ce n’est pas le cas, renvoyer l’erreur 404.

Autres conseils

Dans NetBeans, si je passe à l'onglet Servlets du fichier web.xml, l'EDI se plaindra avec, "Erreur: les modèles d'URL ne peuvent pas se terminer par un slash (/)". Dans la spécification d'URL , il est indiqué ce qui suit:

httpurl        = "http://" hostport [ "/" hpath [ "?" search ]]
hpath          = hsegment *[ "/" hsegment ]

Donc oui, un URI avec une barre oblique de fin n'est pas valide.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top