jQueryを使用してPOSTリクエストを送信しています:
$.post(
'test',
{ foo: 'bar'}
);
そして、それを処理するための単純なサーブレットがあります。
@WebServlet("/test")
public class TestServlet extends HttpServlet {
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
Map<String, String[]> parameterMap = req.getParameterMap();
}
}
しかし、サーブレットの requestMap は空であることが判明しました。私は何を間違っていますか?
編集:JSF Faceletページからこのスクリプトを呼び出すことを忘れていました。なぜわざわざ Ajax リクエストを手動で発行するのか、なぜサーブレットを使用してそれらを処理するのか、私に聞かないでください。長い話です。私はそれがJSF的な方法ではないことを知っています。
@BalusC の回答の後、次のようなサーブレット フィルターを追加してみました。
@WebFilter(urlPatterns="/test")
public class TestFilter implements Filter {
@Override
public void destroy() { }
@Override
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
Map<String, String[]> parameterMap = request.getParameterMap();
chain.doFilter(request, response);
}
@Override
public void init(FilterConfig filterConfig) throws ServletException { }
}
そしてそれは働いた!フィルターでパラメーターを取得できただけでなく、サーブレットからもアクセスできました。では、誰かこれがどんな魔法なのか説明してくれませんか?