Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.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
Javascript 如何向服务器发送JSON数据并使用JSP获取JSON/XML作为响应_Javascript_Json_Jsp - Fatal编程技术网

Javascript 如何向服务器发送JSON数据并使用JSP获取JSON/XML作为响应

Javascript 如何向服务器发送JSON数据并使用JSP获取JSON/XML作为响应,javascript,json,jsp,Javascript,Json,Jsp,我是web应用程序的初学者。我在glassfish服务器上使用JavaEE创建了一个动态web项目。现在我想让客户端使用json向服务器发送数据,并使用json或xml从服务器接收数据。通过在线搜索,我现在清楚了如何在服务器端编程。现在我使用ajax发送json数据。然而,也许在服务器上编写代码很容易,我找不到任何与服务器相关的代码。我的服务器端应该使用JSP读取json数据,使用beanfinished生成一些数据并将数据发送回。这是代码,我不知道问题出在哪里。有人能给我提些建议吗?你的帮助对

我是web应用程序的初学者。我在glassfish服务器上使用JavaEE创建了一个动态web项目。现在我想让客户端使用json向服务器发送数据,并使用json或xml从服务器接收数据。通过在线搜索,我现在清楚了如何在服务器端编程。现在我使用ajax发送json数据。然而,也许在服务器上编写代码很容易,我找不到任何与服务器相关的代码。我的服务器端应该使用JSP读取json数据,使用beanfinished生成一些数据并将数据发送回。这是代码,我不知道问题出在哪里。有人能给我提些建议吗?你的帮助对我意义重大

这是客户端的ajax代码。我从表格中输入了两个数字

$(function() {
    $("#myform").submit(function() {
        var lat = $("#num1").val();
        var lon = $("#num2").val();
        alert("form");

        if (num1 == '' || num2 == '') {
            $('.success').fadeOut(200).hide();
            $('.error').fadeOut(200).show();
        } else {
            $.ajax({
                type : "POST",
                url : "marker.jsp",
                contenttype : 'application/json; charset=utf-8',
                data : {
                    "num1" : "wtf",
                    "num2" : $("#num2").val(),
                },

                success : function(msg) {
                    $('.success').fadeIn(200).show();
                    $('.error').fadeOut(200).hide();
                    alert(msg);

                }
            });
        }

        return false;
    });
});
但是在切换到jsp页面后,我只发现显示了两个空值,这是服务器上的代码,我计划在开始时发送xml,我不确定request.getParameter是否可以工作,以及如何发送回这些xml数据,或者使用json格式发送回数据。救命啊

<?xml version="1.0" encoding="UTF-8"?>
<%@ page contentType="text/xml" %>
<%@ page             import="javax.naming.InitialContext,net.roseindia.ejb3.stateless.*,javax.ejb.EJB,java.util.*"%>

如果您没有使用任何MVC框架,我建议您采用一个。从JSP呈现XML/JSON似乎不是一个好的/简单的实践。不难看出您的代码变得太麻烦了。。。并不是说它可能不是有效的代码

我建议您采用MVC框架——我使用的是一个非常好且简单的框架,它允许您开发RESTful web应用程序,而无需意识到它。一定要检查这个!!!此框架通过封装使完成任务变得非常简单。看看用JSON对象响应请求需要什么:

    import static br.com.caelum.vraptor.view.Results.*;

    @Resource
    public class ClientsController {

    private final Result result;
    private final ClientDao dao;

    //result and dao parameters gets inject by VRaptor that
    //by its turn lets you chose which Dependency Injection framework
    //you wouldd like to be using with - pretty much as a plugin
    public ClientsController(Result result, ClientDao dao) {
        this.result = result;
        this.dao = dao;
    }

    @Get("/client/json")
    public void loadJson(MyParam param) {
        result.use(json()).from(dao.getClient(param.id)).serialize();
    }

    @Get("/client/xml")
    public void loadXml(MyParam param) { 
        result.use(xml()).from(dao.getClient(param.id)).serialize();
    }
}
请注意,Vraptor从JSON反序列化MyParam对象,并将其注入控制器操作请求


这个例子取自

多谢各位。但是很抱歉,我忘了提到我使用j2ee和glassfish服务器。这不是问题,您也可以在此配置上运行mvc框架!:
    import static br.com.caelum.vraptor.view.Results.*;

    @Resource
    public class ClientsController {

    private final Result result;
    private final ClientDao dao;

    //result and dao parameters gets inject by VRaptor that
    //by its turn lets you chose which Dependency Injection framework
    //you wouldd like to be using with - pretty much as a plugin
    public ClientsController(Result result, ClientDao dao) {
        this.result = result;
        this.dao = dao;
    }

    @Get("/client/json")
    public void loadJson(MyParam param) {
        result.use(json()).from(dao.getClient(param.id)).serialize();
    }

    @Get("/client/xml")
    public void loadXml(MyParam param) { 
        result.use(xml()).from(dao.getClient(param.id)).serialize();
    }
}