본문 바로가기

웹 개발

css,bootstrap사용해서 게시판만들기(3)

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