problema Try-Catch me regresa al inicio JSP

Hola

Les cuento, tengo una aplicacion donde obtengo un excel de JSP, el problema viene cuando el explorador me da la opción de Abrir, Cerrar, Cancelar, al momento en que le doy abrir, lo abre bien pero se regresa al principio de la función para volver a descargar uno nuevo, pero al momento de tratar de abrirlo lanzara errores pues no tiene los parámetros

si doy guardar solo lo guarda y listo solo lo realiza una vez. Acá dejo el código para ver si me pueden echar una mano.

 public ActionForward execute(ActionMapping mapping, ActionForm form,
            HttpServletRequest request, HttpServletResponse response)
            throws Exception {
       
        log.info("[CU-01-RP] - ini"); //Aqui comienza y aqui regresa al seleccionar abrir(1)
       
        HttpSession session = request.getSession();

         

                String forward = new String("");

                WebApplicationContext ctx = WebApplicationContextUtils
                                .getRequiredWebApplicationContext(this.getServlet()
                                                .getServletContext());
               
                UsuarioVo usuVo = (UsuarioVo) session.getAttribute("UsuarioVo");
                       
               
               
                BursatilServices Servi = (BursatilServices) ctx
                                .getBean("Services");
               
       
               
               
               
                String renuevaSesion = new String("");
        String msgSession = new String("");
               
                try{
                   
                    /* Se valida la renovacion de la sesion */
            renuevaSesion = Servi.renuevaSesion(usuVo.getSesion());
            if(renuevaSesion.equals("D")){
                log.info(" fin de session - ");
               
            }
                   
       
                   
                    log.info("- se_crea_xls(...);");
                   

           
                   
                    response.setContentType("application/vnd.ms-excel");
                PrintWriter out = response.getWriter();
                out.println("Name\tJob\tSalary");
                out.println("Raj\tAccountant\t20000");
                out.println("Vinay\tAccountant\t20000");
                out.println("Rajesh\tAccountant\t20000");
                out.println("\tTotal:\t=sum(c2:c3)");
                out.close();

            log.info(" - se_crea_xls(OK);"); //pero regresara de nuevo al inicio (1)        
                }
       
                catch (NullPointerException  exc) {

                        log.info("Aqui viene un error a causa de que lanza de nuevo la funcion.");
                         return (null);
        }
        // Finish with
               
                log.info("[CU-01-RP] - fin");
               
                 return (null);

     
    }

Como puedo hacer para que al llegar a return(null) no regrese al inicio ??

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.

Content-Disposition

Se me hace raro que se reinicie la petición. A mi me pasa algo similar cuando hago debug pero se debe a que despues de que no hay respuesta del navegador se lanza automáticamente la petición (a menos que tu proceso dure muchos segundos veo que puede presentarse el escenario que te menciono). De cualquier fomra puedes obligar a que se guarde el archivo con la siguiente linea

response.setHeader("Content-Disposition","attachment;filename=javadabadoo.xls");

Sigue en lo mismo

Gracias java.daba.doo

Te cuento que he agregado la linea que me comentas, en el código que estoy revisando ya que en el posteado anteriormente es solo para ejemplificar.

Bueno pues agregue la linea y sigue igual reinicia la petición, solo al darle abrir en el cuadro de dialogo del navegador.

            response.setContentType("appilication/vnd.ms-excel");          
            response.setHeader("Content-Disposition","attachment;filename=Reporte  del "+nameFile+".xls");
            response.setContentLength(strExcel.getBytes().length);
            ServletOutputStream sos = response.getOutputStream();
            sos.write(strExcel.getBytes());
            sos.flush();
            response.flushBuffer();
            sos.close();