Заголовок HTTP Referer в Struts 2 - PullRequest
4 голосов
/ 22 октября 2009

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

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

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

Спасибо!

1 Ответ

4 голосов
/ 24 октября 2009

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

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

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

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

...