Spring MVC-1 TIL (4)

YulHee Kimยท2021๋…„ 9์›” 8์ผ
0

Spring MVC

๋ชฉ๋ก ๋ณด๊ธฐ
4/11
post-thumbnail

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

๐Ÿ’ก ์„œ๋ธ”๋ฆฟ, JSP, MVC ํŒจํ„ด

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

์„œ๋ธ”๋ฆฟ์œผ๋กœ ๊ฐœ๋ฐœํ•  ๋•Œ๋Š” ๋ทฐ(View)ํ™”๋ฉด์„ ์œ„ํ•œ HTML์„ ๋งŒ๋“œ๋Š” ์ž‘์—…์ด ์ž๋ฐ” ์ฝ”๋“œ์— ์„ž์—ฌ์„œ ์ง€์ €๋ถ„ํ•˜๊ณ  ๋ณต์žกํ–ˆ๋‹ค.
JSP๋ฅผ ์‚ฌ์šฉํ•œ ๋•๋ถ„์— ๋ทฐ๋ฅผ ์ƒ์„ฑํ•˜๋Š” 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" %>
<%
   // request, response ์‚ฌ์šฉ ๊ฐ€๋Šฅ
MemberRepository memberRepository = MemberRepository.getInstance();
System.out.println("save.jsp");
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);
%>
<html>
<head>
    <meta charset="UTF-8">
</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>

์ด ์ฝ”๋“œ๋ฅผ ๋ณด๋ฉด ์ฝ”๋“œ ์ƒ์œ„ ์ ˆ๋ฐ˜์€ ํšŒ์›์„ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•œ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์ด๊ณ  ๋‚˜๋จธ์ง€๋Š” HTML ๋ทฐ ์˜์—ญ์ด๋‹ค.
java์ฝ”๋“œ, ๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒํ•˜๋Š” ์ฝ”๋“œ ๋ชจ๋‘๊ฐ€ JSP์— ๋…ธ์ถœ๋˜์–ด ์žˆ๋‹ค.
JSP ์ฝ”๋“œ ์ž์ฒด๊ฐ€ ๋ฌด๊ฒ๊ณ  ๋„ˆ๋ฌด ๋งŽ์€ ์—ญํ• ์„ ํ•˜๊ธฐ์— ์œ ์ง€๋ณด์ˆ˜๊ฐ€ ์ •๋ง ์–ด๋ ต๋‹ค.

๊ทธ๋ž˜์„œ MVC ํŒจํ„ด์ด ๋“ฑ์žฅํ–ˆ๋‹ค ๐Ÿง
๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์€ ์„œ๋ธ”๋ฆฟ์ฒ˜๋Ÿผ ๋‹ค๋ฅธ ๊ณณ์—์„œ ์ฒ˜๋ฆฌํ•˜๊ณ , JSP๋Š” ๋ชฉ์ ์— ๋งž๊ฒŒ HTML๋กœ ํ™”๋ฉด์„ ๋ณด์—ฌ์ฃผ๋Š” ์ผ์— ์ง‘์ค‘ํ•œ๋‹ค. ํ•œ๋ฒˆ mvcํŒจํ„ด์„ ์ ์šฉํ•˜์—ฌ ํ”„๋กœ์ ํŠธ๋ฅผ ๋ฆฌํŒฉํ† ๋ง ํ•˜๊ฒ ๋‹ค.

โœ๏ธ MVC ํŒจํ„ด - ๊ฐœ์š”

๋„ˆ๋ฌด ๋งŽ์€ ์—ญํ• 

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

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

UI์˜ ์ผ๋ถ€๋ฅผ ์ˆ˜์ •ํ•˜๋Š” ์ผ๊ณผ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ์ˆ˜์ •ํ•˜๋Š” ์ผ์€ ๊ฐ๊ฐ ๋‹ค๋ฅด๊ฒŒ ๋ฐœ์ƒํ•  ๊ฐ€๋Šฅ์„ฑ์ด ๋งค์šฐ ๋†’๊ณ  ๋Œ€๋ถ€๋ถ„ ์„œ๋กœ์—๊ฒŒ ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š์œผ๋ฏ€๋กœ, ๋ณ€๊ฒฝ ๋ผ์ดํ”„ ์‚ฌ์ดํด์ด ๋‹ค๋ฅธ ๋ถ€๋ถ„์„ ํ•˜๋‚˜์˜ ์ฝ”๋“œ๋กœ ๊ด€๋ฆฌํ•˜๋Š” ๊ฒƒ์€ ์œ ์ง€๋ณด์ˆ˜ํ•˜๊ธฐ ์ข‹์ง€ ์•Š๋‹ค.

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

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

Model View Controller

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

์ปจํŠธ๋กค๋Ÿฌ

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

๋ชจ๋ธ

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

๋ทฐ

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

โœ๏ธ MVC ํŒจํ„ด - ์ ์šฉ

์„œ๋ธ”๋ฆฟ์„ ์ปจํŠธ๋กค๋Ÿฌ๋กœ ์‚ฌ์šฉํ•˜๊ณ , JSP๋ฅผ ๋ทฐ๋กœ ์‚ฌ์šฉํ•ด์„œ MVC ํŒจํ„ด์„ ์ ์šฉํ•ด๋ณด์ž.
Model์€ HttpServletRequest ๊ฐ์ฒด๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.
request๋Š” ๋‚ด๋ถ€์— ๋ฐ์ดํ„ฐ ์ €์žฅ์†Œ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋Š”๋ฐ, request.setAttribute(), request.getAttribute()๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๊ด€ํ•˜๊ณ  ์กฐํšŒํ•  ์ˆ˜ ์žˆ๋‹ค.

ํšŒ์› ๋“ฑ๋ก

ํšŒ์›๋“ฑ๋ก ํผ - ์ปจํŠธ๋กค๋Ÿฌ

 @WebServlet(name = "mvcMemberFormServlet", urlPatterns = "/servlet-mvc/members/
  new-form")
public class MvcMemberFormServlet extends HttpServlet {

      @Override
      protected void service(HttpServletRequest request, HttpServletResponse response)
              throws ServletException, IOException {
              
          String viewPath = "/WEB-INF/views/new-form.jsp";
          RequestDispatcher dispatcher = request.getRequestDispatcher(viewPath);
          dispatcher.forward(request, response);
      } 
}

๐Ÿ“ dispatcher.forward() : ๋‹ค๋ฅธ ์„œ๋ธ”๋ฆฟ์ด๋‚˜ JSP๋กœ ์ด๋™ํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์ด๋‹ค. ์„œ๋ฒ„ ๋‚ด๋ถ€์—์„œ ๋‹ค์‹œ ํ˜ธ์ถœ์ด ๋ฐœ์ƒํ•œ๋‹ค.

๐Ÿ“ /WEB-INF :์ด ๊ฒฝ๋กœ ์•ˆ์— JSP๊ฐ€ ์žˆ์œผ๋ฉด ์™ธ๋ถ€์—์„œ ์ง์ ‘ JSP๋ฅผ ํ˜ธ์ถœํ•  ์ˆ˜ ์—†๋‹ค. ์šฐ๋ฆฌ๊ฐ€ ๊ธฐ๋Œ€ํ•˜๋Š” ๊ฒƒ์€ ํ•ญ์ƒ ์ปจํŠธ๋กค๋Ÿฌ๋ฅผ ํ†ตํ•ด์„œ JSP๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

๐Ÿ“ redirect vs forward
๋ฆฌ๋‹ค์ด๋ ‰ํŠธ๋Š” ์‹ค์ œ ํด๋ผ์ด์–ธํŠธ(์›น ๋ธŒ๋ผ์šฐ์ €)์— ์‘๋‹ต์ด ๋‚˜๊ฐ”๋‹ค๊ฐ€, ํด๋ผ์ด์–ธํŠธ๊ฐ€ redirect ๊ฒฝ๋กœ๋กœ ๋‹ค์‹œ ์š”์ฒญํ•œ๋‹ค. ๋”ฐ๋ผ์„œ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์ธ์ง€ํ•  ์ˆ˜ ์žˆ๊ณ , URL ๊ฒฝ๋กœ๋„ ์‹ค์ œ๋กœ ๋ณ€๊ฒฝ๋œ๋‹ค. ๋ฐ˜๋ฉด์— ํฌ์›Œ๋“œ๋Š” ์„œ๋ฒ„ ๋‚ด๋ถ€์—์„œ ์ผ์–ด๋‚˜๋Š” ํ˜ธ์ถœ์ด๊ธฐ ๋•Œ๋ฌธ์— ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์ „ํ˜€ ์ธ์ง€ํ•˜์ง€ ๋ชปํ•œ๋‹ค.

ํšŒ์› ๋“ฑ๋ก ํผ - ๋ทฐ

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
        <meta charset="UTF-8">
        <title>Title</title>
</head>
<body>

<!-- ์ƒ๋Œ€๊ฒฝ๋กœ ์‚ฌ์šฉ, [ํ˜„์žฌ URL์ด ์†ํ•œ ๊ณ„์ธต ๊ฒฝ๋กœ + /save] -->
<form action="save" method="post">
	username: <input type="text" name="username" />
	age: <input type="text" name="age" />
	<button type="submit">์ „์†ก</button>
</form>

</body>
</html>

์—ฌ๊ธฐ์„œ form์˜ action์„ ๋ณด๋ฉด ์ƒ๋Œ€๊ฒฝ๋กœ์ธ ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.
ํ˜„์žฌ ๊ณ„์ธต ๊ฒฝ๋กœ: /servlet-mvc/members/
๊ฒฐ๊ณผ: /servlet-mvc/members/save

ํšŒ์› ์ €์žฅ

ํšŒ์› ์ €์žฅ - ์ปจํŠธ๋กค๋Ÿฌ

@WebServlet(name = "mvcMemberSaveServlet", urlPatterns = "/servlet-mvc/members/
    save")
public class MvcMemberSaveServlet extends HttpServlet {

        private MemberRepository memberRepository = MemberRepository.getInstance();
        
        @Override
        protected void service(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
                
          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);
          
          //Model์— ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๊ด€ํ•œ๋‹ค. 
          request.setAttribute("member", member);
          String viewPath = "/WEB-INF/views/save-result.jsp";
          RequestDispatcher dispatcher = request.getRequestDispatcher(viewPath);
          dispatcher.forward(request, response);
} }

HttpServletRequest๋ฅผ Model๋กœ ์‚ฌ์šฉํ•œ๋‹ค.
request๊ฐ€ ์ œ๊ณตํ•˜๋Š” setAttribute()๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด request ๊ฐ์ฒด์— ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๊ด€ํ•ด์„œ ๋ทฐ์— ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ๋‹ค.
๋ทฐ๋Š” request.getAttribute()๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๊บผ๋‚ด๋ฉด ๋œ๋‹ค.

ํšŒ์› ์ €์žฅ - ๋ทฐ

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
      <meta charset="UTF-8">
</head>
<body> ์„ฑ๊ณต
  <ul>
      <li>id=${member.id}</li>
      <li>username=${member.username}</li>
      <li>age=${member.age}</li>
</ul>
<a href="/index.html">๋ฉ”์ธ</a>
</body>
</html>

JSP๋Š” ${} ๋ฌธ๋ฒ•์„ ์ œ๊ณตํ•˜๋Š”๋ฐ, ์ด ๋ฌธ๋ฒ•์„ ์‚ฌ์šฉํ•˜๋ฉด request์˜ attribute์— ๋‹ด๊ธด ๋ฐ์ดํ„ฐ๋ฅผ ํŽธ๋ฆฌํ•˜๊ฒŒ ์กฐํšŒํ•  ์ˆ˜ ์žˆ๋‹ค.

ํšŒ์› ๋ชฉ๋ก ์กฐํšŒ

ํšŒ์› ๋ชฉ๋ก ์กฐํšŒ - ์ปจํŠธ๋กค๋Ÿฌ

@WebServlet(name = "mvcMemberListServlet", urlPatterns = "/servlet-mvc/
  members")
public class MvcMemberListServlet extends HttpServlet {
      
      private MemberRepository memberRepository = MemberRepository.getInstance();
      
      @Override
      protected void service(HttpServletRequest request, HttpServletResponse response)
              throws ServletException, IOException {
         
          System.out.println("MvcMemberListServlet.service");
          List<Member> members = memberRepository.findAll();
          
          request.setAttribute("members", members);
          
          String viewPath = "/WEB-INF/views/members.jsp";
          RequestDispatcher dispatcher = request.getRequestDispatcher(viewPath);
          dispatcher.forward(request, response);
} }

ํšŒ์› ๋ชฉ๋ก ์กฐํšŒ - ๋ทฐ

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
  <html>
  <head>
      <meta charset="UTF-8">
      <title>Title</title>
  </head>
<body>
<a href="/index.html">๋ฉ”์ธ</a>
  <table>
      <thead>
      <th>id</th>
      <th>username</th>
      <th>age</th>
      </thead>
      <tbody>
      <c:forEach var="item" items="${members}">
      <tr>
               <td>${item.id}</td>
              <td>${item.username}</td>
              <td>${item.age}</td>
          </tr>
      </c:forEach>
      </tbody>
  </table>
  </body>
  </html>

members๋ฅผ JSP๊ฐ€ ์ œ๊ณตํ•˜๋Š” taglib๊ธฐ๋Šฅ์„ ์‚ฌ์š”ํ•ด์„œ ๋ฐ˜๋ณตํ•˜๋ฉด์„œ ์ถœ๋ ฅ
<c:forEach> ์ด ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์„ ์–ธํ•ด์•ผ๋œ๋‹ค.
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>

โœ๏ธ MVCํŒจํ„ด - ํ•œ๊ณ„

MVCํŒจํ„ด์„ ์ ์šฉํ•˜๋ฉด ์ปจํŠธ๋กค๋Ÿฌ์˜ ์—ญํ• ๊ณผ ๋ทฐ๋ฅผ ๋ Œ๋”๋ง ํ•˜๋Š” ์—ญํ• ์„ ๋ช…ํ™•ํ•˜๊ฒŒ ๊ตฌ๋ถ„ํ•  ์ˆ˜ ์žˆ๋‹ค.
ํ•˜์ง€๋งŒ ์ปจํŠธ๋กค๋Ÿฌ๋ฅผ ๋ณด๋ฉด ์ค‘๋ณต์ด ๋งŽ๊ณ , ํ•„์š”ํ•˜์ง€ ์•Š์€ ์ฝ”๋“œ๋“ค๋„ ๋งŽ์ด ๋ณด์ธ๋‹ค.

MVC ์ปจํŠธ๋กค๋Ÿฌ์˜ ๋‹จ์ 

ํฌ์›Œ๋“œ ์ค‘๋ณต
View๋กœ ์ด๋™ํ•˜๋Š” ์ฝ”๋“œ๊ฐ€ ํ•ญ์ƒ ์ค‘๋ณต ํ˜ธ์ถœ๋˜์–ด์•ผ ํ•œ๋‹ค. ๋ฌผ๋ก  ์ด ๋ถ€๋ถ„์„ ๋ฉ”์„œ๋“œ๋กœ ๊ณตํ†ตํ™”ํ•ด๋„ ๋˜์ง€๋งŒ, ํ•ด๋‹น ๋ฉ”์„œ๋“œ๋„ ํ•ญ์ƒ ์ง์ ‘ ํ˜ธ์ถœํ•ด์•ผ ํ•œ๋‹ค.

RequestDispatcher dispatcher = request.getRequestDispatcher(viewPath);
dispatcher.forward(request, response);

ViewPath์— ์ค‘๋ณต
String viewPath = "/WEB-INF/views/new-form.jsp";
๋งŒ์•ฝ jsp๊ฐ€ ์•„๋‹Œ thymeleaf ๊ฐ™์€ ๋‹ค๋ฅธ ๋ทฐ๋กœ ๋ณ€๊ฒฝํ•œ๋‹ค๋ฉด ์ „์ฒด ์ฝ”๋“œ๋ฅผ ๋‹ค ๋ณ€๊ฒฝํ•ด์•ผ ํ•œ๋‹ค.

์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ์ฝ”๋“œ
๋‹ค์Œ ์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ๋„ ์žˆ๊ณ , ์‚ฌ์šฉํ•˜์ง€ ์•Š์„ ๋•Œ๋„ ์žˆ๋‹ค.
HttpServletRequest request, HttpServletResponse response

๊ณตํ†ต ์ฒ˜๋ฆฌ๊ฐ€ ์–ด๋ ต๋‹ค.
๊ธฐ๋Šฅ์ด ๋ณต์žกํ•ด์งˆ ์ˆ˜๋ก ์ปจํŠธ๋กค๋Ÿฌ์—์„œ ๊ณตํ†ต์œผ๋กœ ์ฒ˜๋ฆฌํ•ด์•ผ ํ•˜๋Š” ๋ถ€๋ถ„์ด ์ ์  ๋” ์ฆ๊ฐ€ํ•  ๊ฒƒ์ด๋‹ค.

์ •๋ฆฌํ•˜๋ฉด ๊ณตํ†ต ์ฒ˜๋ฆฌ๊ฐ€ ์–ด๋ ต๋‹ค.
๊ทธ๋ž˜์„œ ํ•„์š”ํ•œ ๊ฒƒ์ด ํ”„๋ก ํŠธ ์ปจํŠธ๋กค๋Ÿฌ ํŒจํ„ด์„ ๋„์ž…ํ•˜๋ฉด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค.
์ปจํŠธ๋กค๋Ÿฌ ํ˜ธ์ถœ ์ „์— ๊ณตํ†ต ๊ธฐ๋Šฅ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ์†Œ์œ„ ์ˆ˜๋ฌธ์žฅ ์—ญํ• ์„ ํ•˜๋Š” ๊ธฐ๋Šฅ์ด๋‹ค. ์Šคํ”„๋ง MVC์˜ ํ•ต์‹ฌ๋„ ๋ฐ”๋กœ ์ด ํ”„๋ก ํŠธ ์ปจํŠธ๋กค๋Ÿฌ์— ์žˆ๋‹ค.

๋‹ค์Œ ๊ธ€์€ ์ด ํ”„๋ก ํŠธ ์ปจํŠธ๋กค๋Ÿฌ ํŒจํ„ด์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ฒ ๋‹ค ๐Ÿ˜Š

๋นจ๋ฆฌ ํ”„๋กœ์ ํŠธ ๊ฐœ๋ฐœํ•ด๋ณด๊ณ  ์‹ถ๋„ค์šฉ ^-^

profile
๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ์ž

0๊ฐœ์˜ ๋Œ“๊ธ€