2013-07-30 5 views
0

j'ai une URL très longue avec un nombre de paramètres commeRetirez le paramètre de url

http://localhost:8080/BUUK/dbcc?dssin=9371062001&roundid=JS&KIPL=02&PLATFORM=1&FREQUENCY=2&DRBEARER=1&BUYTYPE=1&EUP=12&TID=72123456435653654&SHORTCODE=54300&ADCODE=234rfdfsf&Buytag=3&Checkpoint=5,6,7&CHARGEMODEL=complete&restbalance=1 

Je veux récupérer tous les paramètres de cette URL.

Je me demandais si je peux utiliser request.getParamter("restbalance");

Je fournirai plus d'informations, si nécessaire. Merci

+0

Voulez-vous récupérer les paramètres dans la servlet? – NINCOMPOOP

+1

@AzAh oui vous pouvez. Avez-vous essayé avant de poster cette question? Ou y a-t-il quelque chose d'autre que tu veux faire? –

+0

@captain J'ai essayé, bon sang, je ne l'utilisais pas correctement. Maintenant je l'utilise avec les beans et une méthode avec le paramètre 'HttpServletRequest' qui définit tout le bean. Toute la réponse a été utile. MERCI – AzAh

Répondre

0

Pour chaque demande votre serveur Web plus précisément votre conteneur Web crée une requête et une réponse à deux objets.

HttpServletRequest et HttpServletResponse

Le servletcontainer est attaché à un serveur Web qui écoute sur les requêtes HTTP sur un certain nombre de port, qui est habituellement 80. Quand un client (utilisateur avec un navigateur Web) envoie une requête HTTP, le servletcontainer créera de nouveaux objets HttpServletRequest et HttpServletResponse et les transmettra via les méthodes des instances Filter et Servlet déjà créées dont le modèle d'URL correspond à l'URL de la requête, le tout dans le même thread.

L'objet de requête permet d'accéder à toutes les informations de la requête HTTP, telles que les en-têtes de demande et le corps de la demande. L'objet de réponse offre la possibilité de contrôler et d'envoyer la réponse HTTP comme vous le souhaitez, comme la définition des en-têtes et du corps (généralement avec le contenu HTML d'un fichier JSP). Lorsque la réponse HTTP est validée et terminée, les objets de demande et de réponse seront tous deux jetés dans la corbeille.

request.getParameter("request_param"); vous donnera la valeur request_param. Il n'y a donc rien de surprenant à accéder request parameter de request object

0

Oui, vous pouvez utiliser request.getParameter où request est l'objet de HttpServletRequest.

Des javadocs getParameter

java.lang.String getParameter (nom java.lang.String) Renvoie la valeur d'un paramètre de requête en tant que chaîne, ou null si le paramètre ne existent . Les paramètres de demande sont des informations supplémentaires envoyées avec la demande. Pour les servlets HTTP, les paramètres sont contenus dans la chaîne de requête ou les données du formulaire . Vous ne devez utiliser cette méthode que si vous êtes sûr que le paramètre n'a qu'une seule valeur: . Si le paramètre peut avoir plus d'une valeur, utilisez getParameterValues ​​(java.lang.String).

Si vous utilisez cette méthode avec un paramètre à plusieurs valeurs, la valeur renvoyée est égale à la première valeur du tableau renvoyée par getParameterValues. Si les données de paramètres ont été envoyées dans le corps de la requête, comme avec une requête HTTP POST, la lecture directe du corps via getInputStream() ou getReader() peut interférer avec l'exécution de cette méthode.

+0

'request' peut être un objet de n'importe quel' ServletRequest' pas nécessairement 'HttpServletRequest'. Voir est déclaré dans l'interface 'ServletRequest'. – NINCOMPOOP

1

Si vous avez affaire à HttpServletRequest vous pouvez utiliser

String restbalance = request.getParameter("restbalance"); 

ou ... pour obtenir tous les parameteres, vous pouvez faire:

String[] params = request.getParameterValues(); 

Voici le javadoc pour le HttpServletRequest classe, avec toutes les méthodes disponibles répertoriées.

0

Essayez getParameterMap()

Map params = request.getParameterMap(); 
Iterator i = params.keySet().iterator(); 
while (i.hasNext()) 

{ 

String key = (String) i.next(); 

String value = ((String[]) params.get(key))[ 0 ]; 

} 
0

Eh bien, request.getparameter() ne fonctionnera bien que si le request frappe votre Servlet d'où vous voulez mettre la main sur les paramètres de la requête. S'il vous plaît passer par l'interface de documentation ServletRequest pour toutes les méthodes pertinentes à votre usage.

  1. getParameter();

  2. getParameterNames();

  3. getParameterValues();

  4. getParameterMap();

Vous pouvez également utiliser HttpServletRequest#getQueryString() pour l'analyse personnalisée.

Pour le code Java normal, vous pouvez analyser la chaîne renvoyée par URL.getQuery() vous-même pour extraire les données.