You could use the session id location as an indicator, assuming there's
a session already.
if (hreq.isRequestedSessionIdFromCookie()) {
// we're good, do whatever
}
else {
// no cookies, begone!
}
if your initial point of contact does a single instant redirect to the
detector, then Tomcat should sort out the session location by the time
you need to detect it.
servlet1(redirect) > servet2(detect)
this is the same as was suggested before, but at least you don't have to
write your own cookie addition/detection routine.
Garey Mills wrote:
> David -
>
> Thanks for the clear, concise answer.
>
> Garey Mills
> Library Systems Office
> UC Berkeley
>
> The brain is not where you think
>
> On Wed, 21 Jun 2006, David Smith wrote:
>
>> On first response, Tomcat both set's a cookie JSESSIONID and appends the
>> same to the page links (when properly coded). If the cookie comes back
>> on the next request, url rewriting is dropped in favor of the cookie. No
>> magic, tomcat just covers all it's bases up front.
>>
>> See HttpServletResponse.encodeURL(String) in the servlet spec for more info.
>>
>> -- David
>>
>> Garey Mills wrote:
>>> David -
>>>
>>> Tomcat uses cookies to establish a session with the browser. If it
>>> can't use cookies, it uses URL rewriting. So whenever someone uses my app,
>>> Tomcat tries to set a cookie.
>>>
>>> If it was the case that Tomcat didn't know whether the browser
>>> accepted cookies until after it tried to set one at the first access,
>>> users of browsers that did not accept cookies would not have a session
>>> that recorded their first access. I don't think that would be considered
>>> acceptable, so I assume that Tomcat knows, before my app is reached,
>>> whether the browser accepts cookies. But is my assumption correct, I don't
>>> know. That is what I am asking.
>>>
>>>
>>>
>>>
>>> Garey Mills
>>> Library Systems Office
>>> UC Berkeley
>>>
>>> The brain is not where you think
>>>
>>> On Wed, 21 Jun 2006, David Kerber wrote:
>>>
>>>
>>>> Why would it try until your app tells it to? AFAIK (admittedly, not
>>>> very far; I don't use cookies) think it needs to be handled by your app.
>>>>
>>>>
>>>> Garey Mills wrote:
>>>>
>>>>
>>>>> David -
>>>>>
>>>>> Well, okay then, but how can my app find out what Tomcat knows
>>>>> about whether the browser accepts cookies or not? And when does Tomcat
>>>>> try? Before control is passed to my app?
>>>>>
>>>>> Garey Mills
>>>>> Library Systems Office
>>>>> UC Berkeley
>>>>>
>>>>> The brain is not where you think
>>>>>
>>>>> On Wed, 21 Jun 2006, David Kerber wrote:
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>> I think what he's getting at is that Tomcat (or any other web server)
>>>>>> cannot tell how a browser is set wrt cookies without trying to set one
>>>>>> and then seeing if it's there.
>>>>>>
>>>>>> Garey Mills wrote:
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>> Martin -
>>>>>>>
>>>>>>> I guess I'm being obtuse, but WHAT won't work? What I want to
>>>>>>> know
>>>>>>> is how Tomcat detects whether the browser accepts cookies, that is,
>>>>>>> whether it is set to accept cookies or not?
>>>>>>>
>>>>>>> Garey Mills
>>>>>>> Library Systems Office
>>>>>>> UC Berkeley
>>>>>>>
>>>>>>> The brain is not where you think
>>>>>>>
>>>>>>> On Wed, 21 Jun 2006, Martin Gainty wrote:
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>> Garey-
>>>>>>>>
>>>>>>>> Unfortunately that wont work if your Browser disallows cookies
>>>>>>>> If its IE
>>>>>>>> Check out the IE options-
>>>>>>>>
>>>>>>>> Tools
>>>>>>>> Internet Options
>>>>>>>> Privacy
>>>>>>>> Advanced
>>>>>>>> look at "switched on Always allow Session Cookies"
>>>>>>>>
>>>>>>>> HTH,
>>>>>>>>
>>>>>>>> Martin --
>>>>>>>> *********************************************************************
>>>>>>>> This email message and any files transmitted with it contain
>>>>>>>> confidential
>>>>>>>> information intended only for the person(s) to whom this email message
>>>>>>>> is
>>>>>>>> addressed. If you have received this email message in error, please
>>>>>>>> notify
>>>>>>>> the sender immediately by telephone or email and destroy the original
>>>>>>>> message without making a copy. Thank you.
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> ----- Original Message -----
>>>>>>>> From: "Garey Mills" <[EMAIL PROTECTED]>
>>>>>>>> To: "Tomcat Users List" <[email protected]>
>>>>>>>> Sent: Wednesday, June 21, 2006 12:50 PM
>>>>>>>> Subject: Re: How does Tomcat detect whether a browser accepts cookies
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>> Leon -
>>>>>>>>>
>>>>>>>>> Thank you for your response, but I don't understand it. I have a
>>>>>>>>> key question:
>>>>>>>>>
>>>>>>>>> how does Tomcat detect that a browser does not accept cookies?
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> There are a number of different ways to detect it inside my
>>>>>>>>> application, but all of them seem to need a roundtrip to the browser.
>>>>>>>>> If,
>>>>>>>>> as I suspect, Tomcat can tell without the redirect, I would like to
>>>>>>>>> use
>>>>>>>>> Tomcat's knowledge. If Tomcat uses a roundtrip, I would still like to
>>>>>>>>> use
>>>>>>>>> Tomcat's knowledge, so that I don't have to duplicate the work inside
>>>>>>>>> my
>>>>>>>>> app.
>>>>>>>>>
>>>>>>>>> Garey Mills
>>>>>>>>> Library Systems Office
>>>>>>>>> UC Berkeley
>>>>>>>>>
>>>>>>>>> The brain is not where you think
>>>>>>>>>
>>>>>>>>> On Wed, 21 Jun 2006, Leon Rosenberg wrote:
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>> You could check for your cookie in first request and if not present
>>>>>>>>>> just set the cookie in the request and redirect to another page
>>>>>>>>>> which
>>>>>>>>>> reads the cookie (btw, it can also be done with javascript without
>>>>>>>>>> user-visible-reload). The difference to your approach that each user
>>>>>>>>>> will be redirected exactly once, since you are checking for your
>>>>>>>>>> cookie in first request and it should remain persistent for next
>>>>>>>>>> visits.
>>>>>>>>>>
>>>>>>>>>> regards
>>>>>>>>>> Leon
>>>>>>>>>>
>>>>>>>>>> On 6/21/06, Garey Mills <[EMAIL PROTECTED]> wrote:
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>> Hi -
>>>>>>>>>>>
>>>>>>>>>>> I have an application that does not work correctly when the
>>>>>>>>>>> browser does not accept cookies. I added some code that rewrites
>>>>>>>>>>> the query
>>>>>>>>>>> string the first time the app is entered to include a new parameter
>>>>>>>>>>> and
>>>>>>>>>>> then redirects to the app. I watch for that parameter and if I find
>>>>>>>>>>> it I
>>>>>>>>>>> check whether the session id is from a cookie. If it isn't I put up
>>>>>>>>>>> a
>>>>>>>>>>> "Sorry, you need cookies message" and exit.
>>>>>>>>>>>
>>>>>>>>>>> This solution is not optimal, since I am seeing a blank page
>>>>>>>>>>> the
>>>>>>>>>>> first time I try to get into the application.
>>>>>>>>>>>
>>>>>>>>>>> So my question is: Tomcat must ascertain whether the browser
>>>>>>>>>>> accepts cookies in order to decide whether to use cookies or URL
>>>>>>>>>>> rewriting. How does it do it? and can I check Tomcat to find out,
>>>>>>>>>>> too?
>>>>>>>>>>>
>>>>>>>>>>> Garey Mills
>>>>>>>>>>> Library Systems Office
>>>>>>>>>>> UC Berkeley
>>>>>>>>>>>
>>>>>>>>>>> The brain is not where you think
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>> ---------------------------------------------------------------------
>>>> To start a new topic, e-mail: [email protected]
>>>> To unsubscribe, e-mail: [EMAIL PROTECTED]
>>>> For additional commands, e-mail: [EMAIL PROTECTED]
>>>>
>>>>
>>>>
>>>
>>> ---------------------------------------------------------------------
>>> To start a new topic, e-mail: [email protected]
>>> To unsubscribe, e-mail: [EMAIL PROTECTED]
>>> For additional commands, e-mail: [EMAIL PROTECTED]
>>>
>>>
>>
>> ---------------------------------------------------------------------
>> To start a new topic, e-mail: [email protected]
>> To unsubscribe, e-mail: [EMAIL PROTECTED]
>> For additional commands, e-mail: [EMAIL PROTECTED]
>>
>>
>
>
> ---------------------------------------------------------------------
> To start a new topic, e-mail: [email protected]
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>
>
---------------------------------------------------------------------
To start a new topic, e-mail: [email protected]
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]