- HttpServletResponse 역할
- HTTP 응답 메시지 생성
- HTTP 응답코드(상태코드) 지정
- 헤더 생성
- 바디 생성
- 편의 기능 제공
- Content-Type, 쿠키, Redirect
- HTTP 응답 메시지 생성
- HttpServletResponse 기본 사용법
@WebServlet(name="responseHeaderServlet", urlPatterns = "/response-header")
public class ResponseHeaderServlet extends HttpServlet {
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//[status-line] //HTTP 응답코드 지정
resp.setStatus(HttpServletResponse.SC_OK); //resp.setStatus(200); //기본이 200
//[response-headers] //헤더 생성
resp.setHeader("Content-Type", "text/plain;charset=utf-8"); //직접 세팅
resp.setHeader("Cache-Control", "no-cache, no-store, must-revalidate");
resp.setHeader("Pragma", "no-cache");
resp.setHeader("my-header","hello");
//[message body] //메시지 바디 생성
PrintWriter writer = resp.getWriter();
writer.println("안녕."); //단순 텍스트 응답
//[Header 편의 메서드]
content(resp);
cookie(resp);
redirect(resp);
}
/** content 편의 메소드*/
private void content(HttpServletResponse resp) {
/*Content-Type: text/plain;charset=utf-8
Content-Length: 3*/
resp.setContentType("text/plain");
resp.setCharacterEncoding("utf-8");
//resp.setContentLength(3); //생략시 자동 생성
}
/** 쿠키 편의 메소드*/
private void cookie(HttpServletResponse resp) {
/*Set-Cookie: myCookie=good; Max-Age=600;*/
//resp.setHeader("Set-Cookie", "myCookie=good; Max-Age=600"); //직접 세팅
Cookie cookie = new Cookie("myCookie", "good");
cookie.setMaxAge(600); //이 쿠키는 600초동안 유효
resp.addCookie(cookie);
}
- writer.println이라서, Content-Length에 엔터1 추가됐다.
- writer.print("안녕.")이라하면 8나옴
- ResponseHeaderServlet에 추가
/** redirect 편의 메소드*/
private void redirect(HttpServletResponse resp) throws IOException {
/*Status Code 302
Location: /basic/hello-form.html*/
/*
resp.setStatus(HttpServletResponse.SC_FOUND); //302
resp.setHeader("Location", "/basic/hello-form.html");
*/
resp.sendRedirect("/basic/hello-form.html");
}
- http://localhost:8080/basic/hello-form.html로 리다이렉트(이 주소로 다시 호출)한다.
728x90
반응형
'Spring Tutorial' 카테고리의 다른 글
[스프링 MVC 4] 웹 애플리케이션 이해: HTML, HTTP API, CSR, SSR (0) | 2023.07.22 |
---|---|
[스프링 MVC 15] 서블릿: HTTP 응답 데이터 (0) | 2023.07.22 |
[스프링 MVC 13] 서블릿: HTTP 요청 데이터 - API 메시지 바디 (0) | 2023.07.20 |
[스프링 MVC 12] 서블릿: HTTP 요청 데이터 - POST HTML Form (0) | 2023.07.20 |
[스프링 MVC 11] 서블릿: HTTP 요청 데이터 - GET 쿼리 파라미터 (0) | 2023.07.20 |