[英]Passing json object via ajax from jsp to javascript
如何通过ajax将jsp中的json值作为对象传递给javascript?
我无法在jsp中使用全局js变量,因为这将导致json内容在页面源代码中可见
这是我要实现的方案:
从以上情况来看,我知道javascript必须启动对jsp的ajax调用。 与此有关的问题是,jsp的代码将被调用两次:
约束:没有jquery,没有其他库,没有servlet,没有其他jsps。 :(
编辑:
还有其他问题,我需要将多个 json对象传递给javascript。
我将无法使用response.getWriter().write();
我不认为串联所有json对象并发送是正确的解决方案。
在javascript http.responseText
对接收到的对象的解析将非常http.responseText
。
为什么这里需要ajax? 如果您知道需要将服务器中的某些内容填充到jsp页面上,则可以通过scriplets本身进行操作:
前
<%@ page import="com.mypackage.PersonDAO" %>
<html>
<body>
<table>
<th>Name</th><th>Email</th><th>Contact</th>
<%
List<Person> myList = PersonDAO.getAllPersons();
for(Person person:myList)
{
%>
<tr>
<td><%=person.getName()%></td>
<td><%=person.getEmail()%></td>
<td><%=person.getContact()%></td>
</tr>
<%}%>
</table>
</body>
</html>
这是一个非常简单的例子。 您可以使用JSTL .. :)做更复杂的事情
所以没有jquery,没有Servlet,没有ajax,也没有多余的jsp :)
更新
由于要在页面加载之前在JavaScript中添加数据,因此可以使用jQuery的holdReady()方法。
$.holdReady( true );
$.get( url, function() {
// Perform something
$.holdReady( false );
});
请参阅,但是所有现代浏览器都具有开发人员工具,例如用于mozilla的firebug,因此所进行的任何ajax调用都将被它们捕获。 您可以保护它们的唯一方法是对它们进行加密..这将使您的事情变得复杂...如果您可以解释您要实现的方案,也许我可以提出来。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.