Java Servlet无限循环
我希望您能帮助处理servlet中无止境循环的问题。此类问题通常会导致错误的servlet映射(通常为“/*”)。但在我的例子中,它有一个特定的值——ConreteJSP文件的名称 Servlet:Java Servlet无限循环,java,jsp,servlets,infinite-loop,Java,Jsp,Servlets,Infinite Loop,我希望您能帮助处理servlet中无止境循环的问题。此类问题通常会导致错误的servlet映射(通常为“/*”)。但在我的例子中,它有一个特定的值——ConreteJSP文件的名称 Servlet: public class TrainsListServlet extends HttpServlet { private static final long serialVersionUID = 1L; protected void processRequest(HttpServletReques
public class TrainsListServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void processRequest(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
EmployeeService employeeService = new EmployeeServiceImpl();
List<Train> trains = (List<Train>) employeeService.getTrains();
request.setAttribute("trains", trains);
RequestDispatcher dispatcher = getServletContext()
.getRequestDispatcher("/getTrainsList.jsp");
dispatcher.forward(request, response);
}
protected void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
processRequest(request, response);
}
protected void doPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
processRequest(request, response);
}
公共类TrainsListServlet扩展了HttpServlet{
私有静态最终长serialVersionUID=1L;
受保护的无效processRequest(HttpServletRequest请求,
HttpServletResponse响应)引发ServletException,IOException{
EmployeeService EmployeeService=新EmployeeServiceImpl();
List trains=(List)employeeService.getTrains();
request.setAttribute(“列车”,列车);
RequestDispatcher dispatcher=getServletContext()
.getRequestDispatcher(“/getRainsList.jsp”);
转发(请求、响应);
}
受保护的无效数据集(HttpServletRequest请求,
HttpServletResponse响应)引发ServletException,IOException{
processRequest(请求、响应);
}
受保护的void doPost(HttpServletRequest请求,
HttpServletResponse响应)引发ServletException,IOException{
processRequest(请求、响应);
}
}
web.xml:
...
<servlet>
<servlet-name>TrainsList</servlet-name>
<display-name>TrainsList</display-name>
<description></description>
<servlet-class>ru.tsystems.jsproject.sbb.Servlets.TrainsListServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>TrainsList</servlet-name>
<url-pattern>/getTrainsList.jsp</url-pattern>
</servlet-mapping>
。。。
列车员
列车员
ru.tsystems.jsproject.sbb.Servlets.trainslitservlet
列车员
/getTrainsList.jsp
getTrainsList.jsp:
...
<c:forEach var="train" items="${trains}">
<tr>
<td><c:out value="${train.getNumber()}" /></td>
<td><c:out value="${train.getSeatsCount()}" /></td>
<td><c:out value="${train.getFrequence()}" /></td>
</tr>
</c:forEach>
...
。。。
...
这都会导致processRequest方法中的无休止循环。请帮忙,
告诉我我做错了什么?用html文件映射它
<servlet-name>TrainsList</servlet-name>
<url-pattern>/getTrainsList.html</url-pattern>
TrainsList
/getTrainsList.html
并遵循
http://localhost:8080/.../getTrainsList.html
您将从Servlet getTrainsList.jsp获得响应您将/getTrainsList.jsp映射到您的Servlet,Servlet将转发到/getTrainsList.jsp。你期望什么?我怎么能解决?我在jsp文件中没有表单,因此无法将它们链接到抛出操作属性。请删除映射。首先为什么要创建它?当我打开jsp页面时,需要调用servlet。如果没有jsp页面上的表单和映射,我如何将它们关联起来?您不应该尝试“打开jsp页面”。将servlet映射到任何URL,但不要映射到JSP的URL。它可以是/trains,或者/trains.html,或者任何你想要的东西。但是,如果您将JSP的URL提供给它,则将执行servlet而不是JSP。您甚至应该将jsp文件放在WEB-INF中,因为您不应该从外部访问它们,而应该只通过控制器servlet访问它们。