servlets and cookies
Hello i assume this is more of a servlet programming problem that tomcat, but i hope someone has some insight? Please tell me i can do this: 1)i go to a jsp page and if it does not find the exist of a cookie it forwards to a login screen 2) the login screen submits to a servlet, and then set some cookies and then forwards to the original JSP 3) the orig jsp sees those cookies and life is fine. well i can not make the servlet set the cookies so that the forwarding jsp sees those cookies. Cookie cookie1 = new Cookie(USERID,_User.getUname()); cookie1.setMaxAge(-1); cookie1.setPath(/); res.addCookie(cookie1); Cookie cookie2 = new Cookie(USERDIR,_User.getDir()); cookie2.setMaxAge(-1); cookie2.setPath(/); res.addCookie(cookie2); RequestDispatcher disp = getServletConfig().getServletContext().getRequestDispatcher(/my.jsp); disp.include(req,res); my.jsp does not see the cookies. if i just refresh the browser the second time in the cookies are there What the heck am i doing wrong thanks - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
RE: servlets and cookies
Randy, Because you are doing an RequestDispatcher.include() the my.jsp page is served up in the same HTTP Response that is setting the cookies. my.jsp then looks in the Request for the cookies and doesn't find them there, because it's looking at the same HTTP Request that was originally sent to your login servlet. All the forwarding here ( or including in this case ) occurs on the server side. You need to do a round trip to the browser to set the cookies, so that they will be included on subsequent requests. i.e. something like : response.sendRedirect( /my.jsp ); This will send a 302 response to the browser, as well as the correct response headers to set your cookie values, so that they are included as request headers in the redirected request to my.jsp Steph P.S. for what it's worth I think the best explanation of all you need to know about HTTP methods, headers, cookies, etc.. comes in the first few chapters of an O'Reilly book called ASP in a Nutshell - just the thing for a Tomcat users list ;) -Original Message- From: Randy Paries [mailto:[EMAIL PROTECTED] Sent: Tuesday, October 14, 2003 3:48 PM To: [EMAIL PROTECTED] Subject: servlets and cookies Hello i assume this is more of a servlet programming problem that tomcat, but i hope someone has some insight? Please tell me i can do this: 1)i go to a jsp page and if it does not find the exist of a cookie it forwards to a login screen 2) the login screen submits to a servlet, and then set some cookies and then forwards to the original JSP 3) the orig jsp sees those cookies and life is fine. well i can not make the servlet set the cookies so that the forwarding jsp sees those cookies. Cookie cookie1 = new Cookie(USERID,_User.getUname()); cookie1.setMaxAge(-1); cookie1.setPath(/); res.addCookie(cookie1); Cookie cookie2 = new Cookie(USERDIR,_User.getDir()); cookie2.setMaxAge(-1); cookie2.setPath(/); res.addCookie(cookie2); RequestDispatcher disp = getServletConfig().getServletContext().getRequestDispatcher(/my.jsp); disp.include(req,res); my.jsp does not see the cookies. if i just refresh the browser the second time in the cookies are there What the heck am i doing wrong thanks - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: servlets and cookies
Hello - Hello i assume this is more of a servlet programming problem that tomcat, but i hope someone has some insight? Please tell me i can do this: 1)i go to a jsp page and if it does not find the exist of a cookie it forwards to a login screen 2) the login screen submits to a servlet, and then set some cookies and then forwards to the original JSP 3) the orig jsp sees those cookies and life is fine. well i can not make the servlet set the cookies so that the forwarding jsp sees those cookies. When it comes to doing things like this - I generally use session or request variables to do so (not direct cookie access) - is there a reason you wouldn't want to do this instead of the session? I think most of the time tomcat will be using cookies for all of this (unless explicitly told to use URL rewriting). For example - maybe do something like this (using struts): (numbers correspond to above): 1) %@ taglib uri=/tags/struts-bean prefix=bean % %@ taglib uri=/tags/struts-html prefix=html % %@ taglib uri=/tags/struts-logic prefix=logic % html head titleAdmin Tool/title html:base/ /head body html:errors/ logic:notPresent scope=session name=isLoggedIn logic:redirect forward=adminLogin/ /logic:notPresent logic:present scope=session name=isLoggedIn logic:redirect forward=adminHome/ /logic:present ... Where 'adminLogin' is mapped: forward name=adminLogin path=/adminLogin.do/ which is an action that forwards to a file called login.jsp action path=/adminLogin type=org.apache.struts.actions.ForwardAction parameter=/admin/login.jsp/ 2 3) login.jsp (above) then uses a servlet to gather the information if successful then: ... session.setAttribute(IConstants.IS_LOGGED_IN, true); where ' IConstants.IS_LOGGED_IN' = isLoggedIn and then forwards back to the home page (after setting other vars in the session/request as well). Also this way - if the session has expired, then the test at the beginning would forward back to the login if needed as well. I could be doing this wrong as well - but seems to work OK. Hope this is what you were asking about (if not - sorry for the wasted space!) =) -- Robert B. Weeks - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]