Я разрабатываю приложение сервлета входа в систему, мой код выглядит следующим образом:
Страница входа для отображения двух текстовых полей и одной кнопки входа. Где пользователь вводит имя пользователя и пароль и отправляет данные.
public class LoginPage extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
String contextPath = request.getContextPath();
out.println("<form method='post' action='LoginCheck'>");
out.println("Username: <input type='text' name='username'>");
out.println("<br>");
out.println("Password: <input type='password' name='password'>");
out.println("<br>");
out.println("<input type='submit' value='login'>");
out.println("<br>");
out.println("</form>");
}
}
Страница проверки входа Эта страница предназначена для проверки имени пользователя и пароля пользователя. После проверки правильности имени пользователя и пароля выполняется перенаправление на страницу приветствия, а если неверно, то выполняется перенаправление на < strong>Страница ошибок И код для каждой страницы выглядит следующим образом:
public class LoginCheck extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html");
String username = request.getParameter("username");
String password = request.getParameter("password");
if(username.equals("abs") && password.equals("abs")){
response.sendRedirect("Welcome");
}else{
response.sendRedirect("Error");
}
}
}
Добро пожаловать Если имя пользователя и пароль верны.
public class Welcome extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
PrintWriter out = response.getWriter();
out.println("<h3>Welcome user</h3>");
}
}
Ошибка, если имя пользователя или пароль неверны.
public class ErrorPage extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
PrintWriter out = response.getWriter();
out.println("<h3>ERROR !!!</h3>");
out.println("<h3>Username or Password you entered is wrong.</h3>");
}
}
ХОРОШО !!! Но после ввода имени пользователя и пароля на страницу входа он переходит к checklogin, а когда переходит на страницу приветствия или страницу ошибки, выдает ошибку !!!
Статус HTTP 405 — HTTP-метод GET не поддерживается этим URL-адресом
Я не использую метод GET
нигде в приведенном выше коде, как вы можете видеть, но почему я получаю этот тип ошибки???
GET
для получения новой страницы. Но ни вашиError
, ни вашиWelcome
страницы поддерживаютGET
. - person Boris the Spider   schedule 02.09.2015POST
, см. этот вопрос, но вы не отправляете никаких данных в сервлет, поэтому вам действительно не следует использоватьPOST
- person Andrew Mairose   schedule 02.09.2015