Заголовок HTTP Refererer в Struts 2
-
05-07-2019 - |
Вопрос
Как я могу получить заголовок 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()
чтобы получить запрос.Это считается дурным тоном, потому что это может усложнить модульное тестирование, но я вижу это постоянно.