(봄) 게시판 만들기 게시판 (8) 댓글 세션 삭제/수정

사용자가 작성한 댓글이나 게시물을 알기 위해서는 먼저 HttpSession 객체의 세션 변수에 값이 있는지 확인해야 합니다.

MemberController 컨트롤러


미리 로그인하기 위해 memberVO에 저장된 데이터를 MemberController의 HttpSession 객체 세션 값에 넣고 이 loginInfo를 호출하기로 했습니다.

즉, 로그인하자마자 session 값이 제거될 때까지 session이 memberVO에 유지됩니다.


로그인 후 콘솔 창을 확인하면 위와 같이 session 값에 memId가 qkrwnghd1234로 입력되어 있는 것을 확인할 수 있습니다.

board_detail.html


이전 게시물에서는 respondVO의 데이터를 응답 이름으로 추출했습니다.

이 시점에서 수정 및 삭제 버튼이 생성되었으며 세션에 저장된 loginInfo가 null이 아니고 memId가 respondWriter의 값과 동일한 경우 삭제 및 편집 기능을 수행할 수 있도록 코드가 작성되도록 태그를 묶었습니다.


따라서 이렇게 로그인되어 있는 한 위에서 설명한 대로 자신이 작성한 댓글을 삭제 및 수정할 수 있습니다.


보정

board_detail.js


편집 버튼을 클릭하면 위의 코드에서 볼 수 있듯이 정적으로 js 폴더에서 자바스크립트 함수인 board_detail.js가 실행됩니다.

setInput 함수를 입력하고 적절한 코드 명령문을 실행하십시오.

JavaScript를 통해 js에서 answerNum 및 boardNum 데이터를 호출하고 데이터를 변환합니다.

HTML에서 이것을 설정하고 js에서 selectedTag로 변수를 지정하면 값이 “수정”된 경우 아래 코드가 실행됩니다.


편집 버튼 클릭을 통해 댓글 내용이 있는 태그로 이동합니다.

(parentElement – 상위 태그) <- 웹페이지에서 F12를 누르면 바로 위에 있는 div가 부모태그임을 알 수 있다.

previousElementSibling은 형제 태그를 찾아야 합니다.

형제의 날이다.


자바스크립트 내용을 보면 댓글 내용을 저장한 후 innerHTML = ‘ ‘를 이용하여 내용을 먼저 비우고 태그 안의 내용을 삭제하고,

그런 다음 콘텐츠가 다시 채워지고 HTML 코드가 작은따옴표( ‘ ‘ )와 백틱( ` ` )을 사용하여 js로 작성됩니다.

이 수정된 HTML 문장이 준비되면 afterbegin으로 인해 위의 노란색 상자 div의 str 데이터가 insertAdjacentHTML에 채워집니다.

먼저 HTML 태그의 양식 옆에 있는 컨트롤로 이동합니다.

ReplyController 컨트롤러



데이터를 송수신해야 하므로 먼저 쿼리로 이동하겠습니다.

응답 매퍼


ReplyService 인터페이스


매개변수 및 반환 유형이 결정되는 방식(가급적 런타임 시 쿼리 작성)
매개변수: 쿼리 실행 시 빈 값을 채우기 위해 사용
1. 쿼리에 입력할 값이 없는 경우: 매개변수 없음
2. 하나의 값만 입력해야 하는 경우
2-1) 기입할 값이 숫자인 경우: int 타입의 파라미터
2-2) 채울 값이 문자인 경우 : 파라미터 String 타입
3. 여러 값을 입력해야 하는 경우: 매개변수로 VO 객체.
반환 유형: 쿼리 실행 결과를 가져오는 방법에 대한 정의
INSERT, UPDATE, DELETE 쿼리 결과는
반환 유형으로 int 또는 void를 사용할 수 있습니다.

수신 int에는 return이 필요하거나 void에는 x가 필요합니다.


SELECT 쿼리 결과의 반환 유형은 크게 두 가지 유형으로 나뉩니다.


검색 결과 데이터의 한 행(VO 개체)만 검색해야 합니다.


검색 결과 데이터가 0개 이상의 행을 포함하는 변수인 경우: 목록-물체.

ReplyServiceImpe 클래스


모든 서비스 작업을 완료하면 컨트롤러로 돌아가 쿼리를 적용할 수 있습니다.

ReplyController 컨트롤러


아래와 같이 응답 VO의 boardNum 값과 현재 boardNum 값은 동일한 데이터이며 상세 페이지로 이동됩니다.


따라서 댓글은 위의 조건에 따라서만 수정되며 최종 수정 과정은 다음과 같습니다.


끄다

board_detail.html


삭제 버튼을 누르면 응답 컨트롤러의 deleteReply 메서드로 이동하여 두 개의 데이터를 가져옵니다.

그들은 AnswerNum과 BoardNum입니다.

ReplyController 컨트롤러


가져온 데이터를 쿼리해야 하므로 매퍼로 전환해 보겠습니다.

답변 매퍼.xml


ReplyService 인터페이스


매개변수 및 반환 유형이 결정되는 방식(가급적 런타임 시 쿼리 작성)
매개변수: 쿼리 실행 시 빈 값을 채우기 위해 사용
1. 쿼리에 입력할 값이 없는 경우: 매개변수 없음
2. 하나의 값만 입력해야 하는 경우
2-1) 기입할 값이 숫자인 경우: int 타입의 파라미터
2-2) 채울 값이 문자인 경우 : 파라미터 String 타입
3. 여러 값을 입력해야 하는 경우: 매개변수로 VO 객체.
반환 유형: 쿼리 실행 결과를 가져오는 방법에 대한 정의
INSERT, UPDATE, DELETE 쿼리 결과는
반환 유형으로 int 또는 void를 사용할 수 있습니다.

수신 int에는 return이 필요하거나 void에는 x가 필요합니다.


SELECT 쿼리 결과의 반환 유형은 크게 두 가지 유형으로 나뉩니다.


무조건 검색 결과 데이터 중 한 행만 검색: VO 개체.
검색 결과 데이터가 0개 이상의 행을 포함하는 변수인 경우: 목록-물체.

ReplyServiceImple 클래스


ReplyController 컨트롤러


이렇게 코드를 완성하고 다시 리다이렉트로 인해 BoardNum 값으로 BoardDetail 컨트롤러를 이동시키면 데이터가 삭제됩니다.

이렇게 댓글 데이터의 수정과 삭제를 세션별로 적절히 살펴보았다.

다음 포스팅에서는 게시물 삭제 방법에 대해 알아보도록 하겠습니다.