프로그래밍/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