๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
IT/Spring

[์ธํ”„๋Ÿฐ - ์Šคํ”„๋ง MVC 1ํŽธ] HttpServletResponse ๊ธฐ๋ณธ ์‚ฌ์šฉ๋ฒ•

by YeonBu 2024. 5. 18.
728x90

 

 

/* ์ด ๊ธ€์€ ๊น€์˜ํ•œ๋‹˜์˜ ๊ฐ•์˜๋ฅผ ๋ณด๊ณ  ์ •๋ฆฌํ•˜๋ ค๊ณ  ์ž‘์„ฑํ•œ ๊ธ€์ž…๋‹ˆ๋‹ค.

   ๊ฐœ์ธ์ ์ธ ๊ณต๋ถ€๋ฅผ ์œ„ํ•ด ์˜ฌ๋ฆฌ๋Š” ๊ธ€์ด๋ฏ€๋กœ ์ค‘๊ฐ„ ์ค‘๊ฐ„ ์ฝ”๋“œ๋Š” ์ƒ๋žต๋˜์—ˆ์Šต๋‹ˆ๋‹ค. */

 

 

 

์Šคํ”„๋ง MVC 1ํŽธ - ๋ฐฑ์—”๋“œ ์›น ๊ฐœ๋ฐœ ํ•ต์‹ฌ ๊ธฐ์ˆ  | ๊น€์˜ํ•œ - ์ธํ”„๋Ÿฐ

๊น€์˜ํ•œ | ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ฐœ๋ฐœํ•  ๋•Œ ํ•„์š”ํ•œ ๋ชจ๋“  ์›น ๊ธฐ์ˆ ์„ ๊ธฐ์ดˆ๋ถ€ํ„ฐ ์ดํ•ดํ•˜๊ณ , ์™„์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์Šคํ”„๋ง MVC์˜ ํ•ต์‹ฌ ์›๋ฆฌ์™€ ๊ตฌ์กฐ๋ฅผ ์ดํ•ดํ•˜๊ณ , ๋” ๊นŠ์ด์žˆ๋Š” ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ์ž๋กœ ์„ฑ์žฅํ•  ์ˆ˜ ์žˆ์Šต

www.inflearn.com

 

 

 

 

 

1. HttpServletResponse ์—ญํ• 

 

1) HTTP ์‘๋‹ต ๋ฉ”์‹œ์ง€ ์ƒ์„ฑ

 - HTTP ์‘๋‹ต ์ฝ”๋“œ ์ง€์ •

 - ํ—ค๋” ์ƒ์„ฑ

 - ๋ฐ”๋”” ์ƒ์„ฑ

 

2) ํŽธ์˜ ๊ธฐ๋Šฅ ์ œ๊ณต

 - Content-Type, ์ฟ ํ‚ค, Redirect

 

 

 

2. HttpServletResponse ๊ธฐ๋ณธ ์‚ฌ์šฉ๋ฒ•

 

1) ๊ธฐ๋ณธ ์‚ฌ์šฉ

@WebServlet(name = "responseHeaderServlet", urlPatterns = "/response-header")
public class ResponseHeaderServlet extends HttpServlet {

    @Override
    protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // [status-line]
        response.setStatus(HttpServletResponse.SC_OK);

        // [response-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"); // ์‚ฌ์šฉ์ž ์ž„์˜ ํ—ค๋”

	// [message body]
        response.getWriter().println("OK");

    }
}

 

 

- response.setStatus ์‘๋‹ต ์ฝ”๋“œ๋Š” 200, 400 ๋“ฑ ์ˆซ์ž๋กœ ์ ์–ด๋„ ๋˜์ง€๋งŒ SC_OK, SC_BAD_REQUEST, SC_NOT_FOUND ๋“ฑ

  ์ƒ์ˆ˜๊ฐ€ ์ง€์ •๋˜์–ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ƒ์ˆ˜๋ฅผ ์จ์ฃผ๋Š” ๊ฒƒ์ด ์ข‹๋‹ค.

 

 

2) content, cookie, redirect  ํŽธ์˜ ๋ฉ”์„œ๋“œ

@WebServlet(name = "responseHeaderServlet", urlPatterns = "/response-header")
public class ResponseHeaderServlet extends HttpServlet {

    @Override
    protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // [status-line]
        response.setStatus(HttpServletResponse.SC_OK);
		
        // [Header ํŽธ์˜ ๋ฉ”์„œ๋“œ]
        content(response);
        cookie(response);
        redirect(response);
		
        // [message body]
        response.getWriter().println("OK");

    }

    private void content(HttpServletResponse response) {
        response.setContentType("text/plain");
        response.setCharacterEncoding("utf-8");
        //response.setContentLength(2); //(์ƒ๋žต์‹œ ์ž๋™ ์ƒ์„ฑ)
    }

    private void cookie(HttpServletResponse response) {
        Cookie cookie = new Cookie("myCookie", "good");
        cookie.setMaxAge(600); //600์ดˆ
        response.addCookie(cookie);
    }
    
    private void redirect(HttpServletResponse response) throws IOException {
        //response.setStatus(HttpServletResponse.SC_FOUND); //302
        //response.setHeader("Location", "/basic/hello-form.html");
        response.sendRedirect("/basic/hello-form.html");
    }
    
}

 

๊ฐœ๋ฐœ์ž๋ชจ๋“œ๋กœ ํ™•์ธ์‹œ redirect๊นŒ์ง€ ์ž˜ ๋˜๋Š”๊ฑธ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค

 

๋ฐ˜์‘ํ˜•