Вопрос

Как я могу получить заголовок Referer в Struts2?Прямо сейчас я использую класс ActionSupport, и, похоже, я не могу получить объект ServletActionContext или реализовать интерфейс ServletRequestAware?(Где находится ServletRequestAware в Struts2?какая банка?)

Я пытаюсь настроить автоматическое перенаправление на реферер страницы, хранящийся в переменной сеанса.Когда кто-то запрашивает аутентификацию OAuth, я сохраняю реферер в сеансе, а затем отправляю его в Twitter.Когда они нажимают разрешить, twitter отправляет их на мой URL обратного вызова OAuth.Я действительно работаю там (сохраняю токен доступа), а затем хотел бы отправить их референту, которого я сохранил в их сеансе.

Как я уверен, вы можете сказать, я очень новичок в Struts.Я потратил более трех часов на чтение Java docs, поиск в Google и другие попытки избежать гнева против меня, новичка съежиться

Спасибо!

Это было полезно?

Решение

Считается "некрутым" ссылаться на HTTP-элементы в действиях, но это становится необходимым....

org.apache.struts2.interceptor.
                         ServletRequestAware.setServletRequest(HttpServletRequest request);

реализуйте интерфейс, создайте HttpServletRequest переменная-член, а затем установите вашу переменную-член в соответствии с запросом в реализованном выше установщике.Теперь у вас есть запрос, и вы можете выполнить свое request.getHeader("referer").

Некоторые люди также используют статический метод org.apache.struts2.ServletActionContext.getRequest() чтобы получить запрос.Это считается дурным тоном, потому что это может усложнить модульное тестирование, но я вижу это постоянно.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top