将JS对象发送到JSP页面

时间:2009-04-30 13:15:28

标签: javascript string json jsp object

我在JavaScript文件中有一个JS对象。我必须将此对象传递给JSP页面。该页面选择此对象并对其进行处理。我该怎么办?

4 个答案:

答案 0 :(得分:0)

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

通过提交表单/设置窗口位置/使用XMLHttpRequest /等在HTTP请求中对其进行编码。

答案 1 :(得分:0)

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

让Lets解决表单提交的简单情况,一旦你得到它,你应该能够得到剩余的案例,因为它们只是这个基本案例的“扩展”。假设您有一些表单可以在某个字段中提交数据:

<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字符串,此时您需要处理它,假设您有某种可用的JSON库,代码可能看起来像这样的东西:

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

    }
  }
%>

如果您需要“AJAX”交互方式,您将在页面中发出大量此类请求,但从根本上说,它会回溯到提交数据的原始问题。由于您在此示例和JSP中使用表单,因此您不必担心编码,浏览器/服务器将为您处理事情。

答案 2 :(得分:0)

当您发送json对象时,servlet以接收通过提交表单发送的数据的相同方式接收它,例如,如果您发送带有value =“getCountries”的变量“action”

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对象。

答案 3 :(得分:-2)

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