728x90
이번엔 전의 게시판의 글에 댓글 기능을 추가했다.
댓글 입력, 삭제, 페이징 기능도 추가했다.
일단 boardOne.jsp에 댓글을 달 수 있는 폼을 추가했다.
<!-- 댓글 입력 폼 -->
<div>
<form action="./insertCommentAction.jsp" method="post">
<input type="hidden" name="boardno" value="<%=no%>">
<div class="form-floating">
<textarea class="form-control" placeholder="Leave a comment here" id="floatingTextarea" name="memo" style="height: 100px; margin-top: 10px;"></textarea>
<label for="floatingTextarea">댓글 입력하기</label>
</div>
<button type="submit" class="btn btn-light shadow-sm bg-body-#117C74 rounded" style="border:1px solid #117C74; color: white; background-color: #0C7971; float: right; margin-top: 5px;">
댓글 입력
</button>
</form>
</div>
댓글을 폼을 통해 입력하면
해당 내용이 insertCommentAction.jsp로 넘어간다.
insertCommentAction.jsp
<%@page import="java.sql.*"%>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<%
// post 인코딩 설정
request.setCharacterEncoding("utf-8");
// 요청 값 분석
int boardNo = Integer.parseInt(request.getParameter("boardno"));
String memo = request.getParameter("memo");
System.out.println("insertCommentAction boardNo = " + boardNo); // boardNo 값 체크
System.out.println("insertCommentAction memo = " + memo); // memo 값 체크
// DB 연결, 초기화
Class.forName("org.mariadb.jdbc.Driver");
Connection conn = null;
PreparedStatement stmt = null;
/*
SQL 쿼리
INSERT INTO COMMENT(boardno, memo)
VALUES (?, ?)
*/
String sql = "INSERT INTO COMMENT(boardno, memo, createdate) VALUES (?, ?, NOW())";
conn = DriverManager.getConnection("jdbc:mariadb://127.0.0.1:3307/board","root","****");
stmt = conn.prepareStatement(sql);
stmt.setInt(1, boardNo);
stmt.setString(2, memo);
System.out.println(stmt); // stmt ?값 교체 체크
// row가 1이면 1행 입력 성공, 0이면 입력 실패
int row = stmt.executeUpdate();
if(row == 1) {
System.out.println("입력 성공");
} else {
System.out.println("입력 실패");
}
// 목록(boardOne.jsp)을 재 요청(redirect)하게 한다.
response.sendRedirect("./boardOne.jsp?no=" + boardNo);
//DB 자원 반납
stmt.close();
conn.close();
%>
댓글을 삭제할 수 있는 jsp이다.
deleteComment.jsp
<%@page import="java.sql.*"%>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%
// boardOne.jsp로 리다이렉트할때 매개값으로 사용
int boardNo = Integer.parseInt(request.getParameter("boardno"));
// 댓글 삭제시 사용
int commentNo = Integer.parseInt(request.getParameter("commentno"));
System.out.println("deleteComment - boardNo = " + boardNo); // boardNo 값 체크
System.out.println("deleteComment - commentNo = " + commentNo); // commentNo 값 체크
// DB 연결 및 초기화
Class.forName("org.mariadb.jdbc.Driver");
Connection conn = null;
PreparedStatement stmt = null;
conn = DriverManager.getConnection("jdbc:mariadb://127.0.0.1:3307/board","root","****");
/*
SQL 쿼리문
DELETE FROM comment
WHERE commentno = ?
*/
String sql = "DELETE FROM comment WHERE commentno = ?";
stmt = conn.prepareStatement(sql);
stmt.setInt(1, commentNo);
int row = stmt.executeUpdate();
System.out.println("deleteComment - row = " + row); // row 값 체크
response.sendRedirect("./boardOne.jsp?no=" + boardNo);
//DB 자원 반납
stmt.close();
conn.close();
%>
728x90
'웹 개발' 카테고리의 다른 글
css,bootstrap사용해서 게시판만들기(5) (0) | 2024.03.22 |
---|---|
css,bootstrap사용해서 게시판만들기(4) (0) | 2024.03.22 |
css,bootstrap사용해서 게시판만들기(2) (0) | 2024.03.21 |
css,bootstrap사용해서 게시판만들기(1) (0) | 2024.03.21 |
JSP와 MariaDB 연동하기(7) (0) | 2024.03.18 |