Получение файлов cookie в Java servlet

#java #jsp #servlet-filters

#java #jsp #servlet-фильтры

Вопрос:

У меня проблема, когда я создаю файлы cookie и сохраняю их на другой странице с помощью servlet. У меня нет create JSESSIONID, я просто создаю name, но почему JSESSIONID всегда создается автоматически при обновлении страницы, пожалуйста, помогите мне

введите описание изображения здесь

     public class ControllerHelper extends HelperBase {
private static final long serialVersionUID = 1L;

public ControllerHelper(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {

        super(request, response);
    }


public void doGet(String address) throws ServletException, IOException {
    request.getSession().setAttribute("helper", this);
    PrintWriter out = response.getWriter();
    Cookie[] ck=request.getCookies();
    response.setContentType("text/html");
    if(ck!=null) {

        String name=ck[1].getValue();
          if(!name.equals("")||name!=null){  
              out.print("<b>Welcome to Profile</b>");  
              out.print("<br>Welcome, " name);  
          }  

        request.setAttribute("stts_log", "Login");
        request.setAttribute("sess", name);
        request.setAttribute("btn_modal", "exambutton");
        request.setAttribute("btn_href", "#");

    }else {
        request.setAttribute("sess", "");
        request.setAttribute("stts_log", "Logout");
        request.setAttribute("btn_modal", "");
        request.setAttribute("btn_href", "logout");
    }

    request.getRequestDispatcher("/view/header.jsp").include(request, response);
    request.getRequestDispatcher("/view/" address).include(request, response);
    request.getRequestDispatcher("/view/footer.jsp").include(request,response);
}
  

Ответ №1:

Почему JSESSIONID всегда создается автоматически при обновлении страницы

Из-за request.getSession().setAttribute("helper", this); этого создается ваш идентификатор сеанса (JSESSIONID — это cookie для отслеживания сеанса).

Комментарии:

1. Оке Эллиот, я понял, и у меня снова возник вопрос, почему это похоже на эту строку name=ck[1].GetValue(); Тогда как в Tutuorial значение равно name=ck[0].GetValue(); Я получаю руководство из этого javatpoint.com/servlet-login-and-logout-example-using-cookies

2. Это массив файлов cookie; индекс файла cookie в массиве произвольный (почти наверняка это порядок, в котором браузер отправляет их).

3. Оке… Спасибо за вашу помощь,,. Я новичок в Java, раньше я просто Php и так много разных методов .. кстати, мне нужен ваш совет, какой из них лучший, сеанс или файлы cookie для входа в систему безопасности? и можете ли вы дать мне какую-нибудь ссылку, чтобы я узнал об аутентификации в java servlet?

4. Руководство по аутентификации JAAS