[Jsp] MVC 패턴 회원가입 및 로그인

이전 포스팅에서 JSP MVC패턴의 구조와 개념에 대해서 공부를 해보았는데요 이번에는 본격적으로 예제소스를 예로 들어 MVC2 패턴에 심도 있게 공부를 해보도록 하겠습니다. 첫번째 예제로는 웹페이지에서 회원가입 및 로그인을 준비했습니다. 어느 웹사이트에 들어가도 회원가입과 로그인기능은 꼭 있을정도로 광범위 하게 쓰이는 기능입니다.

MVC 패턴 회원가입 및 로그인

1. 우선 예제파일 올려드릴께요.

이 파일을 압축 해제하셔서 Import해주세요.

Model2-Sign.zip


2. 위 사진과 같이 데이터베이스를 하나 만들어주세요.

Master은 관리자 여부를 관리하는 칼럼인데 0이면 관리자이고 1이면 일반회원입니다.


MVC

3. context.xml에 들어가셔서 방금 생성한 테이블을 연결해줍니다.


MVC

그런뒤 index.jsp를 실행시켜주시면


보시는 바와 같이 잘 작동될것입니다.


그럼 회원가입과 로그인이 어떻게 구현되었는지 한번 살펴볼까요??

우선 MVC2패턴의 구조는 그냥 단순히 페이지 전환만 되느냐 아니면 뒤에 로직을 수행하느냐에 따라서 달라집니다.


MVC 패턴 회원가입 및 로그인 구조

1. 단순히 페이지 전환만 되는경우 

먼저 단순히 페이지 전환만되는경우 (로그인 화면 , 회원가입 화면전환)




2. 데이터베이스를 거치는 경우 

단순히 페이지전환만 되는경우에는 경로가 View -> Controller -> View  이렇게 됩니다. 

하지만 로직을 수행하는 순간 경로가 좀 복잡해지는데요

로직을 수행하는기능은 회원가입 ,  로그인을 들 수 있습니다.




로직을 수행하는 기능의 경우 데이터베이스를 거쳐야 하기때문에 상대적으로 복잡합니다.

위의 구조도에 자세하게 설명을 해두었으니 참고하시기 바랍니다.



댓글(9)

  • 코더
    2018.03.30 21:43

    좋은 글 좋은소스 감사합니다. 여러군데 돌아다녔는데 여기가 제일 정리도 잘되어있고 이해쉽게 설명도 잘되어있네요

  • 김현구
    2018.09.18 17:15

    톰켓 8.5면 안돌아가나요?
    javax.servlet.ServletException: Servlet execution threw an exception
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)

    회원가입정보쓰고 누르면 위에 오류가 뜨네요 테이블은 제대로 만든것같은데요 HR사용자에다가 테이블권한도 준것같은데

    톰켓이 9.0이길레 제가쓰는 8.5로 바꿧거든요? 그래서 안되는건가요?

    • 2018.09.18 17:37 신고

      톰캣 설정이 제꺼랑 조금 다른거같아서 오류가 나는거같은데요....?? 9.0만 돌아가는건 아니에요. 8.5로도 돌려봤고 7.0으로도 돌려봤습니다.

    • 김현구
      2018.09.18 17:45

      톰켓9로도 해봤는데 똑같은 오류가 뜨네요 아무래도 DB쪽에 제가 잘못설정한게 있나 싶은데요 톰켓설정이 잘못된걸까요? 혹시 코드를에러메세지를 보시면 아실수있으실런지
      Type Exception Report

      Message Servlet execution threw an exception

      Description The server encountered an unexpected condition that prevented it from fulfilling the request.

      Exception

      javax.servlet.ServletException: Servlet execution threw an exception
      org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
      Root Cause

      java.lang.AbstractMethodError: oracle.jdbc.driver.T4CConnection.isValid(I)Z
      org.apache.tomcat.dbcp.dbcp2.DelegatingConnection.isValid(DelegatingConnection.java:874)
      org.apache.tomcat.dbcp.dbcp2.PoolableConnection.validate(PoolableConnection.java:270)
      org.apache.tomcat.dbcp.dbcp2.PoolableConnectionFactory.validateConnection(PoolableConnectionFactory.java:389)
      org.apache.tomcat.dbcp.dbcp2.BasicDataSource.validateConnectionFactory(BasicDataSource.java:2398)
      org.apache.tomcat.dbcp.dbcp2.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:2381)
      org.apache.tomcat.dbcp.dbcp2.BasicDataSource.createDataSource(BasicDataSource.java:2110)
      org.apache.tomcat.dbcp.dbcp2.BasicDataSource.getConnection(BasicDataSource.java:1563)
      net.member.db.MemberDAO.<init>(MemberDAO.java:24)
      net.member.action.MemberAddAction.execute(MemberAddAction.java:16)
      net.member.action.MemberFrontControll.doProcess(MemberFrontControll.java:33)
      net.member.action.MemberFrontControll.doPost(MemberFrontControll.java:67)
      javax.servlet.http.HttpServlet.service(HttpServlet.java:660)
      javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
      org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
      Note The full stack trace of the root cause is available in the server logs.

    • 2018.09.18 17:47 신고

      jar파일은 다 넣으셨나요?? 예를들면 odbc6.jar 이런거..??

    • 김현구
      2018.09.19 04:55

      네 넣었는데 안되네요
      com.oreilly.server 임포트에 에러뜨길레
      cos.jar 다운받아서 넣어 주었구여

    • 2018.09.19 09:45 신고

      글쎄요.... 뭐가 문제인지 잘 모르겠네요...

  • 2019.01.13 14:18

    비밀댓글입니다

  • sdf
    2020.11.14 18:37

    이거 안되시는 분들은
    해당프로젝트에서 우클릭하신 후에 -> 프로펄티스 -> Targeted runtimes 가셔서
    새로 해당 환경에 있는 톰캣으로 설정해 주시면 됩니다.

Designed by JB FACTORY