I lang tid har samarbejdsbranchen fokuseret på at forbedre enhedsfunktioner – bedre kameraer, klarere lyd og smartere software. Men den virkelige forvandling handler ikke om funktioner.
En session kræver at der bliver skrevet noget i HTTP headeren, og du har sikkert allerede sendt noget af kroppen (dit HTML) afsted, Det er lidt et gæt, for jeg synes ikke det plejer at give denne reaktion,
Jaa, men det i tænker på er det ikke JSP? Lige p.t. er det ikke JSP, men servlets (ved godt det er det samme, men ved ikke helt hvordan jeg skal forklare forskellen :-) )
Et eller andet sted i din servlets service-metode (eller doGet-metode), har du et kald til request.getSession().
Dette kald kommer EFTER du allerede er begyndt at skrive html ud out.println("<html>"); o.s.v
hvis du flytter dit request.getSession() op allerøverst i din metode før det første kald til out, skulle poblemet være løst.
Synes godt om
Slettet bruger
19. maj 2002 - 09:12#7
soelvpil>> Det har jeg selv tjekket, det var oxo en af mine første tanker, men det var desværre ikke det.
Men jeg tror nok at jeg har fået lokaliseret fejlen, spørgsmålet er bare hvordan jeg får rettet den.
Fejlen opstår ved at jeg bruger følgende kode i en servlet:
"ButtomFrameBasket curBasket = new ButtomFrameBasket(); curBasket.doGet(request,response);"
Jeg kan godt kalde servletten ButtomFrameBasket, den kører oxo godt nok som den skal, MEN når jeg i ButtomFrameBasket så skriver:
"Basket curBasket = (Basket) request.getSession().getAttribut("curBasket");" Smider den exception som jeg skrev i mit første indlæg. Jeg har oxo prøvet med "forward()", men den smider nøjagtig samme exception. Jeg må nok indrømme at jeg ikke aner hvordan jeg skal løse det problem :-(
VIl det sige, at du har en servlet, hvis doGet-metode du er i gang med at eksekvere? Og inde i denne doGet-metode er der så et kald til doGet-metoden på en anden servlet?
Det kan være du så i den første servlet skriver noget til out? HVis du ikke gør det, er problemet formentlig den "uatoriserede" måde du inkluderer indhold fra andre servlets på.
Jeg vil foreslå, at du lægger et kald af request.getSession()ind tidligt i den første servlet. Det skal være før kaldet af din ButtonfRameBasket, og før der bliveer ksrevet til out, hvis du gør det.
Hvis det ikke hjælper, kan du prøve at erstatte dit kald til ButtonFrameBasket med
soelvpil>> Du har ret i at det er den måde som jeg har lavet det på. Jeg vil prøve den sidste først, det lyder som om det er den mest rigtige måde at gøre det på. Jeg får ikke tid til det før i aften, men det skal absolut afprøves :-)
Synes godt om
Slettet bruger
20. maj 2002 - 14:52#10
du har fået point Soelvpil selvom det ikke var det der var galt, men jeg har brugt din metode alligevel fordi det var den mest korrekte :-) Det var min browser der blokerede for cookies. Lidt offtopic, kan man gøre noget ved det som programmør??
Jeg troede, at manglene cookiesupport i browseren blot betød, at serveren oprettede en ny session hver gang, fordi den ikke får en cookie tilbage.
Måden at styre sessioner på, hvis cookies ikke er understøttede er via metoden
response.encodeURL(String url);
d.v.s. alle links, actions på forms etc skal have urlerne manipulerede. Der vil typisk ske det, at metoden putter et sessionid ind i urlen. Har dog ikke selv prøvet det, men det er cistnok metoden der benyttes, hvis man f.eks. programmerer til mobiltelefoner.
Synes godt om
Slettet bruger
20. maj 2002 - 22:02#12
Det kan godt være at du har ret i, men det er min fejl. Jeg har ikke lavet så den opretter en ny session i hver servlet, jeg gør det kun én gang.
Den anden kender jeg faktisk ikke. Men understøtter de fleste browser ikke cookies?
Jeg tror at alle browsere i dag understøtter cookies. Brugeren har dog som regel mulighed for at slå dem fra, hvilket nogle (få) vælger at gøre.
Synes godt om
Ny brugerNybegynder
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.