[英]Is it possible to redirect to the same JSP page from a Servlet?
名為Test.jsp
的JSP頁面映射到以下Servlet。
@WebServlet(name = "TestServlet", urlPatterns = {"/TestServlet"})
public final class TestServlet extends HttpServlet
{
protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
//request.getRequestDispatcher("/WEB-INF/admin_side/Test.jsp").forward(request, response);
response.sendRedirect("TestServlet");
}
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
processRequest(request, response);
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
processRequest(request, response);
}
@Override
public String getServletInfo() {
return "Short description";
}
}
此Servlet映射到JSP頁面Test.jsp
。 當在地址欄中輸入類似http://localhost:8080/Assignment/TestServlet
的URL時,將調用doGet()
方法。
請求可以在注釋時轉發到給定的URL。 是否可以重定向到同一個JSP頁面Test.jsp
?
如果嘗試這樣做,Google Chrome會抱怨,
此網頁有重定向循環
但是,它可以重定向到WEB-INF/admin_side
下的其他頁面。
POST-REDIRECT-GET模式就像這樣工作。
客戶端發送POST請求,您的服務器處理它並使用重定向進行響應,即。 具有302狀態代碼和Location
標頭的響應到適當的URI。 客戶端向該URI發出GET請求。
目前,您的服務器正在重定向GET和POSTS請求。 更糟糕的是,您的GET重定向到它正在處理的相同URI,創建您正在看到的重定向循環。
更改您的Servlet實現,以便POST發送重定向,但GET實際上通過HTML,AJAX等提供正常的200響應。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.