Programing_Java
[Servlet] 자바 서블릿을 이용한 게시글 좋아요 기능 구현 🚀 본문
✅ 웹 애플리케이션 개발에서 사용자의 인터랙션을 관리하는 것은 중요함
✅ '좋아요' 기능은 사용자들이 콘텐츠에 대한 선호도를 표현할 수 있는 간단하면서도 강력한 도구
1️⃣ 데이터베이스 상호작용
• 좋아요 기능의 핵심은 사용자의 입력에 따라 데이터베이스에서 해당 게시글의 좋아요 수를 업데이트하는 것
• 사용자가 좋아요 버튼을 클릭할 때, 서블릿은 BoardComboLikedDTO 데이터 전송 객체를 생성하여 사용자의 요청을 처리
• DTO는 사용자의 회원 번호와 게시글 번호를 포함하고 있습니다.
BoardComboLikedDTO boardComboLikedDTO = new BoardComboLikedDTO();
boardComboLikedDTO.setMemberNumber(memberNumber);
boardComboLikedDTO.setBoardComboNumber(boardComboNumber);
2️⃣ BoardComboLikedDAO 데이터 접근 객체를 통해 데이터베이스에 저장되거나 삭제
• 사용자가 좋아요를 누른 상태라면 insert 메서드를 통해 좋아요 등록
• 이미 좋아요를 누른 상태에서 다시 클릭했다면 delete 메서드를 통해 좋아요 취소
• 각 메서드 호출은 게시글의 현재 좋아요 수 업데이트
boolean isLiked = false;
if ("INSERTLIKED".equals(orderCondition)) {
isLiked = boardComboLikedDAO.insert(boardComboLikedDTO);
} else if ("DELETELIKED".equals(orderCondition)) {
isLiked = boardComboLikedDAO.delete(boardComboLikedDTO);
}
3️⃣ 응답 처리
• 작업의 결과에 따라 서버는 적절한 응답을 클라이언트에 반환
• 만약 데이터베이스 작업이 성공적으로 완료되었다면, 게시글의 최신 좋아요 수를 클라이언트에 전달
→ AJAX 요청을 통해 비동기적으로 화면에 반영될 수 있어 사용자 경험이 향상
response.setContentType("text/plain");
response.setCharacterEncoding("UTF-8");
if (isLiked) {
response.getWriter().write(String.valueOf(boardComboLikedCount));
} else {
response.getWriter().write("false");
}
• 실패한 경우, "false" 문자열을 반환하여 클라이언트 측에서 적절한 오류 처리 또는 사용자 알림을 구현
✅서버와 클라이언트 간의 효율적인 데이터 통신이 가능
✅ 사용자가 웹 페이지를 새로 고침하지 않고도 실시간으로 상호작용을 경험
✅ 좋아요 기능은 비교적 간단한 구현이지만, 사용자의 참여를 유도하고 콘텐츠에 대한 피드백을 제공하는 데 큰 역할