I've resolved this type of problem by using a redirect instead.  This way, if they 
refresh, they only refresh the current page (which should just render a view, not 
process any business logic).

It also depends on where you have your business logic.

Regards,
Mark

*********** REPLY SEPARATOR  ***********

On 03/07/2003 at 12:25 AM Jeff Smith wrote:

>I worry about users. I've been one. I know how unpredictable we can be. :-)
>
>Take this case. I have a struts app and I want users to be able to log in. Pretty 
>simple. In fact, it is probably the most common scenario implemented in samples and 
>tutorials.
>
>Being a good host, I like to keep track of my guests. So when my users log in, I want 
>to time-stamp them so I know how long they've been connected.
>
>My action-forward for login success takes me to a pretty page that gives my users 
>stats about their last logon (in case somebody is using their account without their 
>knowledge) and a bunch of other stuff.
>
>So they tend to sit on that page and read it for a while.
>
>Then (and here's the unpredictable user part) for some reason, they hit the refresh 
>button on their browser. Well, since they got here as an action forward from the 
>authentication sequence, the refresh resubmits all their logon credentials, the 
>system re-authenticates them and then takes them, finally, back to the page they've 
>been reading and refreshes it. And in that process, my login timestamp is stomped 
>with a newer one.
>
>Now, I have already figured out a few ways to short circuit the re-authentication 
>(like, don't authenticate a user who is already logged in.) But the question is, 
>where else could my users be inadvertently causing spurious recursions into 
>potentially costly sequences by ignorantly hitting the refresh button? I can imagine 
>that some of my action sequences might invoke some fairly expensive computations 
>before displaying the results. But do I *REALLY* want to recompute the whole thing 
>when my users hit refresh? In the case of rendering dynamic content, maybe I do. But 
>for transactional stuff like logging in, or submitting a credit card for 
>authentication, I probably don't want to re-compute on refresh.
>
>Am I the only one who worries about stuff like this?
>
>I want my site to be bullet proof, idiot proof and all-kinds-of-other-things-proof. 
>I'd be curious to know how other people handle this situation.
>
>
>Jefficus




---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to