servletはPOSTデータをどのように受け取るのですか?

Servlet内では、POSTリクエストのデータをHttpServletRequestオブジェクトのメソッドを使用して受け取ることができます。

  1. HttpServletRequestオブジェクトを取得する。
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    // 获取HttpServletRequest对象
    // ...
}
  1. POSTリクエストのパラメータを取得する。
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    // 获取POST请求参数
    String param1 = request.getParameter("param1"); // 根据参数名获取单个参数的值
    String[] param2 = request.getParameterValues("param2"); // 根据参数名获取多个参数的值

    // ...
}

上記のコードでは、getParameter()メソッドは1つのパラメータの値を取得するために使用され、getParameterValues()メソッドは複数のパラメータの値を取得するために使用されます。これらのメソッドの引数はリクエストパラメータの名前です。

  1. POSTリクエストのBodyからデータを取得する。
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    // 获取POST请求的Body中的数据
    String requestBody = request.getReader().lines()
            .reduce("", (accumulator, actual) -> accumulator + actual); // 将请求Body中的数据拼接成字符串

    // ...
}

上記のコードでは、getReader()メソッドを使用してリクエストのBufferedReaderオブジェクトを取得し、lines()メソッドを使用してデータを1行ずつ読み取り、reduce()メソッドを使用して各行のデータを1つの文字列に結合しています。

上記のコードは、リクエストボディがテキスト形式のデータの場合にのみ適用されることに注意してください。リクエストボディがバイナリデータ(例:ファイルアップロード)の場合は、別の方法を使用する必要があります。

bannerAds