Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/312.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
从Javaservlet方法doGet将数据返回到ajax_Java_Jquery_Ajax_Jsp_Servlets - Fatal编程技术网

从Javaservlet方法doGet将数据返回到ajax

从Javaservlet方法doGet将数据返回到ajax,java,jquery,ajax,jsp,servlets,Java,Jquery,Ajax,Jsp,Servlets,我的函数ajax如下所示: $.ajax({ url: "associer_type_flux", // It's my servlet dataType : "xml", type : "GET", data : { }, success: function(response){ alert("fine"); }, error: function(data

我的函数ajax如下所示:

$.ajax({
        url: "associer_type_flux", // It's  my servlet
        dataType : "xml",
        type : "GET",
        data : { },
        success: function(response){
            alert("fine");
        },
        error:  function(data, status, er){
            alert(data+"_"+status+"_"+er);
        }
    });
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    String forward = ""; 
    try {           
        String fluxXML = "";
        ServicesCodeTypeFluxGlobaux servicesCodeTypeFluxGlobaux = new ServicesCodeTypeFluxGlobauxImpl();

            fluxXML = "<lescodetypeflux>";

            fluxXML += "</lescodetypeflux>";
            PrintWriter printWriter  = response.getWriter();
            printWriter.println(fluxXML);

        }
        forward = "/associerCode/accueil_association.jsp";
        getServletContext().getRequestDispatcher(forward).forward(request, response);           
    }
    catch (Exception e) {
        forward = "/erreur.jsp";
        request.setAttribute("msg", e.getMessage());
    }       
}
我的方法doGet在我的servlet中是这样的:

$.ajax({
        url: "associer_type_flux", // It's  my servlet
        dataType : "xml",
        type : "GET",
        data : { },
        success: function(response){
            alert("fine");
        },
        error:  function(data, status, er){
            alert(data+"_"+status+"_"+er);
        }
    });
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    String forward = ""; 
    try {           
        String fluxXML = "";
        ServicesCodeTypeFluxGlobaux servicesCodeTypeFluxGlobaux = new ServicesCodeTypeFluxGlobauxImpl();

            fluxXML = "<lescodetypeflux>";

            fluxXML += "</lescodetypeflux>";
            PrintWriter printWriter  = response.getWriter();
            printWriter.println(fluxXML);

        }
        forward = "/associerCode/accueil_association.jsp";
        getServletContext().getRequestDispatcher(forward).forward(request, response);           
    }
    catch (Exception e) {
        forward = "/erreur.jsp";
        request.setAttribute("msg", e.getMessage());
    }       
}
受保护的void doGet(HttpServletRequest请求,HttpServletResponse响应)抛出ServletException,IOException{
向前字符串=”;
试试{
字符串fluxXML=“”;
ServicesCodeTypeFluxGlobaux服务CodeTypeFluxGlobaux=新服务CodeTypeFluxGlobauxImpl();
fluxXML=“”;
fluxXML+=“”;
PrintWriter PrintWriter=response.getWriter();
printWriter.println(fluxXML);
}
forward=“/associerCode/accueil_association.jsp”;
getServletContext().getRequestDispatcher(forward).forward(请求,响应);
}
捕获(例外e){
forward=“/erreur.jsp”;
setAttribute(“msg”,即getMessage());
}       
}
所以我的问题是,我无法在jsp中获取数据。。但我不知道如何从doGet方法中获取数据或返回数据。。现在我有一个警报错误


Thx

一些建议可以让它发挥作用-

  • 不要忘记在“text/xml”或“application/xml”中设置mime类型

  • 不能同时使用out.println()和requestdispatcher,因为它将引发异常。println()将打印响应正文中的值,但请求调度程序将把您重定向到其他页面,如果使用ajax,您将得到重定向页面的全部内容

  • 所以在您的情况下,应该只使用out.println()

    所以你的最终代码应该是这样的-

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        response.setContentType("application/xml");
        String forward = ""; 
        try {           
            String fluxXML = "";
            ServicesCodeTypeFluxGlobaux servicesCodeTypeFluxGlobaux = new ServicesCodeTypeFluxGlobauxImpl();
    
                fluxXML = "<lescodetypeflux>";
    
                fluxXML += "</lescodetypeflux>";
                PrintWriter printWriter  = response.getWriter();
                printWriter.println(fluxXML);
                printWriter.close();
            }        
        }
        catch (Exception e) {
            //print xml with error value
        }       
    }
    
    受保护的void doGet(HttpServletRequest请求,HttpServletResponse响应)抛出ServletException,IOException{
    setContentType(“应用程序/xml”);
    向前字符串=”;
    试试{
    字符串fluxXML=“”;
    ServicesCodeTypeFluxGlobaux服务CodeTypeFluxGlobaux=新服务CodeTypeFluxGlobauxImpl();
    fluxXML=“”;
    fluxXML+=“”;
    PrintWriter PrintWriter=response.getWriter();
    printWriter.println(fluxXML);
    printWriter.close();
    }        
    }
    捕获(例外e){
    //打印带有错误值的xml
    }       
    }
    
    打开浏览器网络控制台并检查发生了什么。我有以下错误:状态:parserror…:'(…无需确认响应。内容是什么?Java或Ajax中的响应..如果在Ajax中,我无法获取它,因为..告诉我状态:ParserError网络控制台将包含每个请求和响应的信息,包括标题和正文。我怀疑解析错误是什么。只需选择响应并查看其中的内容。或者,我们e一个不同的客户端(可能是Java)好的,我明白了。如果我这样做了,我的页面将返回XML。我如何才能看到我的页面JSP和表等等。我得到了这个:-1101你不能在一次单击中获得数据,也不能发送请求。你可以尝试其他替代方法,如-1。首先重定向到页面,在该页面中,你将数据显示到表中,然后通过ajax调用获取数据。2.通过ajax调用获取数据,然后使用javascript在要显示的div中创建表。