Java 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

我希望您能帮助处理servlet中无止境循环的问题。此类问题通常会导致错误的servlet映射(通常为“/*”)。但在我的例子中,它有一个特定的值——ConreteJSP文件的名称

Servlet:

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访问它们。