From: David C. <da...@ca...> - 2001-08-28 14:07:44
|
At 09:40 AM 8/28/2001, you wrote: >We've seen this problem before. There are 2 solutions that I know of: > >1) instead of using sendRedirect(), use >self.application().forward(self.transaction(), url) which will perform the >redirect purely within the appserver. Not only will this be faster, but I >can definitely vouch that it will preserve any session variables you set >before you do the forward, but only if you use a CVS version of Webware >from sometime in the last 2 months -- I fixed a bug in this area in late June. I like the sound of this solution... especially the "faster" part. :) However, the code self.application().forward(self.transaction(), "index.htm") gives the error "AttributeError: Application instance has no attribute 'forward'". >2) redirect to a full url like "http://foo.com/bar/index.htm" instead of >just "index.htm". I'm pretty sure this will also solve the problem, >because it forces the redirect and session cookie to be sent all the way >back to your browser. This does work. It's not as elegant as #1 for code that I'll deploy to customer sites, but works fine for now. >And since this question keeps on coming up every couple of weeks, we >perhaps ought to fix sendRedirect so that it constructs a full URL or at >least displays a warning if you don't redirect to a full URL and you have >cookies being set. I'd be in favor of automatic, full URL construction, instead of the warning. Thanks, David. |