GlassFi sh создает новый JSESSIONID по каждому запросу - PullRequest
0 голосов
/ 10 апреля 2020

У меня есть простая страница, поддерживаемая именованным компонентом. На странице также используются простые символы, но я ничего не делаю ajax на этой странице. Приложения размещены на Glassfi sh 5.1.

@Named("cardsView")
@RequestScoped
public class CardsViewBean implements Serializable {
   ...
}

Это страница x html. Как вы можете видеть, я передаю бин мастеру x html, не уверенный, является ли это наилучшей практикой или источником проблемы.

<ui:composition template="/fragment/master.xhtml"
    xmlns="http://www.w3.org/1999/xhtml"
    xmlns:h="http://xmlns.jcp.org/jsf/html"
    xmlns:p="http://primefaces.org/ui"
    xmlns:c="http://java.sun.com/jsp/jstl/core"
    xmlns:f="http://java.sun.com/jsf/core"
    xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
    xmlns:ipc="http://java.sun.com/jsf/composite/component">

    <ui:param name="bean" value="${cardView}" />

    <ui:define name="content">
    .....
    </ui:define>

</ui:composition>

Насколько я понимаю, боб области действия запроса живет только для запроса.

Однако, когда я смотрю на инспектор браузера, я вижу, что каждый раз, когда я нажимаю на страницу, создается новый JSESSIONID. Поэтому я думаю, что есть нечто, что я неправильно настроил, но я не уверен, где искать.

1 Ответ

0 голосов
/ 10 апреля 2020

На самом деле есть 2 запроса на странице. Первоначальный запрос и запрос обратной передачи. Сначала клиент делает запрос на получение страницы. это полный запрос сам по себе. запрос: http://example.com/index ответ: html стр. После того, как пользователь нажмет кнопку «Отправить» или другую кнопку или ссылку, браузер снова запросит другую страницу. запрос: http://example.com/login ответ: другая страница. Другими словами, Jsf или любая инфраструктура пользовательского интерфейса хранит информацию между двумя запросами для нас с помощью различных методов и методов. См. этот вопрос о начальном запросе и запросе обратной передачи и жизненный цикл Jsf и primeFaces lifeCycle show case
last Point: у сеанса есть тайм-аут в jservlet, и вы можете настроить его, используя web. xml и если это время пройдет, ваш сеанс истечет и даст вам еще один сеанс Happy Coding!

...