Avatar billede avnes Nybegynder
16. november 2003 - 20:47 Der er 14 kommentarer og
1 løsning

Problemer med at overføre værdier som indeholder # í Tomcat

Hej

Jeg har en lille Java webapp hvor der er to jsp sider jeg har problemer med. Den første side indeholder en HTML FORM med nogle input items og en submit button. Hvis brugeren taster ind noget med # (hash) i et input item, og klikker på submit så bliver alt efter # ikke overføret til den næste side. Eksempel: hvis brugeren taster ind:
"lalala # øvøvøv" så er det bare "lalala" som bliver submittet. Dette problemet har jeg kun i Apache Tomcat (4.1.29) og ikke i Orion ! Nogle ideer ?
Avatar billede arne_v Ekspert
16. november 2003 - 20:51 #1
Kun ved GET eller også ved POST ?
Avatar billede erikjacobsen Ekspert
16. november 2003 - 20:52 #2
En # skal overføres som %23 i en URL (urlencodes) hvis den ikke skal blive
opfattet som et - hvad er det nu det hedder - ankerlink (?) der skal
gå til <a name="her"></a> i f  xxx.xxx?hej=med#her
Avatar billede arne_v Ekspert
16. november 2003 - 20:53 #3
erik>

Jo - men hvorfor skulle browseren encode forskelligt til Tomcat og Orion ?
Avatar billede erikjacobsen Ekspert
16. november 2003 - 20:55 #4
Det forstår jeg heller ikke - men det er måske den eneste forskel mellem de 2 eksperimenter
Avatar billede erikjacobsen Ekspert
16. november 2003 - 20:55 #5
... det er måske IKKE den eneste ...
Avatar billede arne_v Ekspert
16. november 2003 - 20:58 #6
Jeg har tidligere set mærkelig opførsel med # i URL'er.

Men jeg synes at det vil vær emeget interessant at vide om
det kun er med GET eller også med POST at problemet er.

Mit gæt er at det virker med POST.
Avatar billede erikjacobsen Ekspert
16. november 2003 - 21:01 #7
Hvis det kommer fra en form POST/GET bør det jo altid virke. Om en server
så url-decoder "for tidligt" - premature partial urldecoding ... *G* - det
kan man jo aldrig vide.
Avatar billede avnes Nybegynder
17. november 2003 - 08:50 #8
Jeg har kun testet med POST. Tester GET i aften.
Avatar billede erikjacobsen Ekspert
17. november 2003 - 10:18 #9
Det lyder godt - vis os gerne noget kode for det, der (ikke) virker
Avatar billede avnes Nybegynder
17. november 2003 - 16:20 #10
Jeg har fundet fejlen. Min Tomcat kører via mod_proxy i Apache. Hvis jeg går direkte mod Tomcat virker det fint. Det er kun via mod_proxy mod Tomcat at alt efter # ikke bliver overført. Desværre er jeg afhengig af mod_proxy på grund af firewalls etc.. :/
Avatar billede arne_v Ekspert
17. november 2003 - 16:57 #11
Hm.

Jeg kan stadig ikke forstå at det kan berøre method=POST.
Avatar billede avnes Nybegynder
17. november 2003 - 20:40 #12
Jeg har set mere på koden plus sat til noget mere debug, og det viser sig faktisk at det kommer rigtig over i POST. Problemet begynder når jeg direkte efter at POST er færdig laver en GET på de samme værdier over til en trædje side:

String ctxurl = "http://" + request.getServerName() + ":" + request.getServerPort() + request.getContextPath();
  String tagger = request.getParameter("tagger");
  String subject = request.getParameter("subject");
  String tag = request.getParameter("tag");
  String url = null;
  if ((tagger != null)&&(subject != null )&&(tag != null))
  {
    // så langt så godt:
    _log.info(tag);
    // her er fejlen:
    url = ctxurl+"/submit2tagwall?success_url="+request.getRequestURI()+"&tagger="+tagger+"&subject="+subject+"&tag="+tag;
    response.sendRedirect(url);
  }

Bare underlig at det er via mod_proxy det fejler :/
Avatar billede erikjacobsen Ekspert
17. november 2003 - 20:45 #13
De værdier du skriver i din url altså XXXXX og YYYYY i

  ?s=XXXXXX&tagger=YYYYYY

skal URL-encodes
Avatar billede avnes Nybegynder
17. november 2003 - 20:56 #14
Tak. Nu virker det :)
Skriv et eller andet i Svar så du får dine points.
Avatar billede erikjacobsen Ekspert
17. november 2003 - 20:59 #15
ok da
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Uanset kodesprog, så giver vi dig mulighederne for at udvikle det, du behøver.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester