java - 仅从 jsp 页面 onload 事件调用 servlet 页面一次

标签 java javascript jsp servlets

我有一个jsp页面,我想在其中显示2个使用servlet返回的值填充的列表。这应该在jsp页面加载后立即发生,所以我通过jsp的onload函数调用servlet页 。我能够获取页面上的列表,但它进入了无限循环,一次又一次调用 servlet 并显示相同的值。

在我的 test2.jsp 中,我使用它在加载 jsp 页面时调用 servlet

function load()
{

document.location.href="/OnaUIDemo/ona?";

}

在我的 ona servlet 中我正在使用这个,

RequestDispatcher rd = getServletContext().getRequestDispatcher("/test2.jsp");

我发现的是,因为它通过页面加载调用 servlet,并且 servlet 也重定向到同一个 jsp。 jsp 再次加载,导致一次又一次无限加载。 请帮助我控制 servlet 调用仅一次。

最佳答案

真的需要使用servlet吗?可以使用POJO来完成。

创建一个类,它将返回这两个列表。

public class test{

public List getList1()
{
//do your stuff here to add values in list
return list;//return your list 
}
public List getList2()
{
//do stuff here
return list;//return your list
}
}

在你的jsp中,只需调用这两个函数

<%
test t = new test();
List l1=t.getList1();
List l2=t.getList2();
//now you have the two list,just show them
%>

正如指出的那样,不鼓励使用 scriptlet。您可以使用 jSTL

<jsp:useBean id="obj_name" type="package_name.class_name" />

这相当于<%test t=new test();%> 现在在 jSTL 中迭代并显示列表值

<c:forEach var="content" items="${obj_name.list1}">
c:out value="${content}" />
</c:forEach>

关于java - 仅从 jsp 页面 onload 事件调用 servlet 页面一次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15225525/

相关文章:

java - 实例化类不起作用,构造函数参数未传递

java - 初学者麻烦do...while循环

JavaScript 错误 : "The resource was realized on the wrong render target"

java - 在struts2中使用OGNL未将请求对象传递给静态方法

jsp - JSP 上的 500 错误

java - 从java获取gradle构建路径文件夹

java - 对节点列表的理解

javascript - 捕获一个 div 并保存为 jpeg

javascript - jquery - 获取其他页面的内容

java ee spring错误