Http의 헤더 부분을 설정해 보자
메시지 타입 설정
response.setContentType("text/plain") 하면 보낼 메시지의 타입을 설정할 수 있다.
response.setCharacterEncoding("utf-8") 인코딩 방식을 설정할 수 있다.
쿠키 설정 메서드
Cookie cookie = new Cookie("myCookie", "good") 쿠키 객체 생성
cookie.setMaxAge(600); 600초 동안 유지
response.addCookie(cookie) 쿠기 추가하기
redirect 메서드
response.sendRedirect("/basic/hello-form.html"); 현재 페이지가 호출되면 /basic/hello-form.html로 이동한다.
HTTP응답 데이터
단순 텍스트는 getWritet().println()메서드를 통해 보낼 수 있다.
PrintWriter writer = response.getWriter();
writer.println("ok");
서블릿에서 html을 전송하려면 직접 헤더에 타입을 설정한 후 getWriter()메서드를 통해 println()을 해야 한다.
@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>");
}
서블릿으로 JSON을 전송해 보자.
전에 했던 방식과 같게 타입을 application/json으로 설정 후 ObjectMapper() 객체를 사용하면 된다.
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.setHeader("content-type", "application/json");
response.setCharacterEncoding("utf-8");
HelloData data = new HelloData();
data.setUsername("kim");
data.setAge(20);
//{"username":"kim","age":20}
String result = objectMapper.writeValueAsString(data);
response.getWriter().write(result);
}
writeValuesAsString 메서드를 통해 json을 string으로 바꿔준 후 전송한다.
출처 : 스프링MVC 1편 - 백엔드 웹 개발 핵심 기술 김영한
'스프링MVC' 카테고리의 다른 글
MVC패턴 (0) | 2023.08.04 |
---|---|
JSP 사용하기 (0) | 2023.08.02 |
HTTP 요청 데이터 (0) | 2023.08.02 |
서블릿 사용해 보기 (0) | 2023.08.01 |
멀티 쓰레드 (0) | 2023.07.31 |