실성한 developer

[ Java / JSP ] 로그인 및 회원가입 기능 만들기 본문

Study/Java

[ Java / JSP ] 로그인 및 회원가입 기능 만들기

실성한님 2020. 12. 26. 23:52

OS : Ubuntu 18.04 LTS

Java Version : OpenJDK 1.8.0

DB Version : 8.0.14

Tomcat Version : 8.5

개발툴 : Eclipse


프로젝트 구성 내용

Server.xml

server.xml 구성 내용 

xml의 자세한 설정은 https://gcstoryword.tistory.com/7?category=853481

로그인 기능을 구현하기 위해서 회원이 필요합니다. 

먼저 회원가입에 필요한 정보를 만들겠습니다.


src/Model/MemberBean.java

기능 구현을 목적으로 간단하게 작성하였습니다.  


build/WebContent/MemberJoin.jsp

회원정보를 받아 각 name에 설정된 박스에 담아 회원가입을 클릭시 form action 에 설정된 경로로 보내집니다.

여기서 취소를 누를시 입력된 정보가 리셋되게 구현했습니다. 회원가입 버튼을 클릭시 MemberJoin.do를 호출하게 됩니다.


src/controller/LoginJoinCon.java 

@webServlet(".do")를 설정하여 프론트에서 .do로 호출을 전부 처리하게 됩니다.doget, dopost를 전부 reqPro로 처리하게 설정하였고

호출한 uri와 Path를 받아 command에 저장하였습니다. 



src/controller/LoginJoinCon.java

command에 저장된 값과 equals("MemberJoin.do") 값이 같을 시 bean객체를 생성후 requset에 저장된 정보를 불러와

bean에 저장하고 id와 pass가 5글자 미만일 경우, 비밀번호와 비밀번호 재확인값이 맞지 않을 경우 RequestDispatcher메소드를 이용하여

MemberJoinError.jsp로 이동하여 error를 알려줍니다. 정보가 조건에 만족할 시 dbao에 getMemberInsert에 bean정보를 담아 데이터를 넘겨줍니다. 

RequestDispatcher를 사용하여 index.jsp로 이동합니다.


src/Model/MemberDAO.java

MemberDAO는 데이터를 받아 DB에 저장과 데이터를 불러오는 메소드들을 정의한 곳입니다.

server.xml에 정의된 내용을 입력하고 DB와 연결할 때 마다 연결될시 연결을 터미널창에 출력하고 실패시 실패를 출력하게 됩니다.

bean에 저장된 데이터를 받아 위에서 정의한 getCon()메소드로 DB와 연결후 sql변수에 저장된 insert문을 사용하여 

db저장 후  close()메소드를 사용하여 메소드를 끝냅니다.

member 테이블 구성이며 MemberInsert메소드로 값을 제대로 받아 저장된 모습입니다.

그럼 이제 프론트페이지에 로그인페이지를 만들어서 확인

build/WebContent/index.jsp

로그인 버튼을 클릭시 login.do를 호출하게 됩니다.

src/controller/LoginJoinCon.java 

index페이지에서 id pass를 받아 변수에 저장후 memberDAO에 정의된 getLoginPro()메소드로 데이터를 넘겨 retrun으로 bean을 다시 넘겨받습니다.

넘겨받은 bean이 null 아닐 경우 session을 생성후 bean을 userBean으로 데이터를 담아 Main.jsp로 보냅니다. bean이 null일 경우, 즉 데이터가 

없을 경우 script로 "아이디와 패스워드가 맞지 않습니다." 스크립트가 실행됩니다.

build/WebContent/main.jsp

이렇게 로그인 된 화면입니다.

로그인 했으니 로그아웃도 해봐야 되겠죠

로그아웃 버튼 클릭시 Main.Pro가 호출하여 

호출된 Main.Pro를 실행하니다. 먼저 설정한 session를 가져오고 이 session를 invalidate()메소드로 삭제후 다시 sendRedirect로 

index.jsp로 보냅니다.(senRedirect 와 RequestDispatcher 다른 메소드입니다. Redirect메소드는 쉽게 "바로 보낸다.", Dispatcher메소드는 데이터를 갖고 포워딩하여 보냅니다. 그래서 dispatcher메소드를 사용후 밑에 dis.forward(request, response)와 같이 사용했습니다.)



[ Java / JSP ] 게시판 및 페이지넘버 댓글기능 구현

Comments