Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 이진탐색
- 오일러 경로
- 기술 통계
- 다형성
- 표본 추출
- 베이지안
- 인터페이스
- 깊이 우선 탐색
- Random variable
- 알고리즘
- PostgreSQL
- 스프링
- 객체 지향 설계
- 분할정복
- 이분탐색
- 너비 우선 탐색
- BFS
- Algorithm
- Solid
- Probability Distribution Function
- 확률변수
- divide and conquer
- spring boot
- dag
- 확률분포함수
- 추론 통계
- 확률분포
- dfs
- 확률
- 재설치
Archives
- Today
- Total
말하는 감자
[스프링부트 스터디] 서블릿 (3) - HttpServletResponse 본문
728x90
HttpServletResponse 기본 사용법
- 응답 메시지 생성: HTTP 응답코드 지정, 헤더 생성, 바디 생성
//[status-line]
response.setStatus(HttpServletResponse.SC_OK);
//200, 숫자로 적기보다는 응답코드의 의미를 알 수 있도록
//[response-headers]
response.setHeader("Content-Type", "text/plain;charset=utf-8");
response.setHeader("Cache-Control", "no-cache, no-store, must-revalidate");
response.setHeader("Pragma", "no-cache");
response.setHeader("my-header", "hello");
//[message body]
PrintWriter writer = response.getWriter();
writer.print("ok");
- 편의기능: content-type, 쿠키, redirect
private void content(HttpServletResponse response) {
//Content-Type: text/plain;charset=utf-8
//Content-Length: 2
//response.setHeader("Content-Type", "text/plain;charset=utf-8");
response.setContentType("text/plain");
response.setCharacterEncoding("utf-8");
//response.setContentLength(2); //(생략시 자동 계산)
}
private void cookie(HttpServletResponse response) {
//Set-Cookie: myCookie=good; Max-Age=600;
//response.setHeader("Set-Cookie", "myCookie=good; Max-Age=600");
Cookie cookie = new Cookie("myCookie", "good");
cookie.setMaxAge(600); //600초 유효
response.addCookie(cookie);
}
private void redirect(HttpServletResponse response) throws IOException {
//Status Code 302
//Location: /basic/hello-form.html
//response.setStatus(HttpServletResponse.SC_FOUND); //302
//response.setHeader("Location", "/basic/hello-form.html");
response.sendRedirect("/basic/hello-form.html");
}
Http 응답 데이터
응답 방식에 세 가지가 있다.
1. 단순 텍스트 응답
2. HTML 응답
3. HTTP API - MessageBody JSON 응답
1. 단순 텍스트 응답
PrintWriter writer = response.getWriter();
writer.print("ok");
2. HTML 응답
- content type을 text/html로 설정
//Content-Type: text/html;charset=utf-8
response.setContentType("text/html");
response.setCharacterEncoding("utf-8");
PrintWriter writer = response.getWriter();
writer.println("<html>");
writer.println("<body>");
writer.println(" <div> 안녕 </div>");
writer.println("</body>");
writer.println("</html>");
3. HTTP API - MessageBody JSON 응답
- content type을 application/json 으로 설정
- jackson 라이브러리의 writeValueAsString 메서드를 사용해 문자열로 바꿀 수 있다.
//Content-Type: application/json
response.setContentType("application/json");
response.setCharacterEncoding("utf-8");
HelloData helloData = new HelloData();
helloData.setUsername("kim");
helloData.setAge(20);
//페이지에 {"username":"kim", "age":20} 로 출력됨
String result = objectMapper.writeValueAsString(helloData);
response.getWriter().write(result);
'Backend' 카테고리의 다른 글
[스프링부트 스터디] MVC 패턴 등장 (0) | 2021.07.27 |
---|---|
[스프링부트 스터디] 서블릿, JSP만으로 간단한 애플리케이션 만들기 (0) | 2021.07.27 |
[스프링부트 스터디] 서블릿 (2) - HttpServletRequest (0) | 2021.07.25 |
[스프링부트 스터디] 서블릿 (1) (0) | 2021.07.22 |
[스프링부트 스터디] 스프링 DB 접근 기술 (0) | 2021.07.21 |
Comments