- Ajax로 보낸 JSON 데이터 서블릿(Servlet)으로 받아오기
화면에서 Ajax POST로 데이터를 보냈는데, Servlet에서 null이 떴다.
→ 해당 프로젝트는 Spring을 사용하지 않고 Servlet으로만 구성되고 있다.
보낼 데이터를 객체가 아니라 JSON 형태로 변경하였고, Servlet 쪽에서도 JSON 파싱 구문을 넣어줬다.
//JSON Parsing
StringBuffer jb = new StringBuffer();
String line = null;
try {
BufferedReader reader = request.getReader();
while ((line = reader.readLine()) != null)
jb.append(line);
} catch (Exception e) {/* report an error */ }
JsonParser parser = new JsonParser();
JsonElement element = parser.parse(jb.toString());
long id = element.getAsJsonObject().get("id").getAsLong();
String type = element.getAsJsonObject().get("type").getAsString();
- JSON 인코딩 깨짐 해결방법
JSON으로 값은 잘 넘어온 듯 하나, 데이터의 인코딩이 깨졌다.
// request의 인코딩을 지정해준다.
request.setCharacterEncoding("UTF-8");
- 참고자료
[Javascript / Servlet] Ajax POST로 보낸 JSON 데이터 Servlet에서 받아오기
보냄, Ajax call var obj = new Object(); obj.id = event.currentTarget.parentNode.id; obj.type = event.currentTarget.parentNode.parentNode.id; const xhr = new XMLHttpRequest(); xhr.open('POST', 'TodoTypeServlet'); xhr.setRequestHeader('Content-type', 'appl
joooahn.tistory.com
안드로이드 서블릿 json 한글 깨짐
안드로이드 -> 서버HttpPost httpPost = new HttpPost(params[0]);UrlEncodedFormEntity entityRequest = new UrlEncodedFormEntity(nameValuePairs, "UTF-8");httpPost.setEntity(entityRequest); 서블릿request.setCharacterEncoding("UTF-8");response.setCharac
genius12.tistory.com