HTTP Status 405 - HTTP method POST is not supported by this URL
寫一個Servlet頁面跳轉時,出現了HTTP Status 405 - HTTP method POST is not supported by this URL 這個錯誤。
我的servlet的跳轉代碼如下:
request.getRequestDispatcher("FindByIdServlet?id="+commentPostId).forward(request, response);
在Servlet中使用這種方式跳轉到另一個Servlet時就會出現如題的錯誤,改用sendRedirect(),即可解決此問題了:
response.sendRedirect("FindByIdServlet?id="+commentPostId);
redirect和forward的區別:
1) redirect 方式
response.sendRedirect("test.jsp");
頁面的路徑是相對路徑。sendRedirect可以將頁面跳轉到任何頁面,不一定局限于本web應用中,如:
response.sendRedirect("http://www.baidu.com";);
跳轉后瀏覽器地址欄變化,會變成你跳轉到的頁面的地址。
這種方式要傳值出去的話,只能在url中帶parameter或者放在session中,無法使用request.setAttribute來傳遞。
2) forward方式
RequestDispatcher dispatcher = request.getRequestDispatcher("/a.jsp");
dispatcher .forward(request, response);
頁面的路徑是相對路徑。forward方式只能跳轉到本web應用中的頁面上。
跳轉后瀏覽器地址欄不會變化。
使用這種方式跳轉,傳值可以使用三種方法:url中帶parameter,session,request.setAttribute
來源: http://www.programbbs.com/bbs/view23-14330-1.htm