HttpServletResponse 역할
Http 응답 메시지 생성 : HTTP 응답코드 지정, 헤더, 바디 생성
편의 기능 제공 : Content-Type, 쿠키, Redirect
Content 편의 메서드
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);
}
redirect 편의 메서드
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 응답 데이터 - 단순 텍스트 , HTML
단순 텍스트 응답 : writer.println("ok");
HTML 응답
@WebServlet(name="responseHtmlServlet", urlPatterns = "/response-html")
public class ResponseHtmlServlet extends HttpServlet {
@Override
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//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>");
}
}
HTML 반환할 때는 content-type을 text/html로 지정해야 함
Http 응답 데이터 - API JSON
@WebServlet(name = "responseJsonServlet", urlPatterns = "/response-json")
public class ResponseJsonServlet extends HttpServlet {
private ObjectMapper objectMapper = new ObjectMapper();
@Override
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//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);
}
JSON 반환할 때는 content-type을 application/json으로 지정해야 함
objectMapper.writeValueAsString() 을 사용하면 객체를 JSON 문자로 변경 가능
'BackEnd : Spring > Spring MVC' 카테고리의 다른 글
[Spring MVC] FrontController : 뷰 분리하기 (0) | 2024.04.06 |
---|---|
[Spring MVC] FrontController 패턴 생성하기 (0) | 2024.04.06 |
[Spring MVC] HTTP 요청 데이터 (0) | 2024.03.20 |
[Spring MVC] HelloServlet, HttpServletRequest (0) | 2024.03.20 |
[Spring MVC] 자바 백엔드 웹 기술 역사 (1) | 2024.03.16 |