>Java >java지도 시간 >HttpServletRequest를 사용하여 서블릿의 JSON POST 데이터에 액세스하는 방법은 무엇입니까?

HttpServletRequest를 사용하여 서블릿의 JSON POST 데이터에 액세스하는 방법은 무엇입니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-12-03 17:37:11652검색

How to Access JSON POST Data in a Servlet Using HttpServletRequest?

HttpServletRequest에서 JSON POST 데이터에 액세스

본문에 JSON 데이터가 포함된 HTTP POST 요청을 수행할 때 요청 데이터를 검색하는 것은 전통적인 getParameter 메소드가 사용되는 경우 문제가 발생합니다. 이는 getParameter가 "application/x-www-form-urlencoded" 형식으로 인코딩된 키-값 쌍에서만 작동하기 때문입니다.

그러나 JSON 데이터 스트림의 경우 사용자 정의 접근 방식이 필요합니다.

JSON 데이터용 사용자 정의 디코더

JSON POST 데이터에 액세스하려면 BufferedReader를 활용해야 합니다. 원시 데이터 스트림을 처리하려면:

BufferedReader reader = request.getReader();

org.json 패키지를 사용하는 예

다음은 인기 있는 org.json 라이브러리를 사용하여 JSON POST를 디코딩하는 예입니다. data:

@Override
public void doPost(HttpServletRequest request, HttpServletResponse response)
  throws ServletException, IOException {

  StringBuffer jb = new StringBuffer();
  String line = null;
  try {
    while ((line = reader.readLine()) != null)
      jb.append(line);
  } catch (Exception e) { /*report an error*/ }

  try {
    JSONObject jsonObject =  HTTP.toJSONObject(jb.toString());
  } catch (JSONException e) {
    // crash and burn
    throw new IOException("Error parsing JSON request string");
  }
}

이 코드는 JSON 데이터를 읽고 추가 처리를 위해 JSONObject로 변환합니다. 그런 다음 getInt, getString 및 getJSONArray와 같은 메소드를 사용하여 필요한 특정 데이터를 추출할 수 있습니다.

위 내용은 HttpServletRequest를 사용하여 서블릿의 JSON POST 데이터에 액세스하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.