spring

HttpServletResponse 메서드

seungmin576 2025. 2. 12. 14:22
  1. 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");
  2. setCharacterEncoding(String charset)
    • 응답의 문자 인코딩을 설정한다. setContentType에서 charset="UTF-8")을 해주고 이놈도 해줘야 응답이 잘 한글로 나온다.
      • 예시
      • httpResponse.setCharacterEncoding("UTF-8")
  3. 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("요것은 응답을 작성하는데 사용하는 메서드다");
  4. setStatus(int sc)
    • 응답의 상태 코드를 설정한다.
      • 예시
      • httpResponse.setStatus(HttpServletResponse.SC_OK)
  5. sendRedirect(String location)
    • 클라이언트를 지정된 URL로 리다이렉트한다.
      • 예시
      • httpResponse.sendRedirect("https://example.com")
  6. addHeader(String name, String value)
    • 응답에 새로운 헤더를 추가한다.
      • 예시
      • httpResponse.addHeader("Cache-Control", "no-cache")
  7. setHeader(String name, String value)
    • 응답의 지정된 헤더를 설정한다 기존 헤더가 있다면 대체된다
      • 예시
      • httpResponse.setHeader("Content-Type", "application/json")
  8. 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();

 

'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