2016-06-28 155 views
0

我有一個servletjsp頁面。 jsp頁面包含最終用戶將填寫的表單。Tomcat 8:HTTP狀態405 - 此方法不支持HTTP方法GET

<html> 
<head> 
    <title>Please log in to your profile</title> 
</head> 
<body> 
    <form action="${pageContext.request.contextPath}/login_servlet" method="post"> 
     Email: <input type="text" size="5" name="email"/> 
     &nbsp;&nbsp; 
     Password: <input type="text" size="5" name="password"/> 
     &nbsp;&nbsp; 
     <input type="submit" value="Sign In" /> 
    </form> 
    </body> 
</html> 

那麼我就要在servlet使用doPost()方法,因爲形式所具有的POST方法。我得到servlet中的參數,所以我可以打印到控制檯。

@WebServlet("/login_servlet") 
public class LoginServlet extends HttpServlet { 

    @Override 
    public void doPost(HttpServletRequest req, 
      HttpServletResponse resp) throws ServletException, IOException { 

     String email = req.getParameter("email"); 
     String password = req.getParameter("password"); 

     System.out.println("Email: " + email); 
     System.out.println("Password: " + password); 
    } 
} 

當我嘗試訪問的URL是http://localhost:8080/StudentPortal/login_servlet我得到這個錯誤; HTTP Status 405 - HTTP method GET is not supported by this URL,其描述爲「請求的資源不允許指定的HTTP方法」。

我已經接近被阻止詢問任何問題。因此,在此之前請標記爲重複,我想讓你知道我已經看過類似的問題,並且遵循了無效的建議。

我不得不學習servlets,因爲我很快就被派上了Spring項目。

+0

您能否鏈接到您遵循建議的類似問題,以便我們可以將這些解決方案排除在外。 –

+0

當你直接在地址欄中輸入servlet的路徑時,你沒有'doGet()'方法,像Tomcat這樣的web容器會嘗試調用'doGet()'方法。 – Mihir

+0

@Mhhir'doGet()'方法應該有什麼?現在我厭倦了將它添加到裏面,我稱它爲'doPost()'; 'doPost(req,resp)'。 – TheRealRave

回答

0

當您訪問您的網址時,您正在使用get方法。 而在你的servlet中你只聲明瞭doPost方法。 嘗試使用郵遞員擴展程序來使用其他http方法。

*嘗試直接訪問到你的JSP頁面:localhost:8080/StudentPortal/pathToYourJspPage

*您也可以在你的servlet添加doGet方法和呼叫重定向從那裏到jsp頁面:response.sendRedirect是(位置)或的request.getRequestDispatcher(位置).forward(request,response)

+0

但爲什麼我需要下載擴展名?當然,它一定是我的代碼有問題。 – TheRealRave

+0

那麼,你應該直接進入你的jsp頁面,而不是servlet。通過'http:// localhost:8080/StudentPortal/login_servlet'進入servlet。嘗試使用此網址:http:// localhost:8080/StudentPortal/pathToYourJspPage – mrserfr

+0

雖然這不是壞習慣嗎?假設你有'... home.jsp',當你嘗試訪問像home/profile/activity這樣的東西時,你會不會遇到問題? – TheRealRave

相關問題