25. oktober 2017 - 15:13Der er
4 kommentarer og 1 løsning
Er response.addCookie(cookie) afhængig af placering i .JSP?!?
Spørgsmål: Hvor kan jeg læse, hvilke krav, der er til at tilføje en cookie?
Problemstilling: Jeg har en .jsp, hvor jeg gerne vil placere en cookie hos klienten. Jeg kan konstatere, at: a) Hvis jeg skriver response.addCookie(cookie) i de første linier kode, så bliver der oprettet en cookie. b) Hvis jeg skriver response.addCookie(cookie) længere nede i koden, så bliver der ikke oprettet en cookie.
(For at være helt sikker på at det er den samme cookie-kode, der afvikles, har jeg skrevet det ind i en metode. Jeg kalder metoden forskellige steder i min .jsp, men pludselig bliver cookien ikke længere oprettet. Efter bedste overbevisning foretager jeg mig ikke noget giftigt, jeg genererer blot et par hundrede liniers HTML)
Kan man forestille sig, at serveren sende noget af HTML-koden til klienten inden jeg er færdig med at generere kode. Og når først serveren er begyndt på det, så kan jeg ikke længere oprette cookies?!?
Hvis du ikke kender vaerdien foer laengere nede i JSP siden, saa skal du nok omstrukturere lidt saa du foerst har al logikken og derefter starter med at outputte.
Nogle gange er forward muligheden god til at struktuere med.
Nu har jeg lige laest lidt. Der er en anden mulighed, hvis du gerne vil undgaa store aendringer.
Som du har opdaget, saa kan du saette cookies lidt nede i JSP side uden at det gaar galt. Det er fordi at JSP output bufferes og at der foerst sendes noget til browser naar buffer er fuld (eller siden er faerdig). Og indtil buffer er fuld kan du godt saette cookie.
Du kan oege stoerrelsen af den buffer!
<%@ page buffer="100kb" %>
vil lade din JSP side skrive 100 KB foerend der sendes noget til browser.
Men den rigtige loesning maa stadig vaere at strukturere saa al logik er paa plads inden foerste HTML tag genereres.
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.