я борюсь с базовым логином.
Я использую:
-tomcat 8
- конечная страница index.jsp
-linux mint 18
Я новичок в jsp, поэтому я просто пытаюсьсделать основную форму работы.Сервер Tomcat запущен и работает с перенаправлением на порт 80
Я могу получить доступ к главной странице входа в систему, но когда я ввожу действительные или недействительные учетные данные, сервер возвращает сообщение «Ошибка 404 ресурса не найдена»
Я попытался либо перенаправить,вперед, на реальную страницу jsp (внутри и вне веб-инфы) и даже перенаправляя на www.google.es, и получил ту же ошибку ...
Может кто-нибудь, пожалуйста, пролить свет на это...? Я в замешательстве и не вижу, что мне не хватает ... Спасибо!
Мой код (закомментированные строки в перенаправлении / пересылке, потому что я пробую много вещей):
@WebServlet(description = "A controller for handling user logins",
urlPatterns = { "/Login" })
public class LoginController extends HttpServlet {
private static final long serialVersionUID = 1L;
private HttpSession session;
private String url;
private int loginAttempts;
private boolean us,ps;
/**
* Servlet constructor
*/
public LoginController() {
super();
}
/**
* Process GET requests/responses (logout)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//User has clicked the logout link
session = request.getSession();
//check to make sure we've clicked link
if(request.getParameter("logout") !=null){
//logout and redirect to frontpage
logout();
url="index.jsp";
}
//forward our request along
RequestDispatcher dispatcher = request.getRequestDispatcher(url);
dispatcher.forward(request, response);
}
/**
* Process POST requests/responses (login)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//get our current session
session = request.getSession();
//get the number of logins
if(session.getAttribute("loginAttempts") == null){
loginAttempts = 0;
}
//exceeded logins
if(loginAttempts > 2){
String errorMessage = "Error: Number of Login Attempts Exceeded";
request.setAttribute("errorMessage", errorMessage);
url = "index.jsp";
}else{ //proceed
//pull the fields from the form
String username = request.getParameter("username");
String password = request.getParameter("password");
try {
us = ProtectUserPassword.comprobar(username, true);
ps = ProtectUserPassword.comprobar(password, false);
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}
if(us && ps){
//invalidate current session, then get new session for our user (combats: session hijacking)
session.invalidate();
session=request.getSession(true);
session.setAttribute("user", username);
// url="/WEB-INF/UserAccount.jsp";
response.sendRedirect("www.google.es");
}
else{
String errorMessage = "Error: Unrecognized Username or Password<br>Login attempts remaining: "+(3-(loginAttempts));
request.setAttribute("errorMessage", errorMessage);
//track login attempts (combats: brute force attacks)
session.setAttribute("loginAttempts", loginAttempts++);
// url="/index.jsp";
response.sendRedirect("www.google.es");
}
}
// //forward our request along
// RequestDispatcher dispatcher =
request.getRequestDispatcher(url);
// dispatcher.forward(request, response);
}
public void logout() {
session.invalidate();
}
}