大家好,我用jpql对数据库中的对象进行查询,再用 request.getRequestDispatcher将查询结果传递到相应的jsp页面,在jsp页面以foreach函数显示查询结果,却抛出以下异常:
javax.servlet.ServletException: PWC1232: Exceeded maximum depth for nested request dispatches: 20jsp代码如下:
==================================================================
<%@page contentType="text/html"%>
<%@page pageEncoding="UTF-8"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title><jsp:include page="title.jsp"/></title>
</head>
<body>
<jsp:include page="Header.jsp"/>
<h1>Hello World!</h1>
<table id="referenceListTable" border="3">
<tr >
<th bgcolor=>Reference Name </th>
<th bgcolor=>Date </th>
<th bgcolor=>Client Name </th>
<th bgcolor=>Rate </th>
<th bgcolor=>Volume </th>
</tr>
<c:forEach var="Ref" begin="0" items="${requestScope.ReferenceList}">
<tr>
<td>${Ref.refName} </td>
<td>${Ref.refDate} </td>
<td>${Ref.clientName} </td>
<td>${Ref.suppMin} </td>
<td>${Ref.volume} </td>
</tr>
</c:forEach>
</table>
</body>
</html>
==========================================================servlet代码如下:import java.io.*;
import java.util.List;
import javax.servlet.*;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.*;import javax.persistence.PersistenceUnit;
import javax.persistence.EntityManagerFactory;
import javax.persistence.EntityManager;/**
*
* @author Yifan_ZHANG
*/
@WebServlet(name = "ListReferenceServlet", urlPatterns = {"/ReferenceList.jsp"})
public class ListReferenceServlet extends HttpServlet { @PersistenceUnit
private EntityManagerFactory emf; /**
* Processes requests for both HTTP
* <code>GET</code> and
* <code>POST</code> methods.
*
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
assert emf != null; //Make sure injection went through correctly.
EntityManager em = null;
try {
em = emf.createEntityManager(); //query for all the References in database
List Reference = em.createQuery("select r from TargetRef r").getResultList();
request.setAttribute("ReferenceList", Reference); //Forward to the jsp page for rendering
request.getRequestDispatcher("ReferenceList.jsp").forward(request, response);
} catch (Exception ex) {
throw new ServletException(ex);
} finally {
//close the em to release any resources held up by the persistebce provider
if (em != null) {
em.close();
}
}
}
==============================================================这是一个很简单的功能,我是直接在netbeans 的一个sample的基础上改的,不知道运行后为什麽不行,小弟是新手,希望有朋友帮忙指出问题,我弄了一个上午都不知道问题在哪儿。谢谢啦!
javax.servlet.ServletException: PWC1232: Exceeded maximum depth for nested request dispatches: 20jsp代码如下:
==================================================================
<%@page contentType="text/html"%>
<%@page pageEncoding="UTF-8"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title><jsp:include page="title.jsp"/></title>
</head>
<body>
<jsp:include page="Header.jsp"/>
<h1>Hello World!</h1>
<table id="referenceListTable" border="3">
<tr >
<th bgcolor=>Reference Name </th>
<th bgcolor=>Date </th>
<th bgcolor=>Client Name </th>
<th bgcolor=>Rate </th>
<th bgcolor=>Volume </th>
</tr>
<c:forEach var="Ref" begin="0" items="${requestScope.ReferenceList}">
<tr>
<td>${Ref.refName} </td>
<td>${Ref.refDate} </td>
<td>${Ref.clientName} </td>
<td>${Ref.suppMin} </td>
<td>${Ref.volume} </td>
</tr>
</c:forEach>
</table>
</body>
</html>
==========================================================servlet代码如下:import java.io.*;
import java.util.List;
import javax.servlet.*;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.*;import javax.persistence.PersistenceUnit;
import javax.persistence.EntityManagerFactory;
import javax.persistence.EntityManager;/**
*
* @author Yifan_ZHANG
*/
@WebServlet(name = "ListReferenceServlet", urlPatterns = {"/ReferenceList.jsp"})
public class ListReferenceServlet extends HttpServlet { @PersistenceUnit
private EntityManagerFactory emf; /**
* Processes requests for both HTTP
* <code>GET</code> and
* <code>POST</code> methods.
*
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
assert emf != null; //Make sure injection went through correctly.
EntityManager em = null;
try {
em = emf.createEntityManager(); //query for all the References in database
List Reference = em.createQuery("select r from TargetRef r").getResultList();
request.setAttribute("ReferenceList", Reference); //Forward to the jsp page for rendering
request.getRequestDispatcher("ReferenceList.jsp").forward(request, response);
} catch (Exception ex) {
throw new ServletException(ex);
} finally {
//close the em to release any resources held up by the persistebce provider
if (em != null) {
em.close();
}
}
}
==============================================================这是一个很简单的功能,我是直接在netbeans 的一个sample的基础上改的,不知道运行后为什麽不行,小弟是新手,希望有朋友帮忙指出问题,我弄了一个上午都不知道问题在哪儿。谢谢啦!
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货