개발환경
Window7 64bit
Java 1.8
JSP
Oracle 11g Release2
Tomcat 8.0
Eclipse Luna
회원가입 답변형 게시판 구성
회원가입형 답변형 게시판은 크게 회원, 게시판, 댓글, 방명록으로 구성되어있다. 각각의 기능을 살펴보면 다음과 같다.
회원 : 회원가입 및 회원정보 보기, 회원정보 수정 및 삭제, 관리자의 경우 모든 회원을 볼 수 있다.
게시판 : 게시판은 로그인한 사용자만 글을 작성 가능. 답변형 게시판, 파일 업로드, 답글의 경우 파일 업로드 불가
댓글 : 게시물 별로 댓글을 작성 가능, 댓글의 경우도 로그인한 사용자만 작성 가능
방명록 : 로그인/비로그인 사용자 모두 작성 가능
그 외 : 화면 하단에 총 방문자 및 오늘 방문자 표시
게시판 화면의 경우 <jsp:include>를 통해 모듈화를 하였다. MainForm.jsp 에는 상단, 중단, 하단의 jsp로 구성되어 있으며 상단의 메뉴 클릭 시 중단 영역이 변경된다.
게시판, 댓글, 방명록 부분은 오라클 계층쿼리를 이용하였다.
■ 구성
MVC 구조로 개발
각 기능들은 Action 인터페이스를 구현한 Action 클래스로 구성
각 Action에 대응하는 Commend는 properties 파일을 통해 정의, Controller에서는 이 properties 파일을 읽어들여 Commend에 해당하는 Action을 찾아서 실행시킨다.
Action 실행 후 해당하는 JSP 화면을 보여준다.
■ 웹 프로젝트
UML 구조도
※ UML 구조는 Member와 Board만 첨부
■ Member(회원) 클래스 다이어그램
■ Board(게시판) 클래스 다이어그램
Jsp, Java 설명
1. 공통부분
■ Java
Action : execute( ) 메서드가 세팅된 인터페이스
ActionForward : 페이지 이동을 처리하기 위한 클래스
DBConnection : 커넥션을 얻어오는 클래스 - JNDI
■ JSP
FirstView : 최초 실행시 보이는 화면
Footer : 하단 방문자 통계 영역 jsp
Header : 상단 메뉴 영역 jsp
MainForm : 메인 화면
2. 회원 부분
■ Java
MemberController : 회원 관련 Controller
MemberDeleteAction : 회원 삭제 작업을 처리하는 Action
MemberFormChangeAction : 화면 전환을 처리하는 Action
MemberIdCheckAction : 아이디 중복체크를 처리하는 Action
MemberInfoAction : 현재 로그인한 사용자의 회원정보를 보여주는 Action
MemberJoinAction : 회원가입을 처리하는 Action
MemberListAction : 모든 회원정보를 보여주는 Action
MemberLoginAction : 로그인 작업을 처리하는 Action
MemberLogoutAction : 로그아웃 작업을 처리하는 Action
MemberModifyAction : 회원정보 수정 작업을 처리하는 Action
MemberModifyFormAction : 회원정보 수정 화면에 현재 회원정보를 출력하는 Action
MemberBean : 회원 데이터 전달을 담당하는 클래스 - DTO
MemberDAO : JSP_MEMBER 테이블과 연관된 DAO로 회원 데이터를 처리한다.
MemberCommand.properties : 회원 관련 명령어와 그에 해당하는 Action 클래스의 정보가 담긴 파일
■ JSP
DeleteForm : 회원 삭제 화면
IdCheckForm : 아이디 중복체크 화면
JoinForm : 회원가입 화면
LoginForm : 로그인 화면
MemberListForm : 회원정보를 보여주는 화면, 관리자로 로그인하였을 경우면 볼 수 있다.
ModifyFrom : 회원 수정 화면
ResultForm : 회원가입, 회원정보 수정, 회원 탈퇴 결과를 보여주는 화면
UserInfoForm : 내정보를 보여주는 화면
3. 게시판 부분
■ Java
BoardController : 게시판 관련 Controller
BoardDeleteAction : 글 삭제를 처리하는 Action, 글 삭제 시 댓글도 모두 삭제
BoardDetailAction : 글 상세보기를 처리하는 Action
BoardFormChangeAction : 게시판 화면을 전환하는 Action
BoardListAction : 글 목록을 보여주는 Action
BoardReplyAction : 답글을 처리하는 Action
BoardReplyFormAction : 답글 화면을 전환하는 Action
BoardUpdateAction : 글 수정을 처리하는 Action
BoardUpdateFormAction : 글 수정 화면을 전환하는 Action
BoardWriteAction : 글 작성을 처리하는 Action
FileDownloadAction : 파일 다운로드를 처리하는 Action
BoardBean : 게시판 데이터 전달을 담당하는 클래스 - DTO
BoardDAO : MEMBER_BOARD 테이블과 연관된 DAO로 게시판 데이터를 처리한다.
BoardCommand.properties : 게시판 관련 명령어와 그에 해당하는 Action 클래스의 정보가 담긴 파일
■ JSP
BoardDetailForm : 글 상세보기 화면, 여기에서는 해당 글에 댓글을 작성할 수 있다.
BoardListForm : 글 목록을 보여주는 화면
BoardReplyForm : 답글 화면, 답글에서는 파일 업로드를 할 수 없다.
BoardUpdateForm : 글 수정 화면
BoardWriteForm : 글 작성 화면
4. 댓글 부분
■ Java
CommentController : 댓글 관련 Controller
CommentDeleteAction : 댓글 삭제를 처리하는 Action
CommentReplyAction : 댓글의 답글을 처리하는 Action
CommentReplyFormAction : 답글 화면을 보여주는 Action
CommentUpdateAction : 댓글 수정을 처리하는 Action
CommentUpdateFormAction : 댓글 수정 화면을 보여주는 Action
CommentWriteAction : 댓글 작성을 처리하는 Action
CommentBean : 댓글 데이터 전달을 담당하는 클래스 - DTO
CommentDAO : BOARD_COMMENT 테이블과 연관된 DAO로 댓글 데이터를 처리한다.
CommentCommand.properties : 댓글 관련 명령어와 그에 해당하는 Action 클래스의 정보가 담긴 파일
■ JSP
CommentReplyForm : 댓글의 답글 작성 화면
CommentUpdateForm : 댓글 수정 화면
5. 방명록 부분
■ Java
GuestbookController : 방명록 관련 Controller
GuestbookDeleteAction : 방명록 삭제를 처리하는 Action
GuestbookDeleteFormAction : 방명록 삭제 화면을 보여주는 Action
GuestbookFormAction : 방명록 화면을 전환하는 Action
GuestbookListAction : 방명록 목록을 보여주는 Action
GuestbookPwCheckAction : 방명록 수정/삭제 시 비밀번호를 체크하는 Action
GuestbookReplyAction : 방명록 답글을 처리하는 Action
GuestbookReplyFormAction : 방명록 답글 화면을 보여주는 Action
GuestbookUpdateAction : 방명록 수정을 처리하는 Action
GuestbookUpdateFormAction : 방명록 수정 화면을 보여주는 Action
GuestbookWriteAction : 방명록 작성을 처리하는 Action
GuestbookBean : 방명록 데이터 전달을 담당하는 클래스 - DTO
GuestbookDAO : GUESTBOOK 테이블과 연관된 DAO로 방명록 데이터를 처리한다.
GuestbookCommand.properties : 방명록 관련 명령어와 그에 해당하는 Action 클래스의 정보가 담긴 파일
■ JSP
GuestbookDeleteForm : 방명록 삭제 화면
GuestbookForm : 방명록 화면, 방명록 작성 및 방명록 목록을 보여준다.
GuestbookReplyForm : 방명록 답글 화면
GuestbookUpdateForm : 방명록 수정 화면
6. 방문자 부분
■ Java
VisitSessionListener : 방문자 수를 계산한다. web.xml에 등록된 listener로 톰캣 실행시 VisitSessionListener가 실행된다.
VisitCountDAO : VISIT 테이블과 연관된 DAO로 방문자 수 데이터를 처리한다.
테이블 및 시퀀스
테이블 : 회원, 게시판, 댓글, 방명록, 방문자 수
시퀀스 : 게시판, 방명록, 댓글 (시퀀스는 각각 글 번호를 부여하는 역할을 한다.)
■ JSP_MEMBER
■ MEMBER_BOARD
■ BOARD_COMMENT
■ GUESTBOOK
■ VISIT
■ BOARD_NUM (게시판 글번호 시퀀스)
■ COMMENT_SEQ (댓글 글번호 시퀀스)
■ GUESTBOOK_NO_SEQ (방명록 글번호 시퀀스)
화면
화면은 크게 3부분으로 구성되어 있다. 여기서 상단, 하단 영역은 고정이고 상단의 메뉴를 클릭할 때 중단의 메인화면 부분이 변경된다. 처음 실행하면 메인화면 부분에는 FirstView.jsp 가 나타난다.
회원가입, 로그인 후 상단의 내정보 메뉴를 클릭했을 때 모습이다. 여기서 회원정보 변경 및 회원 탈퇴를 할 수 있다.
게시판 화면이다. 글쓰기 버튼은 로그인을 해야 활성화된다. 글 검색은 제목, 제목+내용, 작성자로 검색할 수 있다.
글 제목을 클릭하면 상세보기 화면으로 이동된다. 여기서 수정, 삭제 버튼은 글 작성자일 경우에만 활성화된다. 상세보기 화면에서는 댓글을 작성할 수 있다.
방명록 화면이다. 방명록은 로그인/비로그인 사용자 모두 작성 가능하다. 방명록은 글 작성 시 입력한 비밀번호를 입력해야 수정 및 삭제가 가능하다.
방명록의 답글 화면이다. 답글 및 수정, 삭제는 모두 새로운 팝업창에서 작업이 이루어진다.
실행 방법
자바와 오라클, 그리고 톰캣이 설치되어 있어야 한다.
첨부된 소스 코드와 SQL 파일을 다운로드 한다. 먼저 SQL 파일의 내용을 실행하여 테이블과 시퀀스를 생성한다. 다음으로 소스 코드를 이클립스에 import 한다.
소스 코드를 import 한 후에 오라클 정보를 설정해줘야 한다.
이클립스에 톰캣을 연동했다면 왼쪽 Project Explorer를 보면 Server이 있을 것이다. 거기에 있는 context.xml을 열어 위의 Resource 부분을 작성한다. 이때 빨간색으로 표시한 부분은 자신에게 맞게 수정해야 한다. (관련글 참고)
모든 작업이 끝났다면 MainForm.jsp를 실행하면 메인 화면이 나타날 것이다.
소스 코드 다운로드
■ SQL 파일
■ WAR 파일
'코딩 > JSP' 카테고리의 다른 글
[JSP개발] 게시판, 방명록, 댓글 줄바꿈 처리 (2) | 2017.01.08 |
---|---|
[JSP개발] 회원가입 - 아이디 중복체크 구현 (19) | 2017.01.06 |
[JSP개발] 게시판 - 댓글 수정 (0) | 2017.01.05 |
[JSP개발] 게시판 - 댓글 삭제 (1) | 2017.01.04 |
[JSP개발] 게시판 - 댓글 답변 구현 (4) | 2017.01.03 |