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

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

by YeonBu 2024. 5. 15.
728x90

 

 

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

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

 

 

 

 

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

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

www.inflearn.com

 

 

 

 

1. HttpServletRequest ๊ฐœ์š”

 

 

1) HttpServletRequest์˜ ์—ญํ• 

 

: ์„œ๋ธ”๋ฆฟ์€ ๊ฐœ๋ฐœ์ž๊ฐ€ HTTP ์š”์ฒญ ๋ฉ”์‹œ์ง€๋ฅผ ํŽธ๋ฆฌํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ฐœ๋ฐœ์ž ๋Œ€์‹ ์— HTTP ์š”์ฒญ ๋ฉ”์‹œ์ง€๋ฅผ ํŒŒ์‹ฑํ•œ๋‹ค.

  ๊ทธ๋ฆฌ๊ณ  ๊ทธ ๊ฒฐ๊ณผ๋ฅผ 'HttpServletRequest' ๊ฐ์ฒด์— ๋‹ด์—์„œ ์ œ๊ณตํ•œ๋‹ค

 

2) HTTP ์š”์ฒญ ๋ฉ”์‹œ์ง€

 

- START LINE : HTTP ๋ฉ”์†Œ๋“œ, URL, ์ฟผ๋ฆฌ ์ŠคํŠธ๋ง, ์Šคํ‚ค๋งˆ, ํ”„๋กœํ† ์ฝœ

- HEADER : ํ—ค๋” ์กฐํšŒ

- BODY : form ํŒŒ๋ผ๋ฏธํ„ฐ ํ˜•์‹ ์กฐํšŒ, mesaage body ๋ฐ์ดํ„ฐ ์ง์ ‘ ์กฐํšŒ

 

3) ๊ทธ ์™ธ ๋ถ€๊ฐ€ ๊ธฐ๋Šฅ

 

โ‘  ์ž„์‹œ ์ €์žฅ์†Œ ๊ธฐ๋Šฅ

 : ํ•ด๋‹น HTTP ์š”์ฒญ์ด ์‹œ์ž‘๋ถ€ํ„ฐ ๋๋‚  ๋•Œ ๊นŒ์ง€ ์œ ์ง€๋˜๋Š” ์ž„์‹œ ์ €์žฅ์†Œ ๊ธฐ๋Šฅ

   - ์ €์žฅ : request.setAttribute(name, value)

   - ์กฐํšŒ : request.getAttribute(name)

 

โ‘ก ์„ธ์…˜๊ด€๋ฆฌ ๊ธฐ๋Šฅ

 : request.getSession(create : ture)

 

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

 

 

1) Start Line ์ •๋ณด ์กฐํšŒ

@WebServlet(name = "requestHeaderServlet", urlPatterns = "/request-header")
public class RequestHeaderServlet extends HttpServlet {

    @Override
    protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        printStartLine(request);// Start Line ์ •๋ณด ๋ถˆ๋Ÿฌ์˜ค๊ธฐ
    }

    private void printStartLine(HttpServletRequest request) {
        System.out.println("--- REQUEST-LINE - start ---");
        System.out.println("request.getMethod() = " + request.getMethod()); //GET
        System.out.println("request.getProtocol() = " + request.getProtocol()); //HTTP/1.1
        System.out.println("request.getScheme() = " + request.getScheme()); //http
        System.out.println("request.getRequestURL() = " + request.getRequestURL()); // http://localhost:8080/request-header
        System.out.println("request.getRequestURI() = " + request.getRequestURI()); // /request-header
        System.out.println("request.getQueryString() = " + request.getQueryString()); //username=hi
        System.out.println("request.isSecure() = " + request.isSecure()); //https ์‚ฌ์šฉ์œ ๋ฌด
        System.out.println("--- REQUEST-LINE - end ---");
        System.out.println();
    }

}

 

 

์œ„ ์ฝ”๋“œ ์‹คํ–‰ ์‹œ ์ฝ˜์†”

 

 

2) Header ์ •๋ณด ์กฐํšŒ

private void printHeaders(HttpServletRequest request) {
    System.out.println("--- Headers - start ---");
    request.getHeaderNames().asIterator()
            .forEachRemaining(headerName -> System.out.println(headerName + ": " + headerName));
    System.out.println("--- Headers - end ---");
    System.out.println();
}

์œ„ ์ฝ”๋“œ ์‹คํ–‰ ์‹œ ์ฝ˜์†”

 

3) Header ํŽธ์˜ ์กฐํšŒ

private void printHeaderUtils(HttpServletRequest request) {
    System.out.println("--- Header ํŽธ์˜ ์กฐํšŒ start ---");
    System.out.println("[Host ํŽธ์˜ ์กฐํšŒ]");
    System.out.println("request.getServerName() = " + request.getServerName()); //Host ํ—ค๋”
    System.out.println("request.getServerPort() = " + request.getServerPort()); //Host ํ—ค๋”
    System.out.println();
    System.out.println("[Accept-Language ํŽธ์˜ ์กฐํšŒ]"); 
    request.getLocales().asIterator()
            .forEachRemaining(locale -> System.out.println("locale = " + locale));
    System.out.println("request.getLocale() = " + request.getLocale());
    System.out.println();
    System.out.println("[cookie ํŽธ์˜ ์กฐํšŒ]");
    if (request.getCookies() != null) {
        for (Cookie cookie : request.getCookies()) {
            System.out.println(cookie.getName() + ": " + cookie.getValue());
        }
    }
    System.out.println();
    System.out.println("[Content ํŽธ์˜ ์กฐํšŒ]");
    System.out.println("request.getContentType() = " + request.getContentType());
    System.out.println("request.getContentLength() = " + request.getContentLength());
    System.out.println("request.getCharacterEncoding() = " + request.getCharacterEncoding());
    System.out.println("--- Header ํŽธ์˜ ์กฐํšŒ end ---");
    System.out.println();
}

์œ„ ์ฝ”๋“œ ์‹คํ–‰ ์‹œ ์ฝ˜์†”

- locale์€ ์›น ๋ธŒ๋ผ์šฐ์ €์— ์„ค์ •๋œ ๊ตญ๊ฐ€์™€ ์–ธ์–ด ์ด๋ฆ„์„ ์•Œ์•„๋‚ด๋Š” ๊ฒƒ์„ ๋งํ•˜๋ฉฐ,

  request.getLocale()์€ ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๊ฐ€์žฅ ๋†’์€๊ฒƒ์„ ๋‚˜ํƒ€๋‚ธ๋‹ค.

 

4) ๊ธฐํƒ€ ์ •๋ณด

private void printEtc(HttpServletRequest request) {
    System.out.println("--- ๊ธฐํƒ€ ์กฐํšŒ start ---");
    System.out.println("[Remote ์ •๋ณด]");
    System.out.println("request.getRemoteHost() = " + request.getRemoteHost()); 
    System.out.println("request.getRemoteAddr() = " + request.getRemoteAddr()); 
    System.out.println("request.getRemotePort() = " + request.getRemotePort()); 
    System.out.println();
    System.out.println("[Local ์ •๋ณด]");
    System.out.println("request.getLocalName() = " + request.getLocalName()); 
    System.out.println("request.getLocalAddr() = " + request.getLocalAddr()); 
    System.out.println("request.getLocalPort() = " + request.getLocalPort()); 
    System.out.println("--- ๊ธฐํƒ€ ์กฐํšŒ end ---");
    System.out.println();
}

 

์œ„ ์ฝ”๋“œ ์‹คํ–‰ ์‹œ ์ฝ˜์†”

- ๊ธฐํƒ€์ •๋ณด๋Š” HTTP ๋ฉ”์‹œ์ง€์˜ ์ •๋ณด๋Š” ์•„๋‹ˆ๋‹ค.

๋ฐ˜์‘ํ˜•