Avatar billede r9 Nybegynder
31. maj 2002 - 11:44 Der er 3 kommentarer og
1 løsning

jsp:forward page & response.sendRedirect

Jeg synes at response.sendRedirect() opfører sig underlig. Burde den ikke bare sende brugeren videre, uden at udføre resten af jsp koden?

Det synes jeg ikke den gør i følgende eksempel:

******test.jsp*******

<HTML>
<HEAD>
<TITLE>test</TITLE>
</HEAD>
<BODY>

<%
response.sendRedirect("test1.jsp");

session.setAttribute("Page", "test");
%>

</BODY>
</HTML>




*****test1.jsp*******

<HTML>
<HEAD>
<TITLE>test</TITLE>
</HEAD>

<BODY>

<%

String t = (String)session.getAttribute("Page");

out.println(t);

%>

</BODY>
</HTML>



Min Page-attribute blive alligevel sat, selvom jeg sender brugeren videre inden jeg sætter atributten!

Hvorfor?
Avatar billede erikjacobsen Ekspert
31. maj 2002 - 11:46 #1
Nej, den udfører resten af koden. Det eneste den gør at sætte en ekstra
linie i HTTP-headeren. Du må selv sørge for at resten ikke bliver udført,
når du laver en Responze.sendRedirect
Avatar billede r9 Nybegynder
31. maj 2002 - 11:46 #2
Hvis jeg istedet bruger jsp:forward page, så virker det!

Hvorfor?


*****test.jsp****

<HTML>
<HEAD>
<TITLE>test</TITLE>
</HEAD>

<BODY>


<jsp:forward page="test1.jsp" />

<%


//response.sendRedirect("test1.jsp");


session.setAttribute("Page", "test");


%>

</BODY>
</HTML>



******test1.jsp*******

<HTML>
<HEAD>
<TITLE>test</TITLE>
</HEAD>

<BODY>


<%

String t = (String)session.getAttribute("Page");

out.println(t);

%>

</BODY>
</HTML>


Nu bliver attributen ikke sat.
Avatar billede erikjacobsen Ekspert
31. maj 2002 - 11:58 #3
Fordi den gør det, som den siger. Laver en forward, og ikke udfører
resten af siden.
Avatar billede r9 Nybegynder
31. maj 2002 - 12:27 #4
takker.

bare det virker, så er jeg glad.
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