Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Como colocar um atributo em uma HttpServletResponse

Boa tarde.. Pessoal estou com o seguinte problema: Tenho um cadastro de alunos que quando eu realizo um novo cadastro a intenção é mostrar um alerta na página de todos os alunos... Porém como o Servlet para cadastrar alunos é via post eu redireciono (response.sendRedirect) para outra servlet que lista novamente os alunos... Como contorno de solução para carregar a mensagem "Aluno tal foi cadastrado com sucesso", eu "pendurei" na sessão um atributo mensagem e ai é tratado no JSP. Porém por ser uma session mesmo que eu feche o alerta, se eu recarregar ou até mesmo sair e voltar na página o alerta está lá novamente... Alguém tem uma sugestão de como posso contornar isso?

Segue código fonte da Servlet:

@WebServlet("/newStudent")
public class NewStudentServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;

    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        Integer ra = Integer.valueOf(request.getParameter("ra"));;
        String name = request.getParameter("name");
        String cpf = request.getParameter("cpf");
        String rg = request.getParameter("rg");
        String city = request.getParameter("city");
        String uf = request.getParameter("uf");
        String address = request.getParameter("address");
        String email = request.getParameter("email");
        int ddd = Integer.parseInt(request.getParameter("ddd"));
        int mobile = Integer.parseInt(request.getParameter("mobile"));
        String course = request.getParameter("course");
        int courseYear = Integer.parseInt(request.getParameter("courseYear"));

        Student student = new Student(ra, name, cpf, rg, city, uf, address, email, ddd, mobile, course, courseYear);

        try {
            StudentDAO.insert(student);
        } catch (SQLException e) {
            throw new ServletException(e);
        }

        HttpSession session = request.getSession();
        session.setAttribute("message", "Aluno " + student.getName() + " cadastrado com sucesso!");
        response.sendRedirect("showStudents");
    }
}
1 resposta
solução!

Como solução de contorno removi da sessão o atributo após ele ser exibido:

<%
    // Removing after display
    session.removeAttribute("message");
%>