[์Šคํ”„๋ง MVC] - 5. ์„œ๋ธ”๋ฆฟ๊ณผ JSP์˜ ํ•œ๊ณ„ / MVC ํŒจํ„ด์˜ ๋“ฑ์žฅ

2023. 2. 13. 16:35ยทSpring/Spring MVC

 

์„œ๋ธ”๋ฆฟ์œผ๋กœ ํšŒ์› ๊ด€๋ฆฌ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋งŒ๋“ค๊ธฐ

 

@WebServlet(name = "memberSaveServlet",urlPatterns = "/servlet/members/save")
public class MemberSaveServlet extends HttpServlet {

    private MemberRepository memberRepository = MemberRepository.getInstance();

    @Override
    protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        System.out.println("MemberSaveServlet.service");
        String username = request.getParameter("username");
        int age = Integer.parseInt(request.getParameter("age"));

        Member member = new Member(username, age);
        System.out.println("member = " + member);
        memberRepository.save(member);

        response.setContentType("text/html");
        response.setCharacterEncoding("utf-8");

        PrintWriter w = response.getWriter();
        w.write("<html>\n" +
                "<head>\n" +
                " <meta charset=\"UTF-8\">\n" + "</head>\n" +
                "<body>\n" +
                "์„ฑ๊ณต\n" +
                "<ul>\n" +
                "    <li>id="+member.getId()+"</li>\n" +
                "    <li>username="+member.getUsername()+"</li>\n" +
                " <li>age="+member.getAge()+"</li>\n" + "</ul>\n" +
                "<a href=\"/index.html\">๋ฉ”์ธ</a>\n" + "</body>\n" +
                "<a href=\"/servlet/members\">๋ฉค๋ฒ„ ๋ชฉ๋ก</a>\n" + "</body>\n" +
                "<a href=\"/servlet/members/new-form\">๋ฉค๋ฒ„ ์ถ”๊ฐ€</a>\n" + "</body>\n" +
                "</html>");

 

 

์„œ๋ธ”๋ฆฟ ๋•๋ถ„์— ๋™์ ์œผ๋กœ ์›ํ•˜๋Š” HTML์„ ๋งˆ์Œ๊ป ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค.

 


๊ทธ๋Ÿฐ๋ฐ, ์ฝ”๋“œ์—์„œ ๋ณด๋“ฏ์ด ์ด๊ฒƒ์€ ๋งค์šฐ ๋ณต์žกํ•˜๊ณ  ๋น„ํšจ์œจ์ ์ด๋‹ค.

 

์ž๋ฐ” ์ฝ”๋“œ๋กœ HTML์„ ๋งŒ๋“ค์–ด ๋‚ด๋Š” ๊ฒƒ ๋ณด๋‹ค

 

์ฐจ๋ผ๋ฆฌ HTML ๋ฌธ์„œ์— ๋™์ ์œผ๋กœ ๋ณ€๊ฒฝํ•ด์•ผ ํ•˜๋Š” ๋ถ€๋ถ„๋งŒ ์ž๋ฐ” ์ฝ”๋“œ๋ฅผ ๋„ฃ์„ ์ˆ˜ ์žˆ๋‹ค๋ฉด ๋” ํŽธ๋ฆฌํ•  ๊ฒƒ์ด๋‹ค.

 

์ด๊ฒƒ์ด ๋ฐ”๋กœ ํ…œํ”Œ๋ฆฟ ์—”์ง„์ด ๋‚˜์˜จ ์ด์œ ์ด๋‹ค.

 

ํ…œํ”Œ๋ฆฟ ์—”์ง„์„ ์‚ฌ์šฉํ•˜๋ฉด HTML ๋ฌธ์„œ์—์„œ ํ•„์š”ํ•œ ๊ณณ๋งŒ ์ฝ”๋“œ๋ฅผ ์ ์šฉํ•ด์„œ ๋™์ ์œผ๋กœ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๋‹ค.

 

 

JSP๋กœ ํšŒ์› ๊ด€๋ฆฌ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋งŒ๋“ค๊ธฐ

 

<%@ page import="hello.servlet.domain.member.MemberRepository" %>
  <%@ page import="hello.servlet.domain.member.Member" %>
  <%@ page contentType="text/html;charset=UTF-8" language="java" %>

<%

MemberRepository memberRepository = MemberRepository.getInstance();

    System.out.println("MemberSaveServlet.service");
    String username = request.getParameter("username");
    int age = Integer.parseInt(request.getParameter("age"));

    Member member = new Member(username, age);
    memberRepository.save(member);

%>
<html>
<head>
    <title>Title</title>
</head>
<body>
์„ฑ๊ณต
<ul>
    <li>id=<%=member.getId()%></li>
    <li>username=<%=member.getUsername()%></li>
    <li>age=<%=member.getAge()%></li>
</ul>
<a href="/index.html">๋ฉ”์ธ</a>
</body>
</html>

 

ํšŒ์› ์ €์žฅ JSP๋ฅผ ๋ณด๋ฉด, ํšŒ์› ์ €์žฅ ์„œ๋ธ”๋ฆฟ ์ฝ”๋“œ์™€ ๊ฐ™๋‹ค.

 

๋‹ค๋ฅธ ์ ์ด ์žˆ๋‹ค๋ฉด, HTML์„ ์ค‘์‹ฌ์œผ๋กœ ํ•˜๊ณ , ์ž๋ฐ” ์ฝ”๋“œ๋ฅผ ๋ถ€๋ถ„๋ถ€๋ถ„ ์ž…๋ ฅํ•ด์ฃผ์—ˆ๋‹ค.

 

<% ~ %> ๋ฅผ ์‚ฌ์šฉํ•ด์„œ HTML ์ค‘๊ฐ„์— ์ž๋ฐ” ์ฝ”๋“œ๋ฅผ ์ถœ๋ ฅํ•˜๊ณ  ์žˆ๋‹ค.

 

 

 

 

์„œ๋ธ”๋ฆฟ๊ณผ JSP์˜ ํ•œ๊ณ„

 

์„œ๋ธ”๋ฆฟ์œผ๋กœ ๊ฐœ๋ฐœํ•  ๋•Œ๋Š” ๋ทฐ(View)ํ™”๋ฉด์„ ์œ„ํ•œ HTML์„ ๋งŒ๋“œ๋Š” ์ž‘์—…์ด ์ž๋ฐ” ์ฝ”๋“œ์— ์„ž์—ฌ์„œ ์ง€์ €๋ถ„ํ•˜๊ณ  ๋ณต์žกํ–ˆ๋‹ค.


JSP
๋ฅผ ์‚ฌ์šฉํ•œ ๋•๋ถ„์— ๋ทฐ๋ฅผ ์ƒ์„ฑํ•˜๋Š” HTML ์ž‘์—…์„ ๊น”๋”ํ•˜๊ฒŒ ๊ฐ€์ ธ๊ฐ€๊ณ ,

 

์ค‘๊ฐ„์ค‘๊ฐ„ ๋™์ ์œผ๋กœ ๋ณ€๊ฒฝ์ด ํ•„์š”ํ•œ ๋ถ€๋ถ„์—๋งŒ ์ž๋ฐ” ์ฝ”๋“œ๋ฅผ ์ ์šฉํ–ˆ๋‹ค.

 

๊ทธ๋Ÿฐ๋ฐ ์ด๋ ‡๊ฒŒ ํ•ด๋„ ํ•ด๊ฒฐ๋˜์ง€ ์•Š๋Š” ๋ช‡๊ฐ€์ง€ ๊ณ ๋ฏผ์ด ๋‚จ๋Š”๋‹ค.

 

ํšŒ์› ์ €์žฅ JSP๋ฅผ ๋ณด์ž. ์ฝ”๋“œ์˜ ์ƒ์œ„ ์ ˆ๋ฐ˜์€ ํšŒ์›์„ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•œ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์ด๊ณ ,

 

๋‚˜๋จธ์ง€ ํ•˜์œ„ ์ ˆ๋ฐ˜๋งŒ ๊ฒฐ๊ณผ๋ฅผ HTML๋กœ ๋ณด์—ฌ์ฃผ๊ธฐ ์œ„ํ•œ ๋ทฐ ์˜์—ญ์ด๋‹ค. ํšŒ์› ๋ชฉ๋ก์˜ ๊ฒฝ์šฐ์—๋„ ๋งˆ์ฐฌ๊ฐ€์ง€๋‹ค.


์ฝ”๋“œ๋ฅผ ์ž˜ ๋ณด๋ฉด, JAVA ์ฝ”๋“œ, ๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒํ•˜๋Š” ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ๋“ฑ๋“ฑ ๋‹ค์–‘ํ•œ ์ฝ”๋“œ๊ฐ€ ๋ชจ๋‘ JSP์— ๋…ธ์ถœ๋˜์–ด ์žˆ๋‹ค.

 

JSP๊ฐ€ ๋„ˆ๋ฌด ๋งŽ์€ ์—ญํ• ์„ ํ•œ๋‹ค.

 

 

 

 

MVC ํŒจํ„ด์˜ ๋“ฑ์žฅ

 

 

ํ•˜๋‚˜์˜ ์„œ๋ธ”๋ฆฟ์ด๋‚˜ JSP๋งŒ์œผ๋กœ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง๊ณผ ๋ทฐ ๋ Œ๋”๋ง๊นŒ์ง€ ๋ชจ๋‘ ์ฒ˜๋ฆฌํ•˜๊ฒŒ ๋˜๋ฉด,

 

๋„ˆ๋ฌด ๋งŽ์€ ์—ญํ• ์„ ํ•˜๊ฒŒ๋˜๊ณ , ๊ฒฐ๊ณผ์ ์œผ๋กœ ์œ ์ง€๋ณด์ˆ˜๊ฐ€ ์–ด๋ ค์›Œ์ง„๋‹ค.

 

 

๋ณ€๊ฒฝ์˜ ๋ผ์ดํ”„ ์‚ฌ์ดํด

 

์˜ˆ๋ฅผ ๋“ค์–ด์„œ UI ๋ฅผ ์ผ๋ถ€ ์ˆ˜์ •ํ•˜๋Š” ์ผ๊ณผ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ์ˆ˜์ •ํ•˜๋Š” ์ผ์€

 

๊ฐ๊ฐ ๋‹ค๋ฅด๊ฒŒ ๋ฐœ์ƒํ•  ๊ฐ€๋Šฅ์„ฑ์ด ๋งค์šฐ ๋†’๊ณ  ๋Œ€๋ถ€๋ถ„ ์„œ๋กœ์—๊ฒŒ ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š๋Š”๋‹ค.

 

์ด๋ ‡๊ฒŒ ๋ณ€๊ฒฝ์˜ ๋ผ์ดํ”„ ์‚ฌ์ดํด์ด ๋‹ค๋ฅธ ๋ถ€๋ถ„์„ ํ•˜๋‚˜์˜ ์ฝ”๋“œ๋กœ ๊ด€๋ฆฌํ•˜๋Š” ๊ฒƒ์€ ์œ ์ง€๋ณด์ˆ˜ํ•˜๊ธฐ ์ข‹์ง€ ์•Š๋‹ค. 

 

 

๊ธฐ๋Šฅ ํŠนํ™”

 

ํŠนํžˆ JSP ๊ฐ™์€ ๋ทฐ ํ…œํ”Œ๋ฆฟ์€ ํ™”๋ฉด์„ ๋ Œ๋”๋ง ํ•˜๋Š”๋ฐ ์ตœ์ ํ™” ๋˜์–ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด ๋ถ€๋ถ„์˜ ์—…๋ฌด๋งŒ ๋‹ด๋‹นํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€์žฅ ํšจ๊ณผ์ ์ด๋‹ค.

 

๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์€ ์„œ๋ธ”๋ฆฟ ์ฒ˜๋Ÿผ ๋‹ค๋ฅธ๊ณณ์—์„œ ์ฒ˜๋ฆฌํ•˜๊ณ ,

 

JSP๋Š” ๋ชฉ์ ์— ๋งž๊ฒŒ HTML๋กœ ํ™”๋ฉด(View)์„ ๊ทธ๋ฆฌ๋Š” ์ผ์— ์ง‘์ค‘ํ•˜๋„๋ก ํ•˜์ž.

 

 

 

 

MVC(Model View Controller)

 

 

ํ•˜๋‚˜์˜ ์„œ๋ธ”๋ฆฟ์ด๋‚˜, JSP๋กœ ์ฒ˜๋ฆฌํ•˜๋˜ ๊ฒƒ์„ ์ปจํŠธ๋กค๋Ÿฌ(Controller)์™€ ๋ทฐ(View)๋ผ๋Š” ์˜์—ญ์œผ๋กœ ์„œ๋กœ ์—ญํ• ์„ ๋‚˜๋ˆˆ ๊ฒƒ์„ ๋งํ•œ๋‹ค.

 

์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ๋ณดํ†ต ์ด MVC ํŒจํ„ด์„ ์‚ฌ์šฉํ•œ๋‹ค.

 

 

 

์ปจํŠธ๋กค๋Ÿฌ: HTTP ์š”์ฒญ์„ ๋ฐ›์•„์„œ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ๊ฒ€์ฆํ•˜๊ณ , ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ์‹คํ–‰ํ•œ๋‹ค.

 

๊ทธ๋ฆฌ๊ณ  ๋ทฐ์— ์ „๋‹ฌํ•  ๊ฒฐ๊ณผ ๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒํ•ด์„œ ๋ชจ๋ธ์— ๋‹ด๋Š”๋‹ค.

 


๋ชจ๋ธ: ๋ทฐ์— ์ถœ๋ ฅํ•  ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ด์•„๋‘”๋‹ค. ๋ทฐ๊ฐ€ ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ชจ๋‘ ๋ชจ๋ธ์— ๋‹ด์•„์„œ ์ „๋‹ฌํ•ด์ฃผ๋Š” ๋•๋ถ„์—

 

๋ทฐ๋Š” ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์ด๋‚˜ ๋ฐ์ดํ„ฐ ์ ‘๊ทผ์„ ๋ชฐ๋ผ๋„ ๋˜๊ณ , ํ™”๋ฉด์„ ๋ Œ๋”๋ง ํ•˜๋Š” ์ผ์— ์ง‘์ค‘ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

 

๋ทฐ: ๋ชจ๋ธ์— ๋‹ด๊ฒจ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉํ•ด์„œ ํ™”๋ฉด์„ ๊ทธ๋ฆฌ๋Š” ์ผ์— ์ง‘์ค‘ํ•œ๋‹ค. ์—ฌ๊ธฐ์„œ๋Š” HTML์„ ์ƒ์„ฑํ•˜๋Š” ๋ถ€๋ถ„์„ ๋งํ•œ๋‹ค.

 

 

 

 

 

 

 

 

 

 

https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-mvc-1/dashboard

 

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

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

www.inflearn.com

 

 

์ €์ž‘์žํ‘œ์‹œ (์ƒˆ์ฐฝ์—ด๋ฆผ)

'Spring > Spring MVC' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[์Šคํ”„๋ง MVC] - 7. ํ”„๋ก ํŠธ ์ปจํŠธ๋กค๋Ÿฌ  (0) 2023.02.14
[์Šคํ”„๋ง MVC] - 6. MVC ํŒจํ„ด - ์ ์šฉ , ํ•œ๊ณ„  (0) 2023.02.13
[์Šคํ”„๋ง MVC] - 4. HTTP ์‘๋‹ต ๋ฐ์ดํ„ฐ ( ํ…์ŠคํŠธ / HTML / API )  (1) 2023.02.12
[์Šคํ”„๋ง MVC] - 3. HTTP ์š”์ฒญ ๋ฐ์ดํ„ฐ ( GET / POST / API )  (0) 2023.02.12
[์Šคํ”„๋ง MVC] - 2. ์„œ๋ธ”๋ฆฟ ๋“ฑ๋กํ•˜๊ณ  ์‚ฌ์šฉํ•˜๊ธฐ  (0) 2023.02.11
'Spring/Spring MVC' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [์Šคํ”„๋ง MVC] - 7. ํ”„๋ก ํŠธ ์ปจํŠธ๋กค๋Ÿฌ
  • [์Šคํ”„๋ง MVC] - 6. MVC ํŒจํ„ด - ์ ์šฉ , ํ•œ๊ณ„
  • [์Šคํ”„๋ง MVC] - 4. HTTP ์‘๋‹ต ๋ฐ์ดํ„ฐ ( ํ…์ŠคํŠธ / HTML / API )
  • [์Šคํ”„๋ง MVC] - 3. HTTP ์š”์ฒญ ๋ฐ์ดํ„ฐ ( GET / POST / API )
hello_u
hello_u
  • hello_u
    ๐Ÿ˜œ
    hello_u
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
    • ๐Ÿ˜œ (345)
      • Hardware (2)
        • BMC (2)
      • Spring (109)
        • Spring ์ž…๋ฌธ (20)
        • Spring ๊ธฐ๋ณธ (27)
        • Spring MVC (18)
        • Spring DB (22)
        • Spring JPA ๊ธฐ๋ณธ (16)
        • Spring JPA ํ™œ์šฉ (6)
      • Develop (27)
        • DB (8)
        • JAVA (4)
        • Web (2)
        • Python (7)
        • OSS (2)
        • Git (2)
        • API (2)
      • Algorithm (155)
        • CodeUp ๊ธฐ์ดˆ (44)
        • ํŒŒ์ด์ฌ ์ฝ”๋”ฉํ…Œ์ŠคํŠธ (64)
        • ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค (4)
        • SWEA (30)
        • Softeer (10)
        • BOJ (2)
      • CS (9)
        • ์ปดํ“จํ„ฐ์ผ๋ฐ˜ (3)
        • ์šด์˜์ฒด์ œ (3)
        • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค (0)
        • ์ •๋ณดํ†ต์‹  (1)
        • ์ž๋ฃŒ๊ตฌ์กฐ (1)
        • ์†Œํ”„ํŠธ์›จ์–ด ๊ณตํ•™ (1)
        • ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด (0)
        • ์ตœ์‹  ๋””์ง€ํ„ธ, ์ผ๋ฐ˜์ƒ์‹ (0)
      • ์ž๊ฒฉ์ฆ (41)
        • ์ •๋ณด๋ณด์•ˆ๊ธฐ์‚ฌ (9)
        • ์ •๋ณด์ฒ˜๋ฆฌ๊ธฐ์‚ฌ (22)
        • ๋ฆฌ๋ˆ…์Šค๋งˆ์Šคํ„ฐ 1๊ธ‰ (3)
        • SQLD (7)
  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.3
hello_u
[์Šคํ”„๋ง MVC] - 5. ์„œ๋ธ”๋ฆฟ๊ณผ JSP์˜ ํ•œ๊ณ„ / MVC ํŒจํ„ด์˜ ๋“ฑ์žฅ
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”