<์ถœ์ฒ˜ ์ธํ”„๋Ÿฐ>

 

 

 

์„น์…˜ 4๋Š” ์•„์ฃผ ๊ฐ„๋‹จํ•œ ํšŒ์›๊ด€๋ฆฌ ์›น์„ ๋งŒ๋“ค์—ˆ๋‹ค. ์ฒ˜์Œ์—๋Š” ์„œ๋ธ”๋ฆฟ์œผ๋กœ ํ•ด๋ณด๊ณ  JSP, SpringMVC๋ฅผ ์ฐจ๋ก€๋กœ ์‚ดํŽด๋ดค๋‹ค. ์„œ๋ธ”๋ฆฟ๊ณผ JSP๋กœ ๋งŒ๋“  ์ฝ”๋“œ์—๋Š” ์–ด๋–ค ๋ถˆํŽธํ•œ ์ ์ด ์žˆ๋Š”์ง€, SpringMVC๋Š” ์–ด๋–ป๊ฒŒ ๋™์ž‘ํ•˜๋Š”์ง€ ์‚ดํŽด๋ณด๋ฉฐ ์„œ๋ธ”๋ฆฟ๊ณผ JSP์˜ ๋ฌธ์ œ์ ์„ ์–ด๋–ป๊ฒŒ ๋ณด์™„ํ–ˆ๋Š”์ง€ ์‚ดํŽด๋ดค๋‹ค.

 

 

โ˜˜๏ธ 

์ž˜๋ชป๋œ ์ •๋ณด๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค 


 

โœ”๏ธ  MVC ํŒจํ„ด - ํšŒ์›์ •๋ณด ์ €์žฅ๊ณผ ์ถœ๋ ฅ

  • ์„œ๋ธ”๋ฆฟ์„ ์ปจํŠธ๋กค๋Ÿฌ๋กœ ์‚ฌ์šฉํ•˜๊ณ , JSP๋ฅผ ๋ทฐ๋กœ ์‚ฌ์šฉํ•œ๋‹ค.

 

โ–บ  MvcMemeberFormServlet.class

  • ํšŒ์› ๋“ฑ๋ก ํผ ํด๋ž˜์Šค
  • ์ปจํŠธ๋กค๋Ÿฌ ์—ญํ• ์„ ๋‹ด๋‹นํ•œ๋‹ค.

 

RequestDispatcher

: ํด๋ผ์ด์–ธํŠธ๋กœ๋ถ€ํ„ฐ ์ตœ์ดˆ๋กœ ๋“ค์–ด์˜จ ์š”์ฒญ์„ ์›ํ•˜๋Š” ์ž์›์œผ๋กœ ์š”์ฒญ์„ ๋„˜๊ธฐ๋Š” ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•˜๊ฑฐ๋‚˜, ํŠน์ • ์ž์›์— ์ฒ˜๋ฆฌ๋ฅผ ์š”์ฒญํ•˜๊ณ  ์ฒ˜๋ฆฌ ๊ฒฐ๊ณผ๋ฅผ ์–ป์–ด์˜ค๋Š” ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ํด๋ž˜์Šค๋‹ค.

 

getRequestDispatcher

๊ฒฝ๋กœ๋ฅผ ์ ๋Š” ๋ฉ”์„œ๋“œ๋กœ servletRequest ๊ฐ์ฒด์—์„œ ํ˜ธ์ถœํ• ๋•Œ๋Š” ์ ˆ๋Œ€๊ฒฝ๋กœ, ์ƒ๋Œ€๊ฒฝ๋กœ ๋ชจ๋‘ ๊ฐ€๋Šฅํ•˜์ง€๋งŒ ServletContext์˜ ๊ฒฝ์šฐ ์ ˆ๋Œ€ ๊ฒฝ๋กœ๋งŒ ๊ฐ€๋Šฅํ•˜๋‹ค.

 

forward

: ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ์œผ๋กœ ์ƒ์„ฑ๋˜๋Š” request, response ๊ฐ์ฒด๋ฅผ ๋‹ค๋ฅธ ์ž์›์— ์ „๋‹ฌํ•˜๊ณ , ์ˆ˜ํ–‰ ์ œ์–ด๋ฅผ ์™„์ „ํžˆ ๋„˜๊ฒจ์„œ ๋‹ค๋ฅธ ์ž์›์˜ ์ˆ˜ํ–‰๊ฒฐ๊ณผ๋ฅผ ํด๋ผ์ด์–ธํŠธ๋กœ ์‘๋‹ตํ•œ๋‹ค.

@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);
    }
}
viewPath์— ๊ฒฝ๋กœ๋ฅผ ์ ์—ˆ๋‹ค. ์—ฌ๊ธฐ์„œ /WEB-INF๋Š” ์™ธ๋ถ€์—์„œ ์ง์ ‘ JSP๋ฅผ ํ˜ธ์ถœํ•  ์ˆ˜ ์—†๋„๋ก ์„ค์ •ํ•˜๋Š” ๊ฒƒ์ด๋‹ค. /views/new-form.jsp๋ฅผ URL์— ์ ์–ด๋„ ๋ธŒ๋ผ์šฐ์ €์— ๋ฐ˜์‘ํ•˜์ง€ ์•Š๊ณ , ์ปจํŠธ๋กค๋Ÿฌ๋ฅผ ํ†ตํ•ด์„œ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๊ฒŒ ์„ค์ •ํ–ˆ๋‹ค.

๊ฒฝ๋กœ๋ฅผ getRequestDispatcher์— ๋„ฃ์œผ๋ฉด ํ•ด๋‹น ๊ฒฝ๋กœ๋กœ ์ด๋™ํ•˜๋ผ๋Š” ๋ง์ด๋‹ค. ๊ทธ๋Ÿผ ๊ฒฝ๋กœ๋กœ ์ด๋™ํ•  ๋•Œ request์™€ response๋ฅผ ๋“ค๊ณ ๊ฐ€๊ณ  ์ˆ˜ํ–‰ ๊ฒฐ๊ณผ๋ฅผ ์‘๋‹ตํ•œ๋‹ค. ์‘๋‹ต์„ ๋ธŒ๋ผ์šฐ์ €์— ๋ฐ˜์˜ํ•  ๋•Œ forward ๋ฉ”์„œ๋“œ๋Š” url์— /views/new-form.jsp๋กœ ๊ฒฝ๋กœ๋ฅผ ๋ณด์—ฌ์ฃผ์ง€ ์•Š๋Š”๋‹ค. ๋ธŒ๋ผ์šฐ์ € ์ฃผ์†Œ๋Š” ๊ทธ๋Œ€๋กœ /servlet-mvc/members/new-form์ด๋‹ค.

 

 

 

โ–บ  new-form.jsp

  • ํšŒ์› ๋“ฑ๋ก ํผ jsp
  • ๋ทฐ ์—ญํ• ์„ ๋‹ด๋‹นํ•œ๋‹ค.
 <form action="save" method="post">
    username: <input type="text" name="username" />
    age: <input type="text" name="age" />
    <button type="submit">์ „์†ก</button>
 </form>
action์— / ์—†์ด ๊ฒฝ๋กœ๋ฅผ ์ ์–ด ์ƒ๋Œ€๊ฒฝ๋กœ๋กœ ๋งŒ๋“ ๋‹ค. ์ด๋ ‡๊ฒŒ ์ ์œผ๋ฉด ํผ ์ „์†ก์‹œ ํ˜„์žฌ URL์ด ์†ํ•œ ๊ณ„์ธต ๊ฒฝ๋กœ์— save๊ฐ€ ์ถ”๊ฐ€๋˜์–ด /servlet-mvc/members/save๊ฐ€ ๋œ๋‹ค.

 

 

 

โ–บ  MvcMemberSaveServlet.class

  • ํšŒ์› ์ €์žฅ ํด๋ž˜์Šค
  • ์ปจํŠธ๋กค๋Ÿฌ ์—ญํ• ์„ ๋‹ด๋‹นํ•œ๋‹ค.

 

setAttribute

: request ๊ฐ์ฒด์— ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๊ด€ํ•ด์„œ ๋ทฐ์— ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ๋‹ค.

request.setAttribute("member", member);
member์— ํšŒ์›์˜ username๊ณผ age๋ฅผ ๋‹ด์•„ memberRepository์˜ save ๋ฉ”์„œ๋“œ๋กœ ๋ณด๋‚ธ๋‹ค. save ๋ฉ”์„œ๋“œ๋Š” store์— ์ €์žฅํ•˜๊ณ  id๋ฅผ ๋ถ€์—ฌํ•˜์—ฌ ๋ฐ˜ํ™˜ํ•œ๋‹ค. id๊นŒ์ง€ ๋ฐ˜ํ™˜๋œ member๋Š” ์š”์ฒญ ๊ฐ์ฒด์— ์ •๋ณด๋ฅผ ๋‹ด์•„ save-result.jsp๋กœ ๋ณด๋‚ธ๋‹ค.

 

 

 

 

โ–บ  save-result.jsp

  • ํšŒ์› ์ €์žฅ jsp
  • ๋ทฐ ์—ญํ• ์„ ๋‹ด๋‹นํ•œ๋‹ค.

 

<li>id=${member.id}</li>
<li>username=${member.username}</li>
<li>age=${member.age}</li>
jsp์—์„œ ${ } ํ‘œํ˜„์‹์„ ํ†ตํ•ด  request๋กœ ์ „๋‹ฌ๋ฐ›์€ ๋ฐ์ดํ„ฐ๋ฅผ ํŽธ๋ฆฌํ•˜๊ฒŒ ์กฐํšŒํ•  ์ˆ˜ ์žˆ๋‹ค.

 

 

username์— spring์„ ์ ๊ณ  age์— 20์„ ์ ์—ˆ๋‹ค

 

url์„ ๋ณด๋ฉด save๋งŒ ์ถ”๊ฐ€๋œ ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค

 

 

 

 


 

 

 

 

โœ”๏ธ  MVC ํŒจํ„ด - ํšŒ์›์ •๋ณด๋ชฉ๋ก ์ €์žฅ๊ณผ ์ถœ๋ ฅ

 

โ–บ  MvcMemeberListServlet.class

  • ํšŒ์› ๋ชฉ๋ก ์กฐํšŒ ํด๋ž˜์Šค
  • ์ปจํŠธ๋กค๋Ÿฌ ์—ญํ• ์„ ๋‹ด๋‹นํ•œ๋‹ค.

 

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);
memberRepository์— ์žˆ๋Š” findAll ๋ฉ”์„œ๋“œ๋Š” store์— ์ €์žฅ๋œ values๋ฅผ ๋ฆฌ์ŠคํŠธ ํƒ€์ž…์œผ๋กœ ๋ฐ˜ํ™˜ํ•œ๋‹ค. ๊ฐ€์ ธ์˜จ ๋ชจ๋“  ๋ฆฌ์ŠคํŠธ๋ฅผ request ๊ฐ์ฒด๋ฅผ ํ†ตํ•ด jsp์— ๋ณด๋‚ด ์ถœ๋ ฅ๋˜๋„๋ก ํ•œ๋‹ค. 

 

 

 

โ–บ  members.jsp

  • ํšŒ์› ๋ชฉ๋ก ์กฐํšŒ ํด๋ž˜์Šค
  • ์ปจํŠธ๋กค๋Ÿฌ ์—ญํ• ์„ ๋‹ด๋‹นํ•œ๋‹ค.

 

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
     <c:forEach var="item" items="${members}">
         <tr>
             <td>${item.id}</td>
             <td>${item.username}</td>
             <td>${item.age}</td>
         </tr>
     </c:forEach>
${members}๋กœ members์— ๋‹ด๊ธด ๋ฆฌ์ŠคํŠธ ๋ชฉ๋ก์„ foreach ๊ตฌ๋ฌธ์œผ๋กœ ํ•˜๋‚˜ํ•˜๋‚˜ ๋ฐ›์•„ id์™€ username, age๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค. foreach๊ตฌ๋ฌธ์€ jsp์—์„œ ์ œ๊ณตํ•˜๋Š” ํƒœ๊ทธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ(taglib)๋‹ค.

 

ํšŒ์› ๋ชฉ๋ก์„ ์ถœ๋ ฅํ–ˆ๋‹ค

 

 

 

 


 

 

 

์•„๋ž˜์— ์ถœ์ฒ˜๋ฅผ ๋‚จ๊ฒจ๋‘๊ฒ ์Šต๋‹ˆ๋‹ค.
๋ธ”๋กœ๊ทธ์—” ์ œ๊ฐ€ ์ตœ๋Œ€ํ•œ ์ดํ•ดํ•œ ๋‚ด์šฉ๊นŒ์ง€๋งŒ ์ ๋Š”๊ฑฐ๋ผ
์ถœ์ฒ˜์— ๋“ค์–ด๊ฐ€์‹œ๋ฉด ๋” ๋งŽ์€ ๋‚ด์šฉ์ด ์žˆ์–ด ๊ณต๋ถ€ํ•˜์‹œ๋Š”๋ฐ ๋„์›€๋˜์‹ค๊ฒ๋‹ˆ๋‹ค.

 

๐Ÿชฝ

ํ‹€๋ฆฐ ๋‚ด์šฉ์ด ์žˆ๋‹ค๋ฉด ๋Œ“๊ธ€๋กœ ์•Œ๋ ค์ฃผ์„ธ์š”

 

 


- setAttribute( )

 

[Java]setAttribute()์™€ getAttribute()

jsp์™€ suvlet์œผ๋กœ emaillist ์™€ guestbook์„ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. ์ฒ˜์Œ์—” model 1 ๋ฐฉ์‹์œผ๋กœ ๋งŒ๋“ค์—ˆ๊ณ  ๋“œ๋””์–ด model 2๋ฅผ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ฒ˜์Œ์œผ๋กœ controller๋ฅผ ๋งŒ๋‚ฌ๋Š”๋ฐ ์•„์ง์€ ์ปจํŠธ๋กค๋Ÿฌ๊ฐ€ ์—†๋Š” 1 ๋ฐฉ์‹์— ์ต์ˆ™ํ•ด์„œ ์ ์‘

dynamoj.tistory.com

 

 

 

- RequestDispatcher

 

[Servlet, JSP] RequestDispatcher์™€ ์š”์ฒญ ์žฌ์ง€์ •

RequestDispatcher " data-ke-type="html"> HTML ์‚ฝ์ž… ๋ฏธ๋ฆฌ๋ณด๊ธฐํ•  ์ˆ˜ ์—†๋Š” ์†Œ์Šค RequestDispatcher ๊ฐ์ฒด์—์„œ ์ œ๊ณตํ•˜๋Š” ๋ฉ”์†Œ๋“œ๋ฅผ ์ด์šฉํ•˜์—ฌ ์š”์ฒญ ์žฌ์ง€์ •์„ ํ• ๋•Œ๋Š” ์žฌ์ง€์ •ํ•˜๋Š” ์ž์›์ด ๋ฐ˜๋“œ์‹œ ํ˜„์žฌ ์ž์›๊ณผ ๋™์ผํ•œ ์›น

blogshine.tistory.com

 

 

 

- jsp ํƒœ๊ทธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ

 

[JSP] JSTL ์‚ฌ์šฉ ๋ฐฉ๋ฒ• - ์ฃผ์š” ํƒœ๊ทธ ๋ฌธ๋ฒ• ์ •๋ฆฌ

JSTL์„ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ํ•„์š”ํ•˜๋‹ค. ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋‹ค์šด๋กœ๋“œ ๋ฐ ํ”„๋กœ์ ํŠธ ์„ธํŒ…์€ ์ด ํฌ์ŠคํŠธ๋ฅผ ์ฐธ๊ณ ํ•œ๋‹ค. ํƒœ๊ทธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์„ ์–ธ ์ž๋ฐ”์—์„œ import๋ฌธ์„ ์„ ์–ธํ•˜๋“ฏ JSP์—์„œ๋„ JSTL ํ™•์žฅ ํƒœ๊ทธ๋ฅผ ์‚ฌ์šฉ

atoz-develop.tistory.com

 

 

+ Recent posts