HTTP 응답 코드 (400 등)
헤더 생성
메시지 바디 생성
편의기능
쿠키, Content-type, 리다이렉트 등
@WebServlet(name="responseHeaderServlet", urlPatterns = "/response-header")
public class ResponseHeaderServlet extends HttpServlet {
@Override
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//start-line
response.setStatus(HttpServletResponse.SC_OK);
//header
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");
//body
PrintWriter writer = response.getWriter();
writer.println("ok");
//편의메서드
content(response);
cookie(response);
redirect(response);
}
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");
}
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);
response.addCookie(cookie);
}
private void redirect(HttpServletResponse response) throws IOException {
//Status Code 302
//Location: /basic/hello-form.html
//response.setStatus(HttpServletResponse.SC_FOUND);
//response.setHeader("Location", "/basic/hello-form.html");
response.sendRedirect("/basic/hello-form.html");
}
}
SC는 상태코드의 준말. 저거 그냥 response.setStatus(300) 이런 식으로 넣어도 됨.
헤더 저런 식으로 "키", "벨류"로 설정 및 생성
그리고 자기 마음데로 임의의 헤더 생성할 수 있음. myHeader
바디는 getWriter() 해서. 거기다가 write()나 print() 등등
편의메서드
response.setContentType(" ") 저런 식으로 가능
response.setCharacterEncoding("utf-8") 이런 식으로 가능.
쿠키도 response.setHeader("Set-Cookie", "~~~");
이렇게 말고,
쿠키 생성해서, 그 쿠키에 유효기간 설정하고,
response에 쿠키 추가해 주면 됨.
리다이렉트도 쉬움.
굳이 setHeader하고 상태코드 설정 안해도,
response.sendRedirect("경로") 해주면, 상태코드도 알아서 리다이렉트 상태코드인 302로 해주고,
저렇게 리다이렉트 할 Location 추가해 줌.
'스프링 > 3. 스프링 MVC' 카테고리의 다른 글
16. HTTP 응답 HTTP API - JSON (0) | 2023.08.05 |
---|---|
15. http 응답 방식 (0) | 2023.08.05 |
13. HTTP API JSON (0) | 2023.08.04 |
12. HTTP API 요청 데이터 (0) | 2023.08.04 |
11. html form, POST 요청 정보. (0) | 2023.08.04 |