Defina a mensagem de notificação como atributo de solicitação, que deve aparecer após o sendRedirect

Criei dois conjuntos de servlets: exibições e controladores / manipuladores

Visualizações: Execute leituras simples e encaminhe dados paraJSPsControladores: Execute atualizações ou inserções de banco de dados e envie uma notificação para umJSP ou um servlet do tipo View

A notificação aqui é uma mensagem de status para o usuário. Exemplo: "Você atualizou blah com sucesso ..."

Se eu usarrequestDispatcher.forward() nos controladores e o usuário atualiza (depois que o Controlador passou o controle para visualizar / jsp) a página confirmando reenviar, há uma chance de ações duplicadas serem executadas

Se eu usarresponse.sendRedirect() Não consigo enviar notificações sem defini-las na sessão

Existe uma boa prática de design que ajude aqui? Qualquer bom link para o MVC para java sem estruturas que lida com esse cenário específico seria apreciado.

Não estou usando Spring ou Struts - apenas HTTPServlets antigos

Exemplo - Controlador:

public XServlet extends HttpServlet{
     public void processRequest(request, response) throws ...{ 
         //Do some stuff here
         if(success){
             setUserMessage("Hooray ur profile pic is uploaded!");
         } else {
             setUserMessage("Oh no! We couldn't upload that file its too biG!");
         }

         //Send the notification
         request.setAttribute("status", getUserMessage());
         request.getRequestDispatcher("editProfile.jsp").forward(request, response);
    }
}

Isso significa que, se o usuário tentar atualizar a página, o controle passará novamente para esse controlador e algumas ações poderão ser repetidas desnecessariamente.

No entanto, se eu usarsendRedirect() não posso mostrar a mensagem de status sem recorrer a um atributo de sessão ou anexá-lo ao URL.

questionAnswers(2)

yourAnswerToTheQuestion