쿼리 문자열의 매개 변수와 본문의 JSON 개체가 포함 된 응용 프로그램의 POST 요청을 처리하는 HttpServlet
을 개발 중입니다. 양식 게시가 아니며 전체 본문이 JSON 개체입니다. 시신을 읽으려면 HttpServletRequest.getReader()
을 사용해야 함을 이해합니다. 그러나 쿼리 매개 변수를 가져 오려면 HttpServletRequest.getParameter()
을 사용해야합니다. 그리고 저는이 두 가지를 모두 사용할 수 없다는 것을 알고 있습니다.HttpServletRequest getParameter 및 getReader
의도 한 솔루션은 HttpServletRequestWrapper
을 만들고 두 번 이상 호출 할 수있는 방식으로 getReader()
을 재정의하는 것이라고 생각합니다. 그러나 나는 그것을하는 방법을 이해할 수 없다. 또는 이것은 의도 된 접근 방식이 아닐 수도 있습니다. 내가 찾을 수있는 HttpServletRequestWrapper
의 모든 예는 필터를 만들고 요청 내용을 수정하는 것과 관련이있는 것 같습니다.
도움을 주시면 대단히 감사하겠습니다.
현재 Google App Engine에 호스팅되어 있지만 솔루션에 영향을 미치지 않는다고 생각합니다.
"내가 모두 사용할 수 없음을 이해 "... 이것은 사실이 아닙니다. 둘 다 문제없이 사용할 수 있습니다. – skaffman
@skaffman : 이것은 사실이 아닙니다. 'getParameter()'의 마지막 단락을 읽으십시오. javadoc http://download.oracle.com/javaee/6/api/javax/servlet/ServletRequest.html#getParameter%28java.lang.String%29 POST 매개 변수가 요청으로 전송됩니다. 신체. 따라서 아직 파싱되지 않았고 본문을 읽으면'getParameter()'를 사용할 수 없으며 그 반대의 경우도 마찬가지입니다. – BalusC
@BalusC : OP는 매개 변수가 본문이 아니라 쿼리 문자열에 있음을 나타냅니다 (즉, 양식 인코딩되지 않았습니다). 이것은 POST에도 허용됩니다. – skaffman