Obtenir la partie de l'url de la requête à l'intérieur de la servlet
J'ai un EmailVerification
Servlet mappé avec /ev/*
url-pattern.
http://example.com/ev/ce52320570
Comment puis-je obtenir ce ce52320570
partie de l'URL dans ma Servlet?
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String vid = ""; //Here I need to get the id from the URL
}
Si vous voulez paramètre, vous aurez à gérer leur sur vous-même, en basant hors
J'ai posté une réponse, il peut être mieux alors qu'il sera de retour la dernière partie seulement aussi sans contenant une barre oblique...
J'ai besoin de prendre soin d'url comme
De
HttpServletRequest
méthodes. Si vous pouviez leur substituer, les paramètres de la requête tout serait plus facile.J'ai posté une réponse, il peut être mieux alors qu'il sera de retour la dernière partie seulement aussi sans contenant une barre oblique...
J'ai besoin de prendre soin d'url comme
http://xyz.com/ev/ce52320570/
- avoir un autre /
à la fin . il semble un peu de travail supplémentaire à split et remplacer les choses. Avez-vous une meilleure façon pour cela ?De
http://xyz.com/ev/ce52320570/
, request.getPathInfo()
vous donne la chaîne /ce52320570/
. Si vous voulez éliminer le "/"
s, il suffit d'appeler String#replace()
: String vid = request.getPathInfo().replace("/", "");
. Il vous donnera exactement ce52320570
. Et c'est indépendant du système de fichiers.OriginalL'auteur JAVAGeek | 2013-05-11
Vous devez vous connecter pour publier un commentaire.
Considérant une Servlet (appelé
EmailVerification
) mappé à/ev/*
:Oui. Dans le Servlet versions 2.5 et 3.0 (peut-être plus tôt), vous obtiendrez la subpath si vous avez une carte avec
*
, comme/ev/*
, comme vous l'avez fait.demande.getRequestURI()
, vous aurez l'URL demandée en tant queString
, comme/ev/ce52320570
.demande.getPathInfo()
vous obtient (si il existe) tout ce qui est après/ev/
./ev/123
,getPathInfo()
serait de vous donner/123
. De la même manière, une demande de/ev/some/other
,getPathInfo()
serait de vous donner/some/other
.demande.getQueryString()
doit être utilisé si vous avez besoin de la les paramètres de la requête partie de l'URL.getRequestURI()
etgetPathInfo()
vous donner seulement la chemin demandé. Si vous avez besoin pour obtenir le les paramètres de la requête, qui est, ceux qui suivent le?
, comme/ev/something?query1=value1&other=123
, seulementrequest.getQueryString()
serait de retour lequery1=value1&other=123
partie.demande.getParameter(parameterName)
si vous avez besoin de la valeur d'un spécifiques requête paramètre..getParameterValues()
si c'est un paramètre à valeurs multiplesPlus d'exemples de l'URL de pièces à la demande ici.
/ev/ce52320570
après la dernière/
pour obtenir l'idOui,
request.getPathInfo()
obtient (si il existe) vous tout ce qui est après/ev/
.Dans la dernière partie
request.getParameter(paramName)
est plus applicable querequedt.getQueryString()
, car il permet d'obtenir l'envoi de la valeur d'un seul coup.OriginalL'auteur acdcjunior
Utilisation
request.getRequestURI()
et supprimer ce que vous n'avez pas besoin, c'est à direrequest.getRequestURI().replace("/ev/");
OriginalL'auteur Mateusz