Avatar billede ripley Nybegynder
17. juni 2003 - 15:28 Der er 18 kommentarer og
1 løsning

"Siden er forældet"

Hej!

Jeg har en *.jsp-side, der efter udfyldning af en række indtastningsfelter/drop-downs ved tryk på en knap redirecter siden til en bestemt sti, alt efter indtastningerne.
Det går godt.
Når jeg så trykker "tilbage" i browseren, sker der det, at der kommer følgende advarsel:
"Advarsel - siden er forældet".
Trykker man igen, kommer man tilbage til indtastningssiden.

Er der nogen, der har en lille idé om, hvad problemet kan skyldes?
Avatar billede arne_v Ekspert
17. juni 2003 - 15:39 #1
Du har en JSP-side med en form, brugeren udfylder nogle felter,
submitter formen til en JSP-side/servlet der redirecter til en JSP-side,
"back" giver forældet, en "back" mere giver den første form.

Er det korrekt forstået ?

Hvad vises der på den forældede side ? Er den blank eller ? Hvilken
URL er der i adresse-linien ?
Avatar billede simonvalter Praktikant
17. juni 2003 - 15:51 #2
er det et problem .... har altid set det som normal opførsel ..
Avatar billede disky Nybegynder
17. juni 2003 - 18:20 #3
Det er hel normal reaktion når man poster fra en form.
Avatar billede arne_v Ekspert
17. juni 2003 - 19:42 #4
Det er muligt at det er "normalt", men 10 minutters eksperimenteren
hos mig har altså ikke kunnet reproducere det.

page1.jsp--(form submit)-->servlet--(redirect)-->page2.jsp--(back)-->page1.jsp

virker fint (testet med NS7 & IE5.5 + Tomcat 4 & Resin 2).

Og jeg kan heller ikke se logikken i:

page1.jsp--(form submit)-->servlet--(redirect)-->page2.jsp--(back)-->X--(back)-->page1.jsp

jeg kan forestille mig mange grunde til at X er expired, men jeg kan
ikke se hvad X skulle være !
Avatar billede disky Nybegynder
17. juni 2003 - 19:53 #5
Arne prøv at lav et felt der er til password, jeg mener det er det som skal til.

I din logik har du nævnt en servlet, men hvem snakker om servlets
Avatar billede arne_v Ekspert
17. juni 2003 - 20:09 #6
Det er sådan set ligegyldigt om det er en servlet - det er bare et
eller andet der redirecter.

Men jeg prøver lige med password.
Avatar billede arne_v Ekspert
17. juni 2003 - 20:11 #7
Nope.

Jeg får heller ikke fejlen med password.

Hvad mener du X er ?
Avatar billede disky Nybegynder
17. juni 2003 - 20:15 #8
Jeg kan da ikke svare på hvad du synes X er i dit eget eksempel.

Bingo nu kan jeg huske hvad årsagen er, det er når man specifikt siger at browsere og proxier ikke må cache siden, så bliver den forældet.
Avatar billede disky Nybegynder
17. juni 2003 - 20:16 #9
Hvis man f.eks. indsætter:
    response.setDateHeader("Expires", 0);
    response.setHeader("Pragma", "no-cache");

    response.setHeader("Cache-Control", "no-cache");

Så opstår 'problemmet'
Avatar billede disky Nybegynder
17. juni 2003 - 20:17 #10
Det kan vist også gøres på server niveau altså generelt, er dog ikke helt sikker.
Avatar billede arne_v Ekspert
17. juni 2003 - 20:24 #11
Dem har jeg også forsøgt med uden at kunne få fejlen.

Men hvis det var problemet ville jeg også tro at det var reload/refresh
og ikke back der skulle trykkes anden gang.

Altså:

page1.jsp--(form submit)-->servlet--(redirect)-->page2.jsp--(back)-->page1.jsp[exp]-(refresh/reload)-->page1.jsp

X er ikke noget jeg har opfundet det. Den er i det oprindelige spørgsmål.
Ihvertfald som jeg har læst det.
Avatar billede disky Nybegynder
17. juni 2003 - 20:30 #12
Der bliver stadigvæk ikke snakket om servlets som du angiver.

Jeg kan dog ikke teste det selv, da jeg ikke har en JSP engine på min server.

Men jeg ved at den kode kan fremprovokerer den opførsel, eftersom når browseren ikke må cache informationen, har den ikke siden længere når man trykker back.
En side reloades jo ikke når man trykker 'back' den viser bare det som er i cachen.
Avatar billede ripley Nybegynder
18. juni 2003 - 07:34 #13
arne - her er svar på dit første indlæg:

Jeg har en JSP-side med en form
Brugeren udfylde nogle felter
Trykker "OK"
Vha. Javascript ("location.href = ") sendes man til ny side
"back" giver forældet, en "back" mere giver den første form.

Den forældede side er bare blank (udover advarslen) og URL'en i adr.linjen svarer til den første side.

Jeg har lige opdaget, at når man opdaterer den side, hvor advarslen er på, så bliver man smidt hen til side nr. 2 igen!! Selvom URL'en i adr.-linjen svarer til side nr. 1???
Hjalp det en smule?
Avatar billede arne_v Ekspert
18. juni 2003 - 08:33 #14
Aha.

Det er jo et lidt andet scenario.

Jeg kan nu heller ikke genskabe det med dte, men det kan skyldes at
jeg er en ren amatør når det drejer som om JavaScript.

Har du mulighed for at teste den samme HTML/JavaScript som statisk
HTML side på en IIS eller Apache ?

Hvis det heller ikke virker der, så skal du nok lukke spørgsmålet
og stille det i HTML eller JavaScript kategorien. Hvis det virker der
så må det have et eller andet med det JSP engine sender ud at gøre.
Avatar billede arne_v Ekspert
18. juni 2003 - 08:34 #15
Og for en god ordens skyld:

pageA.jsp--(onClick location.href)-->pageB.jsp--(back)-->fejl--(back)-->pageA.jsp
Avatar billede ripley Nybegynder
18. juni 2003 - 09:15 #16
Yep
Avatar billede ripley Nybegynder
19. juni 2003 - 11:50 #17
disky - jeg tror sgu, du har ret (har ikke testet det endnu) - jeg er nemlig stødt på det før for længe siden og mener, at jeg fandt ud af at præcis dét gav problemet!
Du får point´ene, så vi kan få lukket spørgsmålet.
Avatar billede arne_v Ekspert
19. juni 2003 - 15:16 #18
Jeg har også set den før.

Men jeg kan ikke genskabe den nu.

Murphys lov.
Avatar billede disky Nybegynder
27. juni 2003 - 07:55 #19
Mange tak, og held og lykke.
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
Kurser inden for grundlæggende programmering

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