Получить HttpServletRequest в перехватчике Struts 2

Чтобы получить HttpServletRequest в перехватчике, я использовал следующий код:

HttpServletRequest request =(HttpServletRequest) ActionContext.getContext().get(HTTP_REQUEST);

Я пытался реализовать ServletRequestAware в перехватчике, но это не сработало.

Есть ли лучшие способы получить HttpServletRequest в Interceptor?!


person Alireza Fattahi    schedule 08.10.2013    source источник
comment
Зачем вам HttpServletRequest в перехватчике?   -  person Aleksandr M    schedule 08.10.2013
comment
Я хочу разработать и перехватчик, который предотвращает вызов запроса Ajax напрямую по URL-адресу. См. stackoverflow.com/questions/14621539/. Этот перехватчик будет находиться в стеке перехватчиков, что предотвратит эти запросы.   -  person Alireza Fattahi    schedule 08.10.2013


Ответы (4)


Материал сервлета, который вы можете получить, ссылаясь на перехватчик servletConfig. После вызова этого перехватчика вы можете получить содержимое сервлета из ServletActionContext.

HttpServletRequest request = ServletActionContext.getRequest();
person Roman C    schedule 08.10.2013

Вам нужно использовать ActionInvocation#getInvocationContext() для получения вашего запроса.

public String intercept(ActionInvocation invocation) throws Exception {
    ActionContext context = invocation.getInvocationContext();
    HttpServletRequest request = (HttpServletRequest) context.get(ServletActionContext.HTTP_REQUEST);
    // ...
}
person Ravi K Thapliyal    schedule 08.10.2013
comment
Это должен быть утвержденный ответ для использования внутреннего перехватчика. - person Aleksandr M; 17.03.2015

использовать

final HttpServletRequest request = (HttpServletRequest) ActionContext.getContext()
                                               .get(ServletActionContext.HTTP_REQUEST);

это сработало для меня

person Siddheshwaar Patil    schedule 17.03.2015

вы получите ActionInvoction try getInvocationContext(), он вернет экземпляр «ActionContext» try .get(HTTP_REQUEST); для этого.

or

использовать

ServletActionContext.getRequest()
person Pankaj Sharma    schedule 08.10.2013