#web-applications #struts2
#веб-приложения #struts2
Вопрос:
просто хотел узнать, возможно ли узнать следующие подробности, если внешнее приложение выполняет вызов моего класса действий на основе Struts 2.2. 1. IP-адрес и системное имя клиента, который совершил вызов2. Любые другие сведения о клиенте, которые могли поступить как часть http-запроса.
Спасибо
Ответ №1:
В журнале доступа к контейнеру вашего приложения будет записана основная информация о запросе.
Если вам нужна дополнительная информация, есть множество способов сделать это, включая стандартный фильтр сервлетов (IMO, вероятно, лучшая идея, поскольку он не привязан к платформе S2) или перехватчик Struts 2. Любой из них может регистрировать любую необходимую вам конкретную информацию, включая информацию из сеанса (например, идентификатор пользователя для конкретного приложения).
Комментарии:
1. итак, из среды struts 2 (читаемый класс действий) я могу получить доступ к объекту http-запроса и найти IP-адрес запрашивающего клиента. Возможно ли это?
2. Да, вы можете реализовать
ServletRequestAware
, иHttpServletRequest
это будет внедрено в ваше действие. Однако, как сказал Дейв, это лучше использовать в фильтре или перехватчике, если вы хотите регистрировать информацию обо всех или многих различных типах запросов.