it is a very general problem. and it can be dealt by redirecting the request instead of forwarding it.
See, the flow of your request would be
1. request come to servlet in any specific mode.
2. you do the specific business logic.
3. you forward request to any jsp.
Now you have to make change in flow.
in third step you don't forward request, instead you redirect request. (use sendRedirect method (or an equivalent in struts framework).
Now what will happen in this case is. your work is getting done in two request. first request do the business logic. and second request displays confirmation message.
When you refresh page, then only last request will be repeated, i.e. only confirmation message, not the business logic.
But do it only for those request there is any harm due to refresh (as you told here).
Hope this helps