Cookies - это некоторые текстовые значения (обычно хранящиеся в текстовых файлах в кеше браузера), которые вы можете использовать для хранения данных на стороне клиента.Когда пользователь отправляет запрос на определенный URL-адрес, все cookie-файлы, хранящиеся на этом сервере (домене), передаются вместе с ним, чтобы сервер мог считывать эти значения.
В Java вы можете установить cookie, напримерэто в вашем сервлете (в вашем случае, когда пользователь входит в систему, создайте cookie и сохраните в нем значение (например, username = josh). Вы можете сделать это в своем сервлете для входа в систему после успешного входа в систему.
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// Verify login, and get the username. Assume it's josh
Cookie cookie = new Cookie("username", "josh");
cookie.setMaxAge(60*60*24); // 24 hours for expiry
response.addCookie(cookie);
}
Позже вы можете проверить наличие куки, и если он существует, то пользователь уже вошел в систему. Если нет, вы можете отправить перенаправление на страницу входа.
Вы можете проверитьтакие куки в вашем сервлете.
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
Cookie[] cookies = request.getCookies();
String username = null;
for (Cookie c : cookies) {
if ("_username".equals(c.getName())) {
username = c.getValue();
break;
}
}
if (username == null) {
// Not Logged in. Redirect to Login
}
// User Logged In. Proceed
}
Вместо того, чтобы помещать этот код во все ваши сервлеты + JSP, вы можете легко поместить его в класс фильтра сервлетов. Подробнее об этом можно прочитать здесь: http://javaboutique.internet.com/tutorials/Servlet_Filters/
В идеале вы могли бы также предоставить функцию выхода из системы, которая удалит значение, назначенное для файла cookie с именем пользователя, заменив его на null.
Я показал приведенный выше пример, потому что yoВы упомянули, что вам нужно использовать куки для вашего назначения.Но если вы можете, попробуйте использовать сеансы (которые, в свою очередь, большую часть времени используют файлы cookie) для хранения зарегистрированных данных пользователя.В сеансах вы можете использовать тайм-ауты сеансов, чтобы гарантировать, что незанятые пользователи будут автоматически выходить из системы через некоторое время и т. Д.