Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 请求。getRequestDispatcher()失败_Java_Servlets - Fatal编程技术网

Java 请求。getRequestDispatcher()失败

Java 请求。getRequestDispatcher()失败,java,servlets,Java,Servlets,我有一个功能不是为了达到他的目的。我想在catch子句内部重定向,但他没有这样做。我不得不说我的类不能扩展到HttpServlet,因为它扩展到了另一个类。他没有重定向到jsp,为什么??他只是忽视了这一点。谢谢你读我的书 代码如下: private Integer gestionEnvios(HttpServletRequest request,MantenimientoEnvio buscador) throws ProcedureException { int tipoD =

我有一个功能不是为了达到他的目的。我想在catch子句内部重定向,但他没有这样做。我不得不说我的类不能扩展到HttpServlet,因为它扩展到了另一个类。他没有重定向到jsp,为什么??他只是忽视了这一点。谢谢你读我的书

代码如下:

 private Integer gestionEnvios(HttpServletRequest request,MantenimientoEnvio buscador) throws ProcedureException {

    int tipoD = 0;
    Integer resul = null;       
    String formulario=buscador.getBuscadorFormularios();

    if(formulario.equals("ACTUALIZAR ESTADO"))
    {   
        String referenciaE=buscador.getBuscadorReferenciaE();
        String comprobacionTextarea=contarCaracteres(referenciaE);
        String estado=buscador.getBuscadorEstado(); 
        int codigo=devolvercodigo(estado);      
        String fechaDesde=buscador.getBuscadorFechaDesde();
        String fechacorrecion=new String();
        try {

         fechacorrecion=comprobaciónFecha(fechaDesde); 

        } catch (ParseException e) {
            // TODO Auto-generated catch block
            System.out.println("Has introducido mal la fecha");     
            e.printStackTrace();
//              request.getRequestDispatcher("/clock.jsp");
        }

/***************************/ This is the full code of the function, he doesnt end when reaches request.getRequestDispatcher("/clock.jsp").forward(request, response); hes continues...

/*****/ private Integer gestionEnvios(HttpServletRequest request,MantenimientoEnvio buscador, HttpServletResponse response) throws ProcedureException, ServletException, IOException {

    int tipoD = 0;
    Integer resul = null;       
    String formulario=buscador.getBuscadorFormularios();

    if(formulario.equals("ACTUALIZAR ESTADO"))
    {   
        String referenciaE=buscador.getBuscadorReferenciaE();
        String comprobacionTextarea=contarCaracteres(referenciaE);
        String estado=buscador.getBuscadorEstado(); 
        int codigo=devolvercodigo(estado);      
        String fechaDesde=buscador.getBuscadorFechaDesde();
        String fechacorrecion=new String();
        try {

         fechacorrecion=comprobaciónFecha(fechaDesde); 

        } catch (ParseException e) {
            // TODO Auto-generated catch block
            System.out.println("Has introducido mal la fecha");     
//              e.printStackTrace();
            request.getRequestDispatcher("/clock.jsp").forward(request, response);
        }


        if(referenciaE.contains(",")){
            String prepara=referenciaE.trim();
            String prepara0=prepara.replaceAll("\\s+", " ");
            String prepara1=prepara0.replaceAll(",( )*"," ");
            String prepara2=prepara1.replaceAll(" ", ",");
            if(fechaDesde.equals("")){  
                resul=mantEnvioService.gestionEnvio(2, codigo,null, prepara2);
            }else{
                resul=mantEnvioService.gestionEnvio(2, codigo, fechaDesde, prepara2);
            }

    }else
    {   
        if(fechaDesde.equals("")){  
            resul=mantEnvioService.gestionEnvio(2, codigo,null, referenciaE);
        }else{
            resul=mantEnvioService.gestionEnvio(2, codigo, fechaDesde, referenciaE);
        }
     }

    }
    else if(formulario.equals("DEVOLUCIÓN")){
        String referenciaD=buscador.getBuscadorReferenciaD();
        String cadena=new String();
        /**
         * Carlos Gil
         * Eliminamos el retorno de carro por un punto 
         * 
         */
        cadena=eliminarRetornoCarro(referenciaD);
        String semanl=buscador.getBuscadorEjecucionSemanal();
        String tipo=buscador.getBuscadorButtons();
        if(tipo.equals("O2O")&&semanl==null){
            tipoD=1;
        }else if(tipo.equals("ICP")){
            tipoD=2;
        }else if(tipo.equals("Otros")){
            tipoD=3;
        }else if(tipo.equals("O2O Ejecucion Semanal")){
            tipoD=4;    
        }
        if(referenciaD.contains(",")){
            String prepara=referenciaD.trim();
            String prepara0=prepara.replaceAll("\\s+", " ");
            String prepara1=prepara0.replaceAll(",( )*"," ");
            String prepara2=prepara1.replaceAll(" ", ",");
        resul=mantEnvioService.gestionEnvio(1, tipoD, null, prepara2);
        }else   
        resul=mantEnvioService.gestionEnvio(1, tipoD, null, referenciaD);
    }   

    return resul;
}

假设将
HTTPServletResponse
response参数添加到方法中,则调用:

request.getRequestDispatcher("/clock.jsp").forward(request, response);

您可以选择转发和重定向到其他页面

-request.getRequestDispatcher(“/clock.jsp”).forward(请求,响应)

-response.sendRedirect(“clock.jsp”)

话虽如此,如果您确实希望将页面保存在WEB-INF下,请参见以下问题:,该主题已被多个用户触及。被接受的答案是来自


更明确的推理:

显然请求被注释,但如果我取消注释它仍然失败,您需要在RequestDispatcher上调用forward(ServletRequest请求,ServletResponse响应)。唯一需要的是,如果到达request.getRequestDispatcher,他将转到jsp并停止servlet。也许您的评论可能是这样的结果,thxYes,forward将传输请求,而servlet不会做更多的事情。您遇到了什么问题?有错误吗?它不能解决我的问题。但谢谢你的建议。:)
 basic-maven-project/ 

 |-- pom.xml
 |-- src
 |   |-- main
 |   |   |-- java
 |   |   |-- resources
 |   |   `-- webapp

 |   |       `-- WEB-INF
     |   `-- test

|       |-- java

|       `-- resources
        `-- target
|-- classes
       `-- test-classes