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

时间:2013-03-05 13:52:56

标签: 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调用。

1 个答案:

答案 0 :(得分:-1)

你真的需要使用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.Just中调用这两个函数

<%
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" />

这相当于&lt;%test t = new test();%&gt; 现在迭代并在jstl中显示列表值

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