从servlet调用jsp时获取异常?
我有一个jsp。它在jsp负载上调用一个servlet并将结果显示在如下所示的相同jsp中。从servlet调用jsp时获取异常?
Some.jsp
<html>
<jsp:include page="/HelloWorld"/>
<%Iterator itr;%>
<% List data= (List)request.getAttribute("results");
for (itr=data.iterator(); itr.hasNext();)
{
%>
<TABLE align="center" cellpadding="15" border="1" style="background-color: #ffffcc;">
<TR>
<TD align="center"><%=itr.next()%></TD>
</TR>
</TABLE>
<%}%>
</body>
</html>
在servlet的我正在存储请求的结果,并使用的RequestDispatcher调用JSP如下。
public class SomeServlet extends HttpServlet {
public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws ServletException,IOException{
List<String> list = new ArrayList<String>();
//some logic to populate list
request.setAttribute("results", list);
request.getRequestDispatcher("/WEB-INF/Some.jsp").forward(request, response);
}
}
但我正在逐渐例外之下,而在JSP中显示结果:
java.io.IOException: Stream closed
at org.apache.jasper.runtime.JspWriterImpl.ensureOpen(JspWriterImpl.java:202)
at org.apache.jasper.runtime.JspWriterImpl.clearBuffer(JspWriterImpl.java:157)
请帮助我..
的JSP包括servlet,它转发给JSP,其中包括servlet,它转发给包含servlet的JSP,该servlet转发到包含servlet的JSP,该servlet转发到包含servlet的JSP,该JSP转发到包含servlet的JSP,该JSP转发到JSP,其中包括servlet,它用于病房到JSP ...
你有一个严重的设计问题在这里。采用MVC原则:所有请求都转到加载模型的servlet(Controller),并分派到适当的JSP(View)。一个视图不应该包含一个servlet,当然不是像这样的递归方式。
Hi Nizet,感谢您的回复。在getRequestDispatcher方法中,我可以使用另一个jsp来显示结果吗?谢谢! – user1016403
测试它。但是你真的想继续使用糟糕的设计吗?为什么不这样做干净的方式? –
感谢您的回复Nizet。而不是调用jsp页面加载servlet,我可以直接调用servlet并在jsp中显示结果吗?请建议我.. – user1016403
您不能在jsp:iclude标记中提供servlet url模式。原因是,它不知道是否要调用get方法或ost方法。你应该只给jsp路径。
您应该在将请求转发到JSP之后编写返回信息 –