- 글 그룹: grp
- 글 그룹 내부 순서 : grps
- 글 그룹 깊이 : grpl
1. board_view1.jsp 파일에서 답글쓰기 btn 클릭
2. 버튼 클릭시 board_reply1.jsp 파일을 요청하며 톰캣은 이 jsp 파일을 java 파일로 생성하여 웹 브라우저에 전달합니다. 위에 내용과 같이 seq(게시글 번호)도 같이 보냅니다. 글쓴이, 제목, 비밀번호를 다 작성합니다.
3. javascript 코드는 아래와 같이 작성되었습니다. 버튼을 눌렀을 때 각 항목의 값이 제대로 들어가 있나 확인합니다. 이는 DB에서 각 컬럼에 특성과 관련이 있습니다. 데이터를 insert할 때 필수값 인지(not null 또는 primary key 또는 unique).. 에 따라서 얼마든지 변경될 수 있습니다.
버튼을 누르면 아래와 경로와 같이 form 태그를 통해서 action이 실행됩니다. 이때 seq는 hidden으로 넘겨집니다. 즉, post 방식으로 헤더에 포함되어서 전달됩니다. 왜 url에 포함하지 않느냐고 여쭤봤더니 대부분에 경우에는 url에 포함하지 않는 post 방식으로 전달한다고 합니다.
4.reply1_ok.jsp 에서는 전달된 값들을 받습니다.
5. 우선 전달받은 seq(댓글을 쓰려고 하는 부모글의 번호)를 통해서 grp,grps,grpl을 확인합니다.
String sql = "select grp, grps, grpl from rep_board1 where seq=?";
6. 댓글을 작성할 때 사용하는 알고리즘은 아래와 같습니다.
- grp(글 그룹 번호)는 부모글의 grp와 같다.
- grps(글 그룹 내부 순서)는 부모글과 같은 grp 번호라면 해당한다.
- 부모글의 grps 보다 큰 grps는 무조건 1씩 증가한다.
- 댓글을 작성하려는 본인은 부모글의 grps에 +1을 한다.
- grpl( 글 그룹 깊이) 부모글 grpl에 +1을 한다.
따라서 update 쿼리문은 아래와 같이 작성합니다.
sql = "update rep_board1 set grps=grps+1 where grp=? and grps > ?";
7. insert 진행
sql = "insert into rep_board1 values ( 0, ?, ?, ?, ?, ?, ?, ?, ?, 0, ?, now())";
'Java' 카테고리의 다른 글
[Java]경로 표기법 (0) | 2022.11.23 |
---|---|
[JSP] 톰캣 실행 시 최상위 경로 / 베이스 폴더 위치는 webapp이다. (0) | 2022.11.23 |
[JSP] 리다이렉트를 이용한 페이지 이동 (0) | 2022.11.16 |
[JSP] 페이지 번호 프로그래밍을 위한 게시판 샘플(테스트) 데이터 생성 (0) | 2022.11.16 |
[JSP] 이전 페이지에서 라디오 버튼에서 선택된 값을 다음 페이지로 checked로 가져가기 (0) | 2022.11.15 |
댓글