Servlet / JSP로 간단한 게시판을 만들어보며 웹 프로젝트 개발 과정의 이해도 향상을 목적으로 해당 프로젝트를 진행하기 때문에 게시판 프로젝트의 심화된 기능들은 Spring 프로젝트에서 진행한다.
제작 페이지
- 회원가입 페이지
- 로그인 페이지
- 마이 페이지
- 게시글 작성 / 수정 페이지
- 댓글, 대댓글 작성
- 게시글 목록 조회 페이지 ( 메인 페이지 )
요구사항
1. 모든 페이지 공통
- 메인 페이지로 이동할 수 있는 배너 왼쪽 상단 배치
- xss방지를 위해 jstl <c:out > 활용
2. 회원 가입 페이지
- 아이디, 비밀번호, 비밀번호 확인, 닉네임 입력창 및 회원가입 버튼 제공
- 아이디, 닉네임 중복여부는 별도의 버튼으로 중복 확인
- 모든 검사를 통과한 경우, 로그인 페이지로 이동
유효성 검사
- 아이디는 2~12자, 영문 대소문자, 숫자로 구성됨
조건 미 충족이거나 공백, 빈칸인 경우 "아이디는 2~12자, 영문 대소문자, 숫자만 사용 가능합니다." 텍스트 출력
- 닉네임은 2 ~ 10자, 특수문자를 제외한 한글,영문 대소문자, 숫자로 구성
조건 미 충족이거나 공백, 빈칸인 경우 "닉네임은 2 ~10자, 특수문자를 제외한 한글,영문 대소문자, 숫자만 사용 가능합니다." 텍스트 출력
- 비밀번호는 8~16자, 영문 대소문자, 숫자, 특수문자로 구성
조건 미 충족이거나 공백, 빈칸인 경우 "비밀번호는 8~16자, 영문 대소문자, 숫자, 특수문자만 사용 가능합니다." 텍스트 출력
- 비밀번호와 비밀번호 확인의 값이 다르면 "비밀번호가 일치하지 않습니다." 텍스트 출력
중복 검사
- 데이터베이스에 존재하는 아이디 제출 시 "이미 존재하는 아이디입니다." 메시지 출력
- 중복되는 닉네임 입력 후 닉네임 중복 확인 버튼을 누른 경우, "이미 존재하는 닉네임입니다." 메시지 출력
3. 로그인 페이지
- 아이디, 비밀번호 입력창 및 로그인 버튼 제공
- 로그인 성공 시 메인페이지로 이동
- 로그인 성공 시 세션으로 로그인 여부 판별
유효성 검사
- 아이디와 비밀번호가 일치하지 않다면 "아이디 또는 비밀번호가 일치하지 않습니다." 메시지 출력
로그인 하지 않은 경우 아래 페이지만 이용 가능
- 회원가입 페이지
- 로그인 페이지
- 게시글 목록 조회 페이지 ( 메인 페이지 )
- 위 페이지가 아닌 곳에 접근 시 ''로그인이 필요합니다." 메시지 출력하고 로그인 페이지로 이동
4. 마이 페이지
- 회원 탈퇴 버튼 제공
- 탈퇴 버튼 동작 시 "회원을 탈퇴하시겠습니까?" 메시지 제공, 확인/취소 버튼 중 "확인"을 누르면 탈퇴 처리
- 회원 탈퇴 시 해당 유저 계정 정보와 댓글 삭제
5. 게시글 목록 조회 페이지
- 페이지네이션을 적용해 한 페이지에 5개의 글만 보이도록 구성
- 번호, 제목, 작성자, 작성일, 조회수를 테이블 헤더로 게시글 출력
- 오늘 작성한 게시글의 작성일은 시간:분 으로 출력되고 다른날 작성된 게시글의 작성일은 년-월-일으로 출력
6. 게시글 상세 조회 페이지
- 게시글의 컨텐츠 출력
- 작성자가 게시글을 상세 조회한 경우 수정, 삭제 버튼 제공
- 삭제 버튼 동작 시 "정말로 삭제하시겠습니까?" 메시지 제공, 확인/취소 버튼 중 "확인" 누르면 게시글 삭제
- 게시글을 조회마다 조회수 1씩 증가
7. 게시글 작성 / 수정 페이지
- 제목, 컨텐츠 입력창 제공
유효성 검사
- 하나의 칸이라도 공백만 있거나 빈칸이 있다면 "게시글 작성 / 수정 실패" 메시지 출력
- DB의 크기를 벗어난 크기를 입력한 경우 "최대 XXByte까지만 입력가능합니다." 메시지 출력
8. 게시글 검색
- 제목, 컨텐츠, 작성자를 기준으로 게시글 검색
- 검색 후에도 입력창에 검색 정보 유지
9. 댓글 및 대댓글
- 댓글 입력창 제공
- 로그인 세션을 가지고 있는 유저만이 댓글,대댓글을 작성할 수 있도록 구성
- 댓글 작성자만이 댓글을 삭제, 수정 가능하도록 구성
- 작성자명, 작성일, 댓글내용 출력되도록 구성
'JAVA > Java' 카테고리의 다른 글
파일 업로드 및 저장 - 02, servlet/jsp, @MultipartConfig, part (0) | 2023.09.16 |
---|---|
[servlet/jsp/jstl] 개행문자를 기준으로 나눠 반복 처리를 하는 방법 (0) | 2023.09.13 |
[JAVA] 자바의 자료구조 큐 (0) | 2023.06.26 |
[JAVA] 버퍼 (0) | 2023.06.22 |