当我使用自定义SuccessHandler尝试Http POST或Http PUT时,我一直收到Http 400错误。特别是在我转发请求后发生错误。我转发请求如下:
public void onAuthenticationSuccess(HttpServletRequest request,
HttpServletResponse response, Authentication authentication)
throws IOException, ServletException {
String context = request.getContextPath();
String fullURL = request.getRequestURI();
String url = fullURL.substring(fullURL.indexOf(context)
+ context.length());
request.getRequestDispatcher(url).include(request, response);
request.getRequestDispatcher(url).forward(request, response);
}
我的其他任何不包含RequestBody的调用都不会产生Http 400错误。可能是什么问题呢?
答案 0 :(得分:0)
由于请求调度程序适用于同一服务器上的servlet,请尝试request.getRequestDispatcher(conetext)...其中" context"是你的服务器上的相对目标,即/ webapp / login 见ie
答案 1 :(得分:0)
显然,我并不了解RequestDispatcher的include
和forward
方法。通过删除request.getRequestDispatcher(url).forward(request, response);
,我得到了它的工作。有关原因的解释可在以下网址找到:http://www.theserverside.com/tip/Include-vs-Forward-of-the-Servlet-RequestDispatcher。