Why it is so the any line of code which is there after a response.sendRedirect() method gets executed ?
As we know that incase of sendRedirect() controls is send back to browser. I have written a servlet in which after sendRedirect() method there is one System.out.println statement but after redirect to my jsp page that println statement executed.
Now my confusion is if control goes to my jsp page then how that println statement can execute after sendRedirect() ?
Thanks & Regards Bikash [ June 07, 2004: Message edited by: Bikash Paul ]
Joined: Nov 01, 2002
That is because the response has not been committed. After using this method, the response should be considered to be committed and should not be written to. Just type return; after this method.
No more rhymes! I mean it!<br /> <br />Does anybody want a peanut?
Joined: Dec 04, 2001
First of all thanks for the reply. But my question is after using this method, the response should be considered to be committed then why it is executing println statement. I know that using return; I can commit response. Can any one please tell me what will be probable reason behind that ?
sendRedirect does not contain any magic that alters the stream of execution of the code. All it does is to set response headers appropriately so that when the response is sent to the browser, it will perform the redirect.
It is up to you to not do anything illegal after you perform this operation.