동글동글이
2k
2019-10-22 16:24:06
4
156

java jsp controller 사용할 때...


jsp에서 jsp로 넘겨야되는 경우랑

jsp에서 controller를 통해서 jsp로 가야되는 경우

구분을 잘 못하겠는데용


단순히 mvc모델을 위해서

컨트롤러를 하나 더 만들어서 깔끔하게 하려는건지

아니면 jsp에서 jsp로 이동할 때 제한되는 부분이 있어 그렇게 하는건지 알고싶습니다

선배님들 알려주세용 ㅠ.ㅠ

0
0
  • 답변 4

  • yamanin
    1k
    2019-10-22 17:03:41

    다이나믹한 공용 컨트롤러 만드시면 됩니다.

    MVC가 페이지 하나 열자고 Model 하나, Controller 하나, View 하나 이렇게 하기 위해서 만들어 진건 아니니까요.


    /jsp/* 이런 컨트롤러 만들어서 속성에 따라 원하는 뷰를 열면되요.

    1
  • zepinos
    19k
    2019-10-22 17:04:25

    JSP 그 자체로 구현하는건 아주 오래된 방법이고, 추천하지도 않습니다. 내부적으로 JSP 을 Java Class 로 변환을 하고, 그 결과 내용을 사용자 브라우져(=HTML)로 보내주는데 사용자 브라우져에서 다른 서버 내 Java Class 에 접근할 방법이 없기 때문에 사실상 JSP -> 다른 JSP 로 가는 방법은 없습니다.


    MVC 는 이와 다른 내용이고, Controller 와 Model, View 의 역할을 나누는게 주요 의미이고, 이 때 Controller -> View 로의 데이터 전달은 가능하지만 반대는 안되기 때문에 JSP 에서 다른 JSP 로 값을 넘기기 위해서는 페이지 이동 등을 통해 다른 JSP 을 이용하는 Controller 를 호출하는 것입니다.

    1
  • 동글동글이
    2k
    2019-10-22 17:10:11

    zepinos 

    답변 감사합니다.

    하나 더 여쭤보고 싶은게 있는데

    form action에 jsp url을 입력하고

    jsp->jsp로 이동할 수 있지 않나용?



    0
  • zepinos
    19k
    2019-10-22 17:42:27

    form 이 html 입니다. 이미 사용자 브라우져에 내용이 온 것이죠.


    즉, JSP 가 아니라 JSP -> Java Class -> HTML 로 변환해서 서버에서 HTML 을 사용자 브라우져로 전송한 상태이고, form submit 으로 url 이동을 하게 되면 사용자 브라우져 -> 서버의 JSP(정확히는 Servlet 으로 변환된)로 데이터가 전송되죠. 사실상 JSP 가 변환된 Java Class(Servlet)이 Controller 역할을 하는 겁니다. 이럴 경우 관리가 어려워 MVC 같은 패턴을 이용해서 역할을 나누는거죠.

    1
  • 로그인을 하시면 답변을 등록할 수 있습니다.