我的应用程序中的每个请求都要经过自定义拦截器,在此它会验证sessionid字段值,该值作为请求有效内容(post方法)中的参数之一传递。
如果它是url参数,那么我们可以使用以下代码段捕获参数。
Map<String, Object> parameters =
actionInvocation.getInvocationContext().getParameters();
String sessionid = parameters.get("sessionId");
如果将“ sessionId”作为部分请求有效载荷发送,那么在拦截器中捕获此参数的方法可能是什么。 我厌倦了下面的代码片段以捕获拦截器,并且它工作正常,但是在动作类的后期阶段,body不可读取。如果我们读取两次,则请求body不可第二次读取。
public String intercept(ActionInvocation actionInvocation) throws Exception {
Log.debug(getClass().getName(), "intercept", "Debug enter");
ActionContext context = actionInvocation.getInvocationContext();
HttpServletRequest request = (HttpServletRequest) context.get(HTTP_REQUEST);
RestPostBody restBody= new Gson().fromJson(request.getReader(), RestPostBody.class);
}