问题描述
我的jsp页面 web/jspPages/addReport.jsp
<%if(request.getParameter("addReport") != null){ %>
<jsp:forward page="/addReportGuiControlServlet" />
<%} %>
<form action="addReport.jsp" name="myform" method="POST">
<h4 class="desc">How many people are there in the queue?</h4>
<div>
<input class="addreport" type="checkBox" id="isLast" name="isLast">
<label class="desc">I'm the last of the queue</label>
</div>
<div class="container1">
<input class="addreport" type="text" name="queueLen" id="queueLen" autocomplete="off">
</div>
<div class="container2">
<input class="addreport" type="submit" name="addReport" value="Add Report">
</div>
</form>
我的 servlet
@Override
public void doPost(HttpServletRequest request,HttpServletResponse response)
throws servletexception,IOException
{
Requestdispatcher rd = request.getRequestdispatcher("/jspPages/addReport.jsp");
rd.forward(request,response);
}
我的 web.xml
<servlet>
<servlet-name>AddReportGuiControlServlet</servlet-name>
<servlet-class>logic.boundary.web.controlgrafico.AddReportGuiControlServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>AddReportGuiControlServlet</servlet-name>
<url-pattern>/addReportGuiControlServlet</url-pattern>
</servlet-mapping>
导致无限循环的错误。我认为问题是参数“addReport”,因为在 servlet 中我尝试打印它并且是 != null,但我不知道如何设置这个值。
解决方法
我通过向 Servlet 中的 URL 添加一个参数来解决它:
RequestDispatcher rd = request.getRequestDispatcher("/jspPages/addReport.jsp?forward=true");
然后我将控件插入到 JSP 中:
<%if(request.getParameter("addReport") != null){
//controllo se la pagina è stata già mandata dalla servlet
if(request.getParameter("forward") == null){
%>
<jsp:forward page="/addReportGuiControlServlet"></jsp:forward>
<%
}
}
%>
这是因为参数 addReport 不为 null 则由 Servlet 转发