- name: host
debug: msg="{{ item }}"
with_items:
- "{{ groups['tests'] }}"
Этот фрагмент кода даст сообщение:
'10.112.84.122'
'10.112.84.124'
as groups['tests']
в основном возвращает список уникальных IP-адресов ['10.112.84.122','10.112.84.124']
, тогда как groups['tomcat'][0]
возвращает 10.112.84.124
.
Это действительно никогда null
. Сеанс всегда присутствует в JSP EL, если вы не добавите
<%@page session="false" %>
в начало JSP. Затем вы можете проверить сеанс следующим образом (только EL 2.2!):
<c:if test="${pageContext.request.getSession(false) != null}">
<p>The session has been created before.</p>
</c:if>
Я не уверен, каково конкретное функциональное требование. Если вы хотите проверить, является ли сеанс новым или уже создан, вместо этого используйте HttpSession#isNew()
.
<c:if test="${not pageContext.session['new']}">
<p>You've already visited this site before.</p>
</c:if>
<c:if test="${pageContext.session['new']}">
<p>You've just started the session with this request!</p>
</c:if>
(обозначения скобок для new
являются обязательными, поскольку new
является зарезервированным литералом на языке Java)
Если вы полагаетесь на специальный атрибут сеанса , такой как занесенный в журнал - В пользователе, который был установлен как
session.setAttribute("user", user);
, вы должны скорее перехватить это:
<c:if test="${not empty user}">
<p>You're still logged in.</p>
</c:if>
<c:if test="${empty user}">
<p>You're not logged in!</p>
</c:if>
В J2EE всегда будет объект сеанса, когда пользователь посещает сайт.
Что такое сеанс? Сессия в значительной степени напоминает то, что звучит, когда пользователь делает запрос страницы на сервер, сервер создает временный сеанс для идентификации этого пользователя. Поэтому, когда тот же пользователь переходит на другую страницу на этом сайте, сервер идентифицирует этого пользователя. Таким образом, сеанс представляет собой небольшое и временное уникальное соединение между сервером и пользователем, позволяющее ему идентифицировать этого пользователя в нескольких запросах страниц или посещении этого сайта.
Итак, в основном, если вы нажимаете на страницу, у вас есть сеанс потому что вы используете JSP, который в конечном итоге преобразуется в сервлеты.
http://www.stardeveloper.com/articles/display.html?article=2001062001&page=1
Кажется, работает с:
<c:if test="${fn:length(sessionScope) > 0}">
Интересно, есть ли лучший способ, поскольку для этого требуется, чтобы у меня были атрибуты сеанса (я всегда это делаю, но это не совсем чистый)?