2009-04-30 71 views
0

我在JavaScript文件中有一个JS对象。我必须将这个对象传递给一个JSP页面。该页面选取该对象并对其进行处理。我该怎么做?发送JS对象到JSP页面

回答

0

与从Web浏览器获取任何其他数据到HTTP服务器的方式相同。

编码它在HTTP请求的提交表单/设置窗口位置/使用的XMLHttpRequest /等

0

有你需要首先解决的,你在一个Ajax风格的这样几个问题请求?这是表单提交吗?在客户端/服务器之间的页面会话中是否会进行正在进行的交互,来回传递JSON对象?

让我们解决表单提交的简单情况,一旦你得到了应该能够得到剩余的情况,因为它们只是这个基本情况的“扩展”。假设你有某种形式,将在一些领域提交的数据:在时间,然后

<form name='my_form' id='my_ford_id'> 
    <input type='hidden' name='my_input_field' /> 
</form> 

在某些时候你有一段执行代码,你有你的JSON对象

function myFunction() { 
    var json_data = getJsonData(); 
    document.forms['my_form']['my_input_field'].value = json_data; 
    document.forms['my_form'].submit(); 
} 

你会那么在JSP端将这些数据作为一个JSON字符串接收到一个表单字段中,此时需要对其进行处理,假设您有某种JS​​ON库可供您使用,代码可能如下所示:

<% 
    String myInputField = request.getParameter("my_input_field"); 
    if(myInputField != null) { 
    try { 
     JSONObject myObject = new JSONObject(myInputField); 
    } 
    catch(JSONException e) { 

    } 
    } 
%> 

如果您需要“AJAX”交互风格,您将在页面中发出大量此类请求,但基本上它会回落到提交数据的原始问题。由于您在本例和JSP中使用表单,因此您无需担心编码问题,因此浏览器/服务器将为您处理相关事宜。

+0

我们在哪里可以得到JSONObject ..它是第三方API – 2009-08-19 11:11:42

-2

"JSON"网站可帮助您管理JSp/java中的Json对象。 您必须将从javascript获得的字符串转换为json对象,然后轻松管理它。

0

当发送JSON对象servlet的接收它在接收由提交表单,例如,如果用值=“的getCountries”发送一个变量“动作”发送的数据的同样的方式

var option={ 
     "action":"getCountries" 
    }; 
$.getJSON('YourServlet',option, function() { 
    //hadle the result returned by servlet 
}); 

该defualt方法是GET,在servlet你,你处理正常请求

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 

    String action = request.getParameter("action"); 
    if (action != null) { 
     if (action.equals("getCountries")) { 

        List coutries= getAllICountries(request); //get the countries 
        String json = new Gson().toJson(coutries); 
        response.setContentType("application/json"); 
        response.setCharacterEncoding("utf-8"); 

        response.getWriter().write(json); 
        return; 
      } 
    } 

注意我们是如何从servlet的结果返回到JavaScript的处理请求,我们返回一个JSON对象。