我有一个servlet
和一个jsp
页面。 jsp
页面包含最终用户将填写的表单。
<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"/>
Password: <input type="text" size="5" name="password"/>
<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);
}
}
当我尝试访问http://localhost:8080/StudentPortal/login_servlet
的网址时,我收到此错误; HTTP Status 405 - HTTP method GET is not supported by this URL
,其描述为&#34;请求的资源不允许使用指定的HTTP方法。&#34;
我接近被阻止再问问题了。所以,在此之前被标记为重复,我希望您知道我已经查看了类似的问题,并且已经按照给出的建议无效。
我必须学习servlet,因为我很快就被安排在Spring项目上工作。
答案 0 :(得分:0)
当您访问自己的网址时,您使用的是get
方法。
在您的servlet中,您只声明了doPost
方法。
尝试使用chrome的邮递员扩展来使用其他http方法。
*尝试直接访问您的jsp页面:localhost:8080/StudentPortal/pathToYourJspPage
*您还可以在servlet中添加doGet
方法,并从那里调用重定向到jsp页面:response.sendRedirect(location)或request.getRequestDispatcher(location).forward(request,response)