ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • TIL #33-1 MVC 패턴 예시 추가
    프로그래밍/TIL(국비과정) 2020. 6. 17. 20:41

     

     

    실제 로그인을 수행하는 과정에 따른 그림이다. 

    먼저 dynamicWeb Project 생성시 생기는 web.xml에서 임의의 URL과 실제 Java 클래스 위치를 명시해줄 properties 파일 위치를 알려주어야하는데, 여기서 착각했던 것이 하나 있다. 

    web.xml은 서버가 켜질 때 최초로 방문하는 파일로 매번 이벤트가 발생할 때마다 방문하는 파일이 아니라는 사실이다. 

    즉, web.xml과 command.properties는 서버가 켜질 때 최초로 읽어지는 파일들이지 이벤트에 따라 읽어들였다 말았다 하는 파일이 아니라는 것이다. 

    그래서 맨 처음에 LoginForm.jsp 가 실행되기 전에 서버가 켜짐과 동시에 web.xml 이 가리키는 properties 파일까지 읽어들인다. 

     

    그럼 본격적으로, 사용자가 LoginForm.jsp 파일에서 로그인을 실행한다고 가정한다. 

    그 전에 사용자가 로그인에 필요한 아이디와 비밀번호를 제대로 입력했는지 member.js 라는 Javascript 파일로 넘어가 

    유효성검사를 실시한다. 

    만약 사용자가 아이디와 비밀번호를 잘 입력했다면 로그인 요청을 Servlet으로 보낸다. 

    유효성검사를 마치고 요청을 받은 Servlet은 로그인 처리를 위해 DB로의 접근이 필요하다. 

    이 DB와의 작업을 수행하는 곳이 바로 LoginService.java 이다. 

    여기서 DB에서 아이디와 비밀번호가 일치하는지 확인한 후 

    맞다면 /member/loginOk.jsp를 

    틀리다면 /member/loginFail.jsp 를 리턴한다. 

    여기서의 리턴된 값이 사용자에게 최종적으로 보여질 화면이다. 

     

     

    member/loginForm.do=member.service.LoginFormService

    properties에서는 임의의 URL에 맞는 Java 파일의 위치를 확인한다. 

     

    여기서 헷갈리는 것이 갑자기 등장한 임의로 지정한 URL일 것이다. 

    임의의 URL은 MVC 패턴으로 인해 적용시킨 것으로 로그인을 수행하는 곳은 실제로 login.jsp 이나 

    더이상 .jsp 라는 확장자명을 도메인으로 사용하지 않고자 하는 것이다. 

    mvc 패턴을 쓰기 이전에는 클라이언트의 요청이 Servlet을 거치지 않고 JSP로 바로 향했다. 

    하지만 지금은 Servlet을 한번 거치고 JSP로 가기 때문에 .jsp 라는 표현을 사용하지 않고자 하는 것이다. 

    결론적으로 큰 의미는 없고 Servlet을 거치게 되면서 .jsp 라는 표현을 하지 않는 것으로 보인다. 

    따라서 member/loginForm.do 라는 URL은 단지 loginForm 안에 있다 라는 것을 명시해주기 위해 내가 임의로 작성한 것이므로 그 어떤 URL을 작성해도 상관없다. 

    그래도 파일의 위치나 파일의 용도는 알 수 있게 하는 것이 좋다고 한다. 

     

    조심할 점은 이 임의의 URL이 가리키는 Java 파일의 위치는 정확해야한다는 것이다. 

    그래야 요청에 따라 적절한 Java 클래스에 접근할 수 있게 될 것이다. 

     

    여기서 Java 클래스 위치를 알아내고 예시에서 가리키는 LoginFormService로 이동한다. 

    LoginFormService.java 는 /member/loginForm.jsp 를 리턴하며 Control로의 접근을 한다.

    Control로 접근한 후에는 View로 가기 때문에 꼭 필요한 작업이다. 

     

    LoginService.java 는 DB 처리를 하는 Model로서

    로그인이 성공하면 로그인 성공에 따른 View인 loginOk.jsp 로,

    로그인이 실패하면 로그인 실패에 따른 View인 loginFail.jsp 로 리턴한다. 

     

     

     

     

    '프로그래밍 > TIL(국비과정)' 카테고리의 다른 글

    TIL #35 - AJAX  (0) 2020.06.26
    TIL #34 - MyBatis시작  (0) 2020.06.22
    TIL #33 - MVC 패턴  (0) 2020.06.16
    TIL #32 - Servlet, 톰캣을 이용한 회원가입 _ 회원가입  (0) 2020.05.28
    TIL #31 - Servlet, 톰캣 (2)  (0) 2020.05.26

    댓글

Designed by Tistory.