У меня была проблема со страницей входа, в частности с файлами cookie, в системе заказа продуктов, над которой я сейчас работаю.
На странице индекса она должна проверять с помощью файлов cookie, является ли текущий пользователь администратором или пользователем или, если его нет, следует перенаправить в форму входа. И каждый раз, когда я вхожу в систему, я сохраняю куки, а затем перенаправляю страницу обратно на страницу индекса, где она будет перепроверяться.
index.jsp
final String COOKIE_USERTYPE = "foodordering.usertype";
Cookie[] cookies = request.getCookies();
String usertype = null;
if(cookies != null) {
for(Cookie cookie : cookies) {
if(cookie.getName().equals(COOKIE_USERTYPE)) {
usertype = cookie.getValue();
}
}
}
if(usertype == null) {
response.sendRedirect("loginForm.html");
} else if(usertype == "user") {
response.sendRedirect("orderForm.jsp");
} else if(usertype == "admin") {
out.println("Hello, Admin!");
}
Файлы cookie правильно хранятся в браузере, используя этот код:
login.jsp
String username = request.getParameter("txtUsername");
String password = request.getParameter("txtPassword");
try {
Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost/FoodOrdering", "root", "");
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * FROM User WHERE username='" + username + "' AND password='" + password + "'");
if(rs.next()) {
response.addCookie(new Cookie("foodordering.usertype", rs.getString("usertype")));
}
rs.close();
stmt.close();
conn.close();
response.sendRedirect("index.jsp");
} catch(SQLException e) {
e.printStackTrace();
} catch(Exception e) {
e.printStackTrace();
}
С файлами cookie ЕЩЕ НЕ СОХРАНЕНО ( foodordering.usertype ), файл index.jsp работает нормально, так как он правильно отправляет меня на страницу входа, как я и собирался сделать это так.
ПРОБЛЕМА:
Но с данными cookie STORED , index.jsp никуда меня не перенаправляет, а остается.
Я надеюсь, что любой может помочь, и спасибо заранее.