Well, my question is:
? separates the path and parameters. For this url: http://www.example.com/login?fs=1&view=tl it is very clear that we are passing parameters to "login" servlet.
I didn't understand this url: https://mail.google.com/mail/?fs=1&view=tl Here to whom are we passing parameters?
Thanks in advance for your help!
Chinmaya Chowdary wrote:Hi Faisal.
I think in gmail application, the redirection happens like this(this is my assumption, there may be better approaches than this),
Here attributes 'paramOne' and 'paramTwo' are set some where in the application.
I do not think this explanation is correct; it still did not explain why thhe url appears as
If a redirect had occured to the mail page, one would have expected some thing like
I am not buying your explanation yet.
I am sorry, here 'value' attribute of <c:url > tag is not '/mail', it is '/' in <c:url > tag.
signifies server root, the part
signifies application root, and the part
signifies query string.
Now we are in 'mail' web application, and one of its jsp wants to do redirect, and it can be done by
In the above code the JSTL's <c:url >tag is used for URL rewriting and URL encoding. At the end it produces
with 'jsessionid' if the client disables cookies(like /mail/;jsessionid=...) and sets the attribute 'var' in page scope like,
Here the values '1' and 'tl' are produced by 'paramOne' and 'paramTwo' that are set some where in the application.
Now we have to get the attribute 'var' that was set in the page socpe. It can be done by Now we have the URL and we are about to redirect it by using response object's sendRedirect(String str) method, like Now the redirection wil happens. During redirecting, the client(browser) sends the request to the server by using the url
Now the DD checks the url pattern, here it is '/'(default servlet) and finds the appropriate servlet and sends the parameters 'fs=1&view=tl' to it, process it and finally the response will be sent to the client.