- setContentType(String type)
- 응답의 MIME 타입을 설정한다. 텍스트, JSON, HTML 등의 형식을 지정할 수 있다.
- 예시
- JSON 형식 : httpResponse.setContentType("application/json")
TEXT 형식 : httpResponse.setContentType("text/plain")
HTML 형식 : httpResponse.setContentType("text/html")
어떤 형식이던 한글을 사용하려면 charset=UTF-8을 뒤에 더 적어준다.- ex) httpResponse.setContentType("text/plain; charset=UTF-8");
- 응답의 MIME 타입을 설정한다. 텍스트, JSON, HTML 등의 형식을 지정할 수 있다.
- setCharacterEncoding(String charset)
- 응답의 문자 인코딩을 설정한다. setContentType에서 charset="UTF-8")을 해주고 이놈도 해줘야 응답이 잘 한글로 나온다.
- 예시
- httpResponse.setCharacterEncoding("UTF-8")
- 응답의 문자 인코딩을 설정한다. setContentType에서 charset="UTF-8")을 해주고 이놈도 해줘야 응답이 잘 한글로 나온다.
- getWriter()
- 클라이언트로 텍스트 데이터를 전송할 수 있는 PrintWriter 객체를 반환한다.
- 예시
-
PrintWriter out = httpResponse.getWriter(); out.println("Hello, World!"); - PrintWriter 객체는 write() 메서드도 가지고 있다. write(0 메서드를 사용하려면 먼저 getWriter() 메서드를 통해 PrintWriter 객체를 받아와야 한다.
- write() 메서드는 PrintWriter 객체에 의해 사용되며, 주어진 문자열 또는 문자를 클라이언트로 출력한다.
- 예시
-
PrintWriter out = httpResponse.getWriter(); out.write("This is a response using write() method."); out.close(); //혹은 HttpServletResponse httpResponse = (HttpServletResponse) response; httpResponse.getWriter().write("요것은 응답을 작성하는데 사용하는 메서드다");
- 클라이언트로 텍스트 데이터를 전송할 수 있는 PrintWriter 객체를 반환한다.
- setStatus(int sc)
- 응답의 상태 코드를 설정한다.
- 예시
- httpResponse.setStatus(HttpServletResponse.SC_OK)
- 응답의 상태 코드를 설정한다.
- sendRedirect(String location)
- 클라이언트를 지정된 URL로 리다이렉트한다.
- 예시
- httpResponse.sendRedirect("https://example.com")
- 클라이언트를 지정된 URL로 리다이렉트한다.
- addHeader(String name, String value)
- 응답에 새로운 헤더를 추가한다.
- 예시
- httpResponse.addHeader("Cache-Control", "no-cache")
- 응답에 새로운 헤더를 추가한다.
- setHeader(String name, String value)
- 응답의 지정된 헤더를 설정한다 기존 헤더가 있다면 대체된다
- 예시
- httpResponse.setHeader("Content-Type", "application/json")
- 응답의 지정된 헤더를 설정한다 기존 헤더가 있다면 대체된다
- getOutputStream()
- 클라이언트로 바이너리 데이터(이미지, 파일 다운로드, 동영상 스트리밍)를 전송할 수 있는 ServletOutputStream 객체를 반환한다.
- 예시
-
ServletOutputStream out = httpResponse.getOutputStream(); out.write(byteArray);
- 바이너리 데이터 전송을 한번도 안해봐서 작성하는 구체적 예시
-
// Content-Type 설정 (예: 이미지 파일) httpResponse.setContentType("image/jpeg"); // ServletOutputStream 객체 얻기 ServletOutputStream out = httpResponse.getOutputStream(); // 바이너리 데이터 생성 (예: 이미지 파일 데이터) byte[] imageData = ... // 이미지 파일 데이터를 바이트 배열로 읽어옴 // 바이너리 데이터를 응답으로 전송 out.write(imageData); // 버퍼에 저장된 데이터를 즉시 전송 out.flush(); // ServletOutputStream 객체 닫기 out.close(); - 이미지 파일 읽는 법까지 쓴 예시
-
// 이미지 파일 경로 String imagePath = "/path/to/image.jpg"; // 파일 객체 생성 File imageFile = new File(imagePath); // 파일 입력 스트림 생성 FileInputStream fileInputStream = new FileInputStream(imageFile); // 바이너리 데이터 저장을 위한 바이트 배열 생성 byte[] imageData = new byte[(int) imageFile.length()]; // 파일 입력 스트림을 통해 이미지 데이터를 바이트 배열로 읽기 fileInputStream.read(imageData); // 파일 입력 스트림 닫기 fileInputStream.close(); // 바이너리 데이터를 응답으로 전송 httpResponse.setContentType("image/jpeg"); ServletOutputStream out = httpResponse.getOutputStream(); out.write(imageData); out.flush(); out.close();
- 클라이언트로 바이너리 데이터(이미지, 파일 다운로드, 동영상 스트리밍)를 전송할 수 있는 ServletOutputStream 객체를 반환한다.
'spring' 카테고리의 다른 글
| @Mock (0) | 2025.02.24 |
|---|---|
| 뉴스피드 트러블슈팅 (0) | 2025.02.16 |
| Bcrypt (0) | 2025.02.10 |
| scheduleJPA 트러블슈팅 (1) | 2025.02.07 |
| @ModelAttribute 와 @RequestBody (1) | 2025.02.05 |