簡體   English   中英

是否可以從Servlet重定向到同一個JSP頁面?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM