프로그래밍/JSP

JSP 게시판 만들기(4)

하와이블루 2022. 12. 6. 22:24
728x90

 

 

글 내용 상세보기 페이지에서 댓글을 추가하고 삭제하는 기능을 구현해보자.

 

댓글 추가 처리 페이지(reply_ok.jsp) 작성

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page import="java.sql.*"%>
<%@ page import="com.koreait.db.Dbconn"%>
<%
	request.setCharacterEncoding("UTF-8");
	String userid = (String)session.getAttribute("userid");
	if(userid == null){
%>
<script>
	alert('로그인 후 이용하세요');
	location.href='../login.jsp';
</script> 
<%		
	}else{
		
		String b_idx = request.getParameter("b_idx");
		String r_content = request.getParameter("r_content");
		
		Connection conn = null;
		PreparedStatement pstmt = null;
				
		String sql = "";
		
		try{
			conn = Dbconn.getConnection();
			if(conn != null){
				sql = "insert into tb_reply (r_userid, r_content, r_boardidx) values (?, ?, ?);";
				pstmt = conn.prepareStatement(sql);
				pstmt.setString(1, userid);
				pstmt.setString(2, r_content);
				pstmt.setString(3, b_idx);
				pstmt.executeUpdate();	
			}
		}catch (Exception e) {
			e.printStackTrace();
		}
%>
	<script>
		location.href='./view.jsp?b_idx=<%=b_idx%>';
	</script> 
<%	
	}
%>

 

글 상세보기 페이지(view.jsp)에서 글 인덱스 번호와 댓글 내용을 post 방식으로 reply_ok.jsp에 보내주게되면 전달받은 데이터는 댓글 테이블(tb_reply)에 데이터를 추가된다. 처리 이후 글 상세보기 페이지(view.jsp)로 이동한다.

 

 

 

 

 

 

댓글 삭제 처리 페이지(reply_del_ok.jsp) 작성

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page import="java.sql.*"%>
<%@ page import="com.koreait.db.Dbconn"%>
<%
	String userid = (String)session.getAttribute("userid");
	if(userid == null){
%>
	<script>
	alert('로그인 후 이용하세요');
	location.href='../login.jsp';
	</script>
<%			
	}else{
		
		String r_idx = request.getParameter("r_idx");
		String b_idx = request.getParameter("b_idx");
		
		Connection conn = null;
		PreparedStatement pstmt = null;

		String sql = "";
		
		try{
			conn = Dbconn.getConnection();
			if(conn != null){
				sql = "delete from tb_reply where r_idx=?";
				pstmt = conn.prepareStatement(sql);
				pstmt.setString(1, r_idx);
				pstmt.executeUpdate();
			}
		}catch (Exception e) {
			e.printStackTrace();
		}
	
%>
	<script>
		alert('댓글이 삭제되었습니다.');
		location.href='./view.jsp?b_idx=<%=b_idx%>';
	</script>
<%
}
%>

 

글 상세보기 페이지(view.jsp)에서 댓글 삭제 버튼 클릭시 댓글의 인덱스 번호(r_idx)와 글 인데스 번호(b_idx)를 get방식으로 전달하여 댓글 삭제 처리 페이지(reply_del_ok.jsp)에서 request.getParameter로 받는다.

 

댓글 테이블(tb_reply)에서 댓글 인덱스 번호(r_idx)와 맞는 데이터를 삭제(delete)하고 파라미터로 가져온 글 인덱스 번호(b_idx)를 이용하여 다시 글 상세보기페이지(view.jsp)로 이동한다.

 

 

 

댓글 추가 결과

 

추가된 댓글을 확인해보면 본인이 작성한 댓글에만 삭제 버튼이 추가된 것을 볼 수 있다.

 

 

 

삭제하기
삭제하기

 

삭제 완료

728x90