我在JavaScript文件中有一个JS对象。我必须将此对象传递给JSP页面。该页面选择此对象并对其进行处理。我该怎么办?
答案 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对象。然后轻松管理它。