2013-10-08 6 views
5

Per ottenere risultati HttpServletRequest in un intercettore ho usato il codice qui sotto:Get HttpServletRequest in Struts 2 intercettore

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

ho cercato di implementare ServletRequestAware nel intercettore, ma non ha funzionato.

Esistono modi migliori per ottenere HttpServletRequest in un intercettore?!

+0

Perché avete bisogno 'HttpServletRequest' in intercettore? –

+0

Voglio sviluppare e intercettatore che impedisca alla richiesta Ajax di chiamare direttamente dall'URL. Consulta http://stackoverflow.com/questions/14621539/how-to-determine-whether-a-request-is-ajax-or-normal. Questo interceptor sarà in stack intercettore che impedirà queste richieste. –

risposta

4

La roba servlet si potrebbe ottenere riferimento servletConfig intercettore. Dopo aver richiamato questo interceptor, è possibile ottenere materiale di servlet da ServletActionContext.

HttpServletRequest request = ServletActionContext.getRequest(); 
0

si otterrà ActionInvoction provare getInvocationContext() restituirà istanza di "ActionContext" provare .get(HTTP_REQUEST); su questo.

o

uso

ServletActionContext.getRequest() 
4

è necessario utilizzare ActionInvocation#getInvocationContext() per recuperare la vostra richiesta.

public String intercept(ActionInvocation invocation) throws Exception { 
    ActionContext context = invocation.getInvocationContext(); 
    HttpServletRequest request = (HttpServletRequest) context.get(HTTP_REQUEST); 
    // ... 
} 
+1

Questa dovrebbe essere la risposta approvata per l'utilizzo dell'intercettore interno. –

1

uso

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

ha funzionato per me

+0

Questo è lo stesso codice che si trova in OP. –