Spring Tutorial
[스프링 MVC 14] 서블릿: HttpServletResponse
미소5
2023. 7. 21. 12:47
728x90
반응형
- 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
반응형