일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 환경설정
- 객체 비교
- 자동차수리시스템
- 컬렉션 타입
- oracle
- 정수형타입
- 인터페이스
- Java
- 예외미루기
- EnhancedFor
- abstract
- 참조형변수
- 사용자예외클래스생성
- 예외처리
- 대덕인재개발원
- 어윈 사용법
- exception
- 자바
- 오라클
- 한국건설관리시스템
- 다형성
- NestedFor
- 컬렉션프레임워크
- cursor문
- 생성자오버로드
- 집합_SET
- 제네릭
- GRANT VIEW
- 추상메서드
- 메소드오버로딩
- Today
- Total
목록Java/Java_JSP Model2 (11)
거니의 velog
(7) 게시판 페이징 기능 구현 * 게시판 만들기 프로젝트의 마지막 단계이다. * 어떤 게시판이든 목록의 글이 많아지면 한 페이지에 모든 글이 표시되는 것이 아니라 다음과 같이 [1], [2], [3] ... 이렇게 페이지별로 표시된다. 이렇게 하는 것이 보기에도 더 좋고 사용자가 이용하기에도 편리하기 때문이다. * 이번에는 게시판의 페이징 기능을 구현해 보자. 먼저 글 목록에 페이징 기능이 어떻게 구현되는지 그 원리부터 살펴보자. * 다음 그림은 게시판에 페이징 기능을 적용한 후 글 목록을 표시한 것이다. * 여기서 하단에 보이는 숫자는 페이지 번호이다. 한 페이지마다 10개의 글이 표시되고, 이 페이지 10개가 모여 한 개의 섹션(section)이 된다. 첫 번째 섹션은 첫 번째 페이지부터 열 번째 ..
(6) 답글 쓰기 기능 구현 * 지금까지 게시판에서 글 목록을 보고, 새 글을 쓰고, 글 상세를 보고, 수정 및 삭제하는 기능까지 구현해 보았다. 얼추 게시판의 기능을 모두 갖춘 것 같다. 하지만 아직 빠진 것이 있다. 보통 쇼핑몰 게시판을 보면 댓글, 즉 답글을 쓸 수 있는 기능이 있다. * 따라서 이번에는 게시판의 답글 쓰는 기능을 구현해 보자. 다음은 그 과정이다. (1) 글 상세창(viewArticle.jsp)에서 답글쓰기를 클릭하면 요청명을 /board/replyForm.do로 하여 부모 글 번호(parentNO)를 컨트롤러로 전송한다. (2) 답글 쓰기창(replyForm.jsp)에서 답변 글을 작성한 후 요청명을 /board/addReply.do로 하여 컨트롤러로 요청한다. (3) 컨트롤러에..
(5) 글 삭제 기능 구현 * 이제 게시판의 글을 삭제하는 과정을 구현할 차례이다. 글을 삭제할 때는 테이블의 글뿐만 아니라 그 글의 자식 글과 이미지 파일도 함께 삭제해야 한다. * 글 삭제 과정은 다음과 같다. (1) 글 상세창(viewArticle.jsp)에서 삭제하기를 클릭하면 /board/removeArticle.do로 요청한다. (2) 컨트롤러에서는 글 상세창에서 전달받은 글 번호에 대한 글과 이에 관련된 자식 글들을 삭제한다. (3) 삭제된 글에 대한 이미지 파일 저장 폴더도 삭제한다. 다음 코드는 오라클의 계층형 SQL문을 이용해 부모 글에 대한 자식 글을 삭제하는 SQL문이다. DELETE FROM t_board WHERE articleNO IN ( SELECT articleNO FROM..
(4) 글 수정 기능 구현 * 이번에는 기존에 작성한 글을 수정하는 기능을 구현해 보자. * 글 수정 기능을 구현하는 과정은 다음과 같다. (1) 글 상세창(viewArticle.jsp)에서 '수정하기'를 클릭해 글 정보를 표시하는 입력창들을 활성화한다. (2) 글 정보와 이미지를 수정한 후 '수정반영하기'를 클릭해 컨트롤러에 /board/modArticle.do로 요청한다. (3) 컨트롤러는 요청에 대해 upload() 메서드를 이용하여 수정된 데이터를 Map에 저장하고 반환한다. (4) 컨트롤러는 수정된 데이터를 테이블에 반영한 후 temp 폴더에 업로드된 수정 이미지를 글 번호 폴더로 이동한다. (5) 마지막으로 글 번호 폴더에 있던 원래 이미지 파일을 삭제한다. 1. sec03.brd05 패키지를..
(3) 글 상세 기능 구현 * 글 목록에서 글 제목을 클릭했을 때 글의 상세 내용을 보여주는 기능을 구현해 보자. * 다음은 글 상세 기능을 구현하는 과정이다 (1) 글 목록창에서 글 제목을 클릭해 컨트롤러에 /board/viewArticle.do?articleNO=글번호 로 요청한다. (2) 컨트롤러는 전송된 글 번호로 글 정보를 조회하며 글 상세창(viewArticle.jsp)으로 포워딩한다. (3) 글 상세창(viewArticle.jsp)에 글 정보와 이미지 파일이 표시된다. 1. 글 상세 기능에 관련된 자바 코드와 JSP 파일을 다음과 같이 추가한다. 글 상세 기능을 구현하는 데 필요한 첨부 이미지를 표시하기 위해 sec03.common 패키지를 만든 후 FileDownloadController ..
(2) 게시판 글쓰기 구현 * 게시판 글쓰기 기능을 구현하는 과정은 다음과 같다. (1) 글 목록창(listArticles.jsp)에서 글쓰기창을 요청한다. (2) 글쓰기창에서 글을 입력하고 컨트롤러에 /board/addArticle.do로 글쓰기를 요청한다. (3) 컨트롤러에서 Service 클래스로 글쓰기창에서 입력한 글 정보를 전달해 테이블에 글을 추가한다. (4) 새 글을 추가하고 컨트롤러에서 다시 /board/listArticles.do로 요청하여 전체 글을 표시한다. * 글 추가는 한 개의 글을 추가하므로 /addArticle.do 이고, 글 목록에 출력하는 경우는 여러 개의 글을 조회하므로 /listArticles.do 이며 s가 붙는다. * 클래스와 JSP를 구현하기 전에 프로젝트의 Web..
(1) 게시판 글 목록 보기 구현 * 다음 그림은 게시판의 글 목록 보기 기능을 구현하는 과정을 나타낸 것이다. * 브라우저에서 /board/listArticle.do로 요청하면 Controller가 전달받아 Service와 DAO를 거쳐 글 정보를 조회한 후 listArticle.jsp로 전달하여 화면에 글 목록을 보여준다. 여기서 문제는 글 목록을 그냥 나열만 하는 것이 아니라 부모 글에 대한 답변 글을 계층 구조로 보여주어야 한다는 것이다. 이렇게 하려면 어떻게 해야 할까? * 오라클에서 제공하는 계층형 SQL문 기능을 이용하면 이를 구현할 수 있다. -- LEVEL : 오라클에서 제공하는 가상 컬럼으로 글의 깊이(depth)를 나타낸다. (부모 글은 1이다) SELECT LEVEL , articl..
4. 모델2로 답변형 게시판 구현하기 * 게시판 기능은 모든 웹 페이지의 기본 기능을 포함하기 때문에 게시판을 만들 수 있다면 모든 웹 페이지를 쉽게 만들 수 있다. * 이번에 우리가 실습을 통해 구현할 답변형 게시판의 글 목록은 다음과 같은 형태이다. * 부모 글이 목록에 나열되면 각 부모 글에 대해 답변 글(자식 글)이 계층 구조로 나열되어 표시된다. 그리고 답변 글에 대한 답변 글은 또 다시 계층 구조로 표시된다. 즉, 답변 글에 또 답변 글을 올릴 수 있는 기능을 하는 게시판이다. * 다음 표는 답변형 게시판 글을 저장하는 테이블 컬럼이다. 게시판의 글을 작성하려면 회원이 로그인 상태여야 한다. 즉, 각 글에는 작성자 ID가 저장된다. 따라서 게시판 테이블의 ID 컬럼은 회원 테이블의 ID 컬럼에..
(3) 회원 정보 수정 및 삭제 기능 구현 * 이번에는 회원 정보를 수정하고 삭제하는 기능을 구현해 보자. * 회원 정보를 수정하는 과정은 다음과 같다. (1) 회원 정보 수정창에서 회원 정보를 수정하고 '수정하기'를 클릭해 /member/modMember.do로 컨트롤러에 요청한다. (2) 컨트롤러는 전송된 회원 수정 정보를 가져온 후 테이블에서 회원 정보를 수정한다. (3) 수정을 마친 후 컨트롤러는 다시 회원 목록창을 보여준다. * 삭제하는 과정도 크게 다르지 않다. (1) 회원 목록창에서 '삭제'를 클릭해 요청명 /member/delMember.do와 회원 ID를 컨트롤러로 전달한다. (2) 컨트롤러는 request의 getPathInfo() 메서드를 이용해 요청명을 가져온다. (3) 회원 ID를..
3. MVC를 이용한 회원 관리 * 우리는 앞에서 JSP를 이용해 모델1 방식으로 회원 관리 기능을 구현한 적이 있다. 즉, 모델1 방식이었기 때문에 모든 기능을 JSP에서 처리한 것이나 마찬가지이다. * 이번에는 MVC 방식으로 브라우저의 요청은 서블릿이 맡고, 비즈니스 처리는 모델이 맡고, 화면은 JSP가 맡는 방식으로 회원 관리 기능을 다시 구현해 보자. 결국 같은 프로그램을 개발하는 것이지만 방법을 달리함으로써 개발 원리를 쉽게 익히는 것이다. (1) 회원 정보 조회 기능 구현 * 다음은 MVC로 구현한 회원 정보 조회 기능을 실행하는 과정이다. (1) 브라우저에서 /mem.do로 요청한다. (2) 서블릿 MemberController가 요청을 받아 MemberDAO의 listMembers() 메..