URL trop longue

Salut à tous

J’aimerais vous soumettre un problème que je rencontre au taf et auquel je ne trouve pas de solution pour l’instant.
Le problème est le suivant :
Je souhaite envoyer à une servlet le contenu d’un tableau javascript. La méthode que j’utilise est d’encoder dans l’url tous les éléments du tableau, ça donne à peut près ça :
http://chemin/servlet?case11=truc&case…p;caseij=bidule
Le problème vient du fait que le protocole http limite la taille des urls à 2ko, donc quand mon tableau atteint une certaine taille, paf ! l’url ne passe pas.

Je ne vois qu’une seule parade : envoyer les données en POST et non en GET (ou pseudo-GET dans mon cas). Or tout est dans un tableau et non dans un formulaire, et c’est là que ça coince. Je ne trouve pas le moyen de créer dynamiquement une requete POST.

J’ai bien creusé du côté d’un ActiveX poétiquement appelé ““Microsoft.XMLHTTP”” et qui semble permettre -via du xml- d’envoyer une requete POST, mais celui-ci ne fonctionne que pour un serveur IIS et évidemment, vous l’aurez deviné, le serveur est Websphere (re-paf !).

Est-ce qu’il ya un autre moyen de créer une requete POST ?

Tonitonio
Qui en appelle à vot’ bon coeur m’sieur-dame, aidez un pov’ gars, l’bon Dieu vous’l rendra !

Allez venez aider le pauvre ESIEArque
J’ai une proposition cher collegue :stuck_out_tongue:
Les cookies ?
Oui je sais faut que l utilisateur ai active la chose, mais bon de nombreux site sont bien oblige de passer par la pour pouvoir passer des grands paquets d infos (je me souviens d’hotmail qui obligeait l’activation des cookies).
Tu fais un coup de session+cookies pour securiser un peu la chose et ca devrait passer non ?

PS : dsl si j ai dit des trucs faux ds le post

Hello cher ami
L’idée des cookies ne me plait pas plus que ça because un cookie c’est 4ko max
(tu me diras qu’on peut faire un tableau de cookies, et la je te répondrai “Soit, mais ça sera un beau bordel de gérer plusieurs cookies, et puis de toute façon le nombre de cookies pour un domaine est limité, alors le problème se posera à nouveau pour un tableau plus grand.”)

meee heuuu
je croyais que c t un peu plus gros un cookie
mais bon j aimerai bien savoir quand meme le fin mot de l’histoire, ca minteresse

Je fais appel a dautres esiearques !
On me dit : il faut creuser dans les sessions, on pourrait peut etre faire des trucs
ET :
Stan: en java du peu creer des connection client server direct, les class sont deja dev, il peu essayer de creer une connection client serveur et il peu envoyer tout les donnée dans le format qu’il veu meme en objet

Sinon tu as yahoo messenger ? Je peux te mettre en relation avec un gars de la webteam (le gros site interne de brutasse) si tu veux…

[quote]Je fais appel a dautres esiearques !
On me dit : il faut creuser dans les sessions, on pourrait peut etre faire des trucs
ET :
Stan: en java du peu creer des connection client server direct, les class sont deja dev, il peu essayer de creer une connection client serveur et il peu envoyer tout les donnée dans le format qu’il veu meme en objet

Sinon tu as yahoo messenger ? Je peux te mettre en relation avec un gars de la webteam (le gros site interne de brutasse) si tu veux…[/quote]On passe en PM…

Edit> Toujours pas de solution…
Ce message a été édité par tonitonio le 05/08/2003

Non non mais immonde !!! Beurk beurk beurk.

Tu stockes tout ca du cote serveur. Tu utilise un cookie ou un id de session dans l’url pour tracker ton user et tu lui fais correspondre ton tableau du cote serveur en tant que session.

Si ton tableau est en DHTML et editable a la volee (beurk) tu envoie que les cases qui sont changees, et puis si tu veux VRAIMENT faire un post je vois pas ce qui t’en empeche. Tu fais un < FORM ACTION=“post”> et sur le onclick du bouton, tu fais un truc qui remplit une variable < INPUT TYPE=“hidden”> de ton formulaire avec le contenu du tableau. Mais c’est degueu.

[quote]Non non mais immonde !!! Beurk beurk beurk.

Tu stockes tout ca du cote serveur. Tu utilise un cookie ou un id de session dans l’url pour tracker ton user et tu lui fais correspondre ton tableau du cote serveur en tant que session.[/quote]Oui c’est crado, et oui effectivement il aurait fallu le faire comme ça. Mais bon, dans la vie on ne fais pas toujours ce qu’on veut (traduction : le client dit “je veux ça”, le chef dit “on fait ça” et là y a plus le choix  )

[quote]Si ton tableau est en DHTML et editable a la volee (beurk) tu envoie que les cases qui sont changees, et puis si tu veux VRAIMENT faire un post je vois pas ce qui t’en empeche. Tu fais un < FORM ACTION=“post”> et sur le onclick du bouton, tu fais un truc qui remplit une variable < INPUT TYPE=“hidden”> de ton formulaire avec le contenu du tableau. Mais c’est degueu.[/quote]Donc il va bien falloir se démerder avec le “beurk”. Envoyer seulement certaines cases c’est impossible dans mon cas (on peut modifier un champs qui appartient à la clef primaire). Ta solution est envisageable, mais elle m’a déjà été proposée et ça m’embête un peu pour les raisons suivantes :

  • Il me semble que le POST limite la taille d’une variable. Donc mon problème de taille se reproduira un jour ou l’autre.
  • Ca m’oblige à revoir complètement les servlets qui récupèrent les données des tableaux (il y en a plusieurs, voir tout plein  , ainsi que mes jsp pour y inclure un formulaire.

Autre piste : est-ce que quelqu’un pourrait me dire s’il est possible d’arriver au résultat escompté en manipulant le DOM ? J’ai lu un jour un truc qui comparait deux méthodes pour modifier en local le contenu d’une page, le classique innerHTML et une méthode plus lourde qui modifiait directement le DOM. Ca marcherait ça ?

Edit > J’ai retrouvé le truc en question : innerHTML vs DOM
Ce message a été édité par tonitonio le 06/08/2003

[quote]Oui c’est crado, et oui effectivement il aurait fallu le faire comme ça. Mais bon, dans la vie on ne fais pas toujours ce qu’on veut (traduction : le client dit “je veux ça”, le chef dit “on fait ça” et là y a plus le choix )[/quote]Qu’est ce que c’est que ce truc de merde ou le client viens regarder des details d’implementation!!! Faut l’envoyer chier et lui dire que lui il definit des fonctionalites, des scenario et que l’implementation c’est ton metier et ton travail et qu’il a pas a te dire comment faire ton travail. C’est n’importe quoi ca… resultat c’est un truc de merde et ton chef est bien con de plier sur ce genre de choses… faut savoir dire “va te faire mettre” au client parfois…

Sinon pour la taille limite des posts c’est limite par le server HTTP, et en general c’est a un ou deux megas, donc t’as largement de la marge et c’est trop mieux dans un post que dans un GET.
Ce message a été édité par GloP le 06/08/2003

Bienvenue dans le monde merveilleux de l’informatique GloP, j’ai peur que dans beaucoup de boites, surtout si elles sont petites, ça se passe comme ça… Le client, qui s’imagine tout connaitre sur tout, vient mettre son nez là où il devrait pas et … le projet dérape.

C’est comme ça que coulent beaucoup de petites boites d’informatique

[quote]Bienvenue dans le monde merveilleux de l’informatique GloP, j’ai peur que dans beaucoup de boites, surtout si elles sont petites, ça se passe comme ça… Le client, qui s’imagine tout connaitre sur tout, vient mettre son nez là où il devrait pas et … le projet dérape.

C’est comme ça que coulent beaucoup de petites boites d’informatique [/quote]Eheh tout a fait d’accord c’est exactement le cas de mon entreprise qui a force de se looper sur tous ses projets est en dépot de bilan aujourd’hui c’est un dur métier le plus souvent a cause de clients un peu récalcitrants.

C’est ce qui fait la difference entre un bon chef et un mauvais chef surtout. Je connais le probleme, je dis juste qu’il faut pas se laisser faire .

en parlant d’url trop longue… http://www.fautvraimentetreconpouravoirune…aussilongue.com

[quote]Qu’est ce que c’est que ce truc de merde ou le client viens regarder des details d’implementation!!! Faut l’envoyer chier et lui dire que lui il definit des fonctionalites, des scenario et que l’implementation c’est ton metier et ton travail et qu’il a pas a te dire comment faire ton travail. C’est n’importe quoi ca… resultat c’est un truc de merde et ton chef est bien con de plier sur ce genre de choses… faut savoir dire “va te faire mettre” au client parfois…[/quote]C’est un peu plus qu’un détail d’implémentation, dans la cas présent. L’utilisateur a des tableaux de taille conséquente dans lesquels il modifie/supprime/ajoute des éléments, et il ne veux pas avoir à lancer un appel de page à chaque opération (il veut pouvoir tout faire puis balancer le tout).
Le problème du chef, c’est un autre débat, beaucoup plus complexe
D’ailleurs tu sais quoi ? Le chef en question n’est plus chef depuis…

[quote]Sinon pour la taille limite des posts c’est limite par le server HTTP, et en general c’est a un ou deux megas, donc t’as largement de la marge et c’est trop mieux dans un post que dans un GET.
Ce message a été édité par GloP le 06/08/2003[/quote]Nan, je parle pas de la taille limite d’un POST (qui est effectivement paramétrable), mais de la taille limite d’UNE référence au sein d’un POST.

Mais qu’importe tout ceci puisque j’ai la joie de vous annoncer que le problème est résolu. En fait contrairement à ce que je pensais, l’ActiveX fonctionne très bien avec Websphere. Donc je construis une vraie requete POST avec tout ce que je veux dedans.
Merci en tout cas d’avoir bien voulu vous pencher sur mon problème (et au passage balancer sévère sur mes chefs, la boîte où je bosse, etc   )

(Edit pour les fautes)
Ce message a été édité par tonitonio le 07/08/2003