๐Ÿ’ป

JSP ํ”„๋กœ๊ทธ๋ž˜๋ฐ - [MVC/DB์—ฐ๋™] ๊ฒŒ์‹œํŒ ํŽ˜์ด์ง€ (ํŽ˜์ด์ง€ ๋ฒˆํ˜ธ, ๋Œ“๊ธ€ ๋‹ฌ๊ธฐ, ๊ธ€์“ฐ๊ธฐ, ๊ธ€ ์ˆ˜์ •ํ•˜๊ธฐ, ๊ธ€ ์‚ญ์ œํ•˜๊ธฐ) (3) ๋ณธ๋ฌธ

KITRI/JSP

JSP ํ”„๋กœ๊ทธ๋ž˜๋ฐ - [MVC/DB์—ฐ๋™] ๊ฒŒ์‹œํŒ ํŽ˜์ด์ง€ (ํŽ˜์ด์ง€ ๋ฒˆํ˜ธ, ๋Œ“๊ธ€ ๋‹ฌ๊ธฐ, ๊ธ€์“ฐ๊ธฐ, ๊ธ€ ์ˆ˜์ •ํ•˜๊ธฐ, ๊ธ€ ์‚ญ์ œํ•˜๊ธฐ) (3)

๋˜ํšจ๋‹ˆ 2020. 7. 7. 10:14

[์ด์ „]

2020/07/07 - [KITRI/JSP] - JSP ํ”„๋กœ๊ทธ๋ž˜๋ฐ - [MVC/DB์—ฐ๋™] ๊ฒŒ์‹œํŒ ํŽ˜์ด์ง€ (ํŽ˜์ด์ง€ ๋ฒˆํ˜ธ, ๋Œ“๊ธ€ ๋‹ฌ๊ธฐ, ๊ธ€์“ฐ๊ธฐ, ๊ธ€ ์ˆ˜์ •ํ•˜๊ธฐ, ๊ธ€ ์‚ญ์ œํ•˜๊ธฐ)

 

JSP ํ”„๋กœ๊ทธ๋ž˜๋ฐ - [MVC/DB์—ฐ๋™] ๊ฒŒ์‹œํŒ ํŽ˜์ด์ง€ (ํŽ˜์ด์ง€ ๋ฒˆํ˜ธ, ๋Œ“๊ธ€ ๋‹ฌ๊ธฐ, ๊ธ€์“ฐ๊ธฐ, ๊ธ€ ์ˆ˜์ •ํ•˜๊ธฐ, ๊ธ€ ์‚ญ๏ฟฝ

index.jsp <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib prefix="c" uri = "http://java.sun.com/jsp/jstl/core" %> ์‹œ์ž‘ํŽ˜์ด์ง€ ํšŒ์›..

hyonee.tistory.com

 

 

 

 

 

 

 

 

์‹œ์ž‘ ํŽ˜์ด์ง€(index.jsp)

index.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri = "http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>์‹œ์ž‘ํŽ˜์ด์ง€</title>
</head>

<body>
   <c:set var = "root" value = "${pageContext.request.contextPath}"/>
	
   <c:if test="${memberLevel==null}">
    	<a href="${root}/member/register.do">ํšŒ์›๊ฐ€์ž…</a>
  		<a href="${root}/member/login.do">๋กœ๊ทธ์ธ</a>	
   </c:if>

   <c:if test="${memberLevel!=null}">
    	<a href="${root}/member/delete.do">ํšŒ์›ํƒˆํ‡ด</a>
    	<a href="${root}/member/update.do">ํšŒ์›์ˆ˜์ •</a>
  		<a href="${root}/member/logout.do">๋กœ๊ทธ์•„์›ƒ</a>	
  		
  		<c:if test="${memberLevel=='MA'}">
  			<h3>๊ด€๋ฆฌ์ž ํŽ˜์ด์ง€</h3>
  			<a href="">ํšŒ์›๊ด€๋ฆฌ</a>
  		</c:if>
   </c:if>
	<br /><br />
	
	<a href="${root}/board/write.do">๊ฒŒ์‹œํŒ ๊ธ€์“ฐ๊ธฐ</a>
	<a href="${root}/board/list.do">๋ชฉ๋ก ๊ฒŒ์‹œํŒ</a>
</body>
</html>

 


- ๊ฒŒ์‹œํŒ ๊ธ€ ๋ฒˆํ˜ธ -

 

๊ธ€๋ฒˆํ˜ธ๋Š” ๋ฐ”๋กœ ์ฆ๊ฐ€ํ•˜๊ณ 

๊ทธ๋ฃน๋ฒˆํ˜ธ๋Š” ๊ฐ™๊ฒŒํ•œ๋‹ค.

๊ธ€ ์ˆœ์„œ๋Š” ์ž์‹ ๋ณด๋‹ค ํฐ๊ฐ’์ด ์žˆ์œผ๋ฉด ์ฆ๊ฐ€์‹œํ‚ค๊ณ  ์ž์‹ ๋„ +1 ์‹œํ‚จ๋‹ค.

๊ธ€๋ ˆ๋ฒจ +1 ์‹œํ‚จ๋‹ค.

 

๋‚ด์šฉ Command DB
  ๊ธ€๋ฒˆํ˜ธ ๊ทธ๋ฃน๋ฒˆํ˜ธ ๊ธ€์ˆœ์„œ ๊ธ€๋ ˆ๋ฒจ ๊ธ€๋ฒˆํ˜ธ ๊ทธ๋ฃน๋ฒˆํ˜ธ ๊ธ€์ˆœ์„œ ๊ธ€๋ ˆ๋ฒจ
์•ˆ๋…•ํ•˜์„ธ์š” 0 1 0 0 1 1 0 0
๋ฐ˜๊ฐ€์›Œ์š”. 0 1 0 0 2 2 0 0
ํ•˜์ด 0 1 0 0 3 3 0 0
๋ฐฐ๊ณ ํŒŒ! 0 1 0 0 4 4 0 0
[๋‹ต๊ธ€] ์•ˆ๋…• 1 1 0 0 5 1 5 1
[๋‹ต๊ธ€] ์•ˆ 1 1 0 0 6 1 2 1
[๋‹ต๊ธ€] ๋…• 1 1 0 0 7 1 1 1
์กธ๋ ค 0 1 0 0 8 5 0 0
[๋‹ต๊ธ€] ๋ฐ˜ 2 2 0 0 9 2 2 1
[๋‹ต๊ธ€] ๊ฐ€ 2 2 0 0 10 2 1 1
[๋‹ต๋‹ต๊ธ€] a 6 1 2 1 11 1 4 2
[๋‹ต๋‹ต๊ธ€] b 6 1 2 1 12 1 3 2
[๋‹ต๋‹ต๊ธ€] ใ…Ž 5 1 5 1 13 1 7 2
[๋‹ต๋‹ต๊ธ€] ใ…Žใ…Ž 5 1 5 1 14 1 6 2

(1) ์•ˆ๋…•ํ•˜์„ธ์š”.  0100

     -> (5) [๋‹ต๊ธ€] ์•ˆ๋…•  1100

          -> (13) [๋‹ต๋‹ต๊ธ€] ใ…Ž 5151

          -> (14) [๋‹ต๋‹ต๊ธ€] ใ…Žใ…Ž 5151

     -> (6) [๋‹ต๊ธ€] ์•ˆ 1100

          -> (9) [๋‹ต๋‹ต๊ธ€] a   6121

          -> (10) [๋‹ต๋‹ต๊ธ€] b   6121

     -> (7) [๋‹ต๊ธ€] ๋…• 1100

(2) ๋ฐ˜๊ฐ€์›Œ์š”.  0100

     -> (11) [๋‹ต๊ธ€] ๋ฐ˜ 2200

     -> (12) [๋‹ต๊ธ€] ๊ฐ€ 2200

(3) ํ•˜์ด  0100

(4) ๋ฐฐ๊ณ ํŒŒ!  0100

(8) ์กธ๋ ค 0100

 


Oracle SQL developer๋กœ ๊ฐ€์„œ board ํ…Œ์ด๋ธ”๊ณผ ์‹œํ€€์Šค๋ฅผ ์ƒ์„ฑํ•ด์ค€๋‹ค.

 

 

BoardDao.java

package com.java.board.model;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Timestamp;
import java.util.ArrayList;
import java.util.Date;

import com.java.database.ConnectionProvider;
import com.java.database.jdbcUtil;

public class BoardDao {

    private static BoardDao instance = new BoardDao();

    public static BoardDao getInstance() {
	return instance;
    }

    public int insert(BoardDto boardDto) {
	Connection conn = null;
	PreparedStatement pstmt = null;
	int value = 0;

	writeNumber(boardDto, conn);
	

	try {
	    String sql = "insert into board(board_number, writer, subject, email, content, password, write_date, read_count, group_number, sequence_number, sequence_level) "
		         + "values (board_number_seq.nextval,?,?,?,?,?,?,?,?,?,?)";
	    conn = ConnectionProvider.getConnection();
	    pstmt = conn.prepareStatement(sql);

	    pstmt.setString(1, boardDto.getWriter());
	    pstmt.setString(2, boardDto.getSubject());
	    pstmt.setString(3, boardDto.getEmail());
	    pstmt.setString(4, boardDto.getContent().replace("\r\n", "<br/>"));
	    pstmt.setString(5, boardDto.getPassword());

	    /*
	     * Date date = boardDto.getWriteDate(); long time = date.getTime(); Timestamp ts
	     * = new Timestamp(time);
	     */

	    pstmt.setTimestamp(6, new Timestamp(boardDto.getWriteDate().getTime()));
	    pstmt.setInt(7, boardDto.getReadCount());
	    pstmt.setInt(8, boardDto.getGroupNumber());
	    pstmt.setInt(9, boardDto.getSequenceNumber());
	    pstmt.setInt(10, boardDto.getSequenceLevel());

	    value = pstmt.executeUpdate();
	} catch (Exception e) {
	    e.printStackTrace();
	} finally {
	    jdbcUtil.close(pstmt);
	    jdbcUtil.close(conn);
	}

	return value;
    }

    public void writeNumber(BoardDto boardDto, Connection conn) {
	// ๊ทธ๋ฃน๋ฒˆํ˜ธ(ROOT), ๊ธ€์ˆœ์„œ(์ž์‹), ๊ธ€๋ ˆ๋ฒจ(์ž์‹)
	int boardNumber = boardDto.getBoardNumber(); // 0
	int groupNumber = boardDto.getGroupNumber(); // 1
	int sequenceNumber = boardDto.getSequenceNumber(); // 0
	int sequenceLevel = boardDto.getSequenceLevel(); // 0

	PreparedStatement pstmt = null;
	ResultSet rs = null;
	String sql = null;

	try {

	    if (boardNumber == 0) { // ROOT : ๊ทธ๋ฃน๋ฒˆํ˜ธ
		sql = "select max(group_number) from board";
		conn = ConnectionProvider.getConnection();
		pstmt = conn.prepareStatement(sql);
		rs = pstmt.executeQuery();

		if (rs.next()) {
		    int max = rs.getInt(1);
		    boardDto.setGroupNumber(max + 1);
		}
	    } else { // ๋‹ต๊ธ€ : ๊ธ€ ์ˆœ์„œ, ๊ธ€ ๋ ˆ๋ฒจ
		
		sql = "update board set sequence_number=sequence_number+1 "
			+ "where group_number=? and sequence_number>?";

		conn = ConnectionProvider.getConnection();
		pstmt = conn.prepareStatement(sql);
		pstmt.setInt(1, groupNumber);
		pstmt.setInt(2, sequenceNumber);
		pstmt.executeUpdate();
		
		sequenceNumber = sequenceNumber + 1;
		sequenceLevel = sequenceLevel + 1;

		boardDto.setSequenceNumber(sequenceNumber);
		boardDto.setSequenceLevel(sequenceLevel);
	    }
	} catch (Exception e) {
	    e.printStackTrace();
	} finally {
	    jdbcUtil.close(rs);
	    jdbcUtil.close(pstmt);
	    jdbcUtil.close(conn);
	}
    }

    public int getCount() {
	int value = 0;
	Connection conn = null;
	PreparedStatement pstmt = null;
	ResultSet rs = null;

	try {
	    String sql = "select count(*) from board";
	    conn = ConnectionProvider.getConnection();
	    pstmt = conn.prepareStatement(sql);
	    rs = pstmt.executeQuery();

	    if (rs.next())
		value = rs.getInt(1);
	} catch (Exception e) {
	    e.printStackTrace();
	} finally {
	    jdbcUtil.close(rs);
	    jdbcUtil.close(pstmt);
	    jdbcUtil.close(conn);
	}
	return value;
    }

    public ArrayList<BoardDto> getBoardList(int startRow, int endRow) {
	ArrayList<BoardDto> boardList = null;
	Connection conn = null;
	PreparedStatement pstmt = null;
	ResultSet rs = null;

	try {
	    String sql = "select * from"
		    + "(select rownum as rnum, a.* from (select * FROM board order by group_number desc, sequence_number asc) a) b "
		    + "where b.rnum>=? and b.rnum<=?";

	    conn = ConnectionProvider.getConnection();
	    pstmt = conn.prepareStatement(sql);
	    pstmt.setInt(1, startRow);
	    pstmt.setInt(2, endRow);
	    rs = pstmt.executeQuery();

	    boardList = new ArrayList<BoardDto>();
	    while (rs.next()) {
		BoardDto boardDto = new BoardDto();
		boardDto.setBoardNumber(rs.getInt("board_number"));
		boardDto.setWriter(rs.getString("writer"));
		boardDto.setSubject(rs.getString("subject"));
		boardDto.setEmail(rs.getString("email"));
		boardDto.setContent(rs.getString("content"));
		
		boardDto.setPassword(rs.getString("password"));
		boardDto.setWriteDate(new Date(rs.getTimestamp("write_date").getTime()));
		boardDto.setReadCount(rs.getInt("read_count"));
		boardDto.setGroupNumber(rs.getInt("group_number"));
		boardDto.setSequenceNumber(rs.getInt("sequence_number"));
		boardDto.setSequenceLevel(rs.getInt("sequence_level"));

		boardList.add(boardDto);
	    }
	} catch (Exception e) {
	    e.printStackTrace();
	} finally {
	    jdbcUtil.close(rs);
	    jdbcUtil.close(pstmt);
	    jdbcUtil.close(conn);
	}
	return boardList;
    }

    public BoardDto read(int boardNumber) {
	Connection conn = null;
	PreparedStatement pstmt = null;
	ResultSet rs = null;
	BoardDto boardDto = null;
	
	try {
	    conn=ConnectionProvider.getConnection();
	    conn.setAutoCommit(false);
	    
	    String sqlUpdate = "update board set read_count=read_count+1"
	    		+ "where board_number =?";
	    pstmt = conn.prepareStatement(sqlUpdate);
	    pstmt.setInt(1, boardNumber);
	    int value = pstmt.executeUpdate();
	    if(value > 0) jdbcUtil.close(pstmt);
	    
	    String sqlSelect = "select * from board where board_number=?";
	    pstmt = conn.prepareStatement(sqlSelect);
	    pstmt.setInt(1, boardNumber);
	    rs = pstmt.executeQuery();
	    
	    if(rs.next()) {
		boardDto = new BoardDto();
		boardDto.setBoardNumber(rs.getInt("board_number"));
		boardDto.setWriter(rs.getString("writer"));
		boardDto.setSubject(rs.getString("subject"));
		boardDto.setEmail(rs.getString("email"));
		boardDto.setContent(rs.getString("content"));
		
		boardDto.setPassword(rs.getString("password"));
		boardDto.setWriteDate(new Date(rs.getTimestamp("write_date").getTime()));
		boardDto.setReadCount(rs.getInt("read_count"));
		boardDto.setGroupNumber(rs.getInt("group_number"));
		boardDto.setSequenceNumber(rs.getInt("sequence_number"));
		boardDto.setSequenceLevel(rs.getInt("sequence_level"));
	    }
	    
	    conn.commit();
	}catch (Exception e) {
	    e.printStackTrace();
	    jdbcUtil.rollBack(conn);
	}finally {
	    jdbcUtil.close(rs);
	    jdbcUtil.close(pstmt);
	    jdbcUtil.close(conn);
	}
	return boardDto;
    }

    public int delete(int boardNumber, String password) {
	Connection conn = null;
	PreparedStatement pstmt = null;
	int value = 0;
	
	try {
	    String sql = "delete from board where board_number=? and password=?";
	    
	    conn = ConnectionProvider.getConnection();
	    pstmt = conn.prepareStatement(sql);
	    pstmt.setInt(1, boardNumber);
	    pstmt.setString(2, password);
	    
	    value = pstmt.executeUpdate();
	} catch (Exception e) {
	    e.printStackTrace();
	} finally {
	    jdbcUtil.close(conn);
	    jdbcUtil.close(pstmt);	    
	}
	
	return value;
    }

    public BoardDto getContentList(int boardNumber) {
	Connection conn = null;
	PreparedStatement pstmt = null;
	ResultSet rs = null;
	BoardDto boardDto = null;
	
	try {
	    String sql = "select * from board where board_number = ?";
	    
	    conn = ConnectionProvider.getConnection();
	    pstmt = conn.prepareStatement(sql);
	    pstmt.setInt(1, boardNumber);
	    rs = pstmt.executeQuery();
	    
	    if(rs.next()) {
		boardDto = new BoardDto();
		boardDto.setBoardNumber(rs.getInt("board_number"));
		boardDto.setWriter(rs.getString("writer"));
		boardDto.setSubject(rs.getString("subject"));
		boardDto.setEmail(rs.getString("email"));
		boardDto.setContent(rs.getString("content"));
		
		boardDto.setPassword(rs.getString("password"));
		boardDto.setWriteDate(new Date(rs.getTimestamp("write_date").getTime()));
		boardDto.setReadCount(rs.getInt("read_count"));
		boardDto.setGroupNumber(rs.getInt("group_number"));
		boardDto.setSequenceNumber(rs.getInt("sequence_number"));
		boardDto.setSequenceLevel(rs.getInt("sequence_level"));
	    }
	} catch (Exception e) {
	    e.printStackTrace();
	} finally {
	    jdbcUtil.close(conn);
	    jdbcUtil.close(pstmt);
	    jdbcUtil.close(rs);
	}
	return boardDto;
    }
    
    public int update(int boardNumber, BoardDto boardDto) {
	Connection conn = null;
	PreparedStatement pstmt = null;
	int value = 0;

	try {
	    String sql = "update board set "
		    	+"subject=?, email=? "
		    	+",content=?, password=? "
		    	+",write_date=? "
	    		+"where board_number=? ";
	   
	    conn=ConnectionProvider.getConnection();    
	    
	    pstmt = conn.prepareStatement(sql);
	    pstmt.setString(1, boardDto.getSubject());
	    pstmt.setString(2, boardDto.getEmail());
	    pstmt.setString(3, boardDto.getContent().replace("\r\n", "<br/>"));
	    pstmt.setString(4, boardDto.getPassword());
	    pstmt.setTimestamp(5, new Timestamp(boardDto.getWriteDate().getTime()));
	    pstmt.setInt(6, boardNumber);
	    
	    System.out.println(sql);
		
	    value = pstmt.executeUpdate();
	    
	} catch (Exception e) {
	    e.printStackTrace();
	} finally {
	    jdbcUtil.close(conn);
	    jdbcUtil.close(pstmt);
	}
	return value;
    }
}

 

BoardDto.java

package com.java.board.model;

import java.util.Date;

public class BoardDto {
    private int boardNumber;
    private String writer;
    private String subject;
    private String email;
    private String content;
    private String password;
    
    private Date writeDate;
    private int groupNumber;
    private int sequenceNumber;
    private int sequenceLevel;
    private int readCount;
    
    public BoardDto() {
	super();
	// TODO Auto-generated constructor stub
    }
    
    public BoardDto(int boardNumber, String writer, String subject, String email, String content, String password,
	    Date writeDate, int groupNumber, int sequenceNumber, int sequenceLevel, int readCount) {
	super();
	this.boardNumber = boardNumber;
	this.writer = writer;
	this.subject = subject;
	this.email = email;
	this.content = content;
	this.password = password;
	this.writeDate = writeDate;
	this.groupNumber = groupNumber;
	this.sequenceNumber = sequenceNumber;
	this.sequenceLevel = sequenceLevel;
	this.readCount = readCount;
    }
    public int getBoardNumber() {
        return boardNumber;
    }
    public void setBoardNumber(int boardNumber) {
        this.boardNumber = boardNumber;
    }
    public String getWriter() {
        return writer;
    }
    public void setWriter(String writer) {
        this.writer = writer;
    }
    public String getSubject() {
        return subject;
    }
    public void setSubject(String subject) {
        this.subject = subject;
    }
    public String getEmail() {
        return email;
    }
    public void setEmail(String email) {
        this.email = email;
    }
    public String getContent() {
        return content;
    }
    public void setContent(String content) {
        this.content = content;
    }
    public String getPassword() {
        return password;
    }
    public void setPassword(String password) {
        this.password = password;
    }
    public Date getWriteDate() {
        return writeDate;
    }
    public void setWriteDate(Date writeDate) {
        this.writeDate = writeDate;
    }
    public int getGroupNumber() {
        return groupNumber;
    }
    public void setGroupNumber(int groupNumber) {
        this.groupNumber = groupNumber;
    }
    public int getSequenceNumber() {
        return sequenceNumber;
    }
    public void setSequenceNumber(int sequenceNumber) {
        this.sequenceNumber = sequenceNumber;
    }
    public int getSequenceLevel() {
        return sequenceLevel;
    }
    public void setSequenceLevel(int sequenceLevel) {
        this.sequenceLevel = sequenceLevel;
    }
    public int getReadCount() {
        return readCount;
    }
    public void setReadCount(int readCount) {
        this.readCount = readCount;
    }
    @Override
    public String toString() {
	return "BoardDao [boardNumber=" + boardNumber + ", writer=" + writer + ", subject=" + subject + ", email="
		+ email + ", content=" + content + ", password=" + password + ", writeDate=" + writeDate
		+ ", groupNumber=" + groupNumber + ", sequenceNumber=" + sequenceNumber + ", sequenceLevel="
		+ sequenceLevel + ", readCount=" + readCount + "]";
    }
}

 

jdbcUtil.java  ---> rollbackํ•จ์ˆ˜ ์ถ”๊ฐ€

package com.java.database;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;

public class jdbcUtil {
    public static void close(Connection conn) {
	if(conn!=null) {
	    try {
		conn.close();
	    } catch (Exception e) {
		e.printStackTrace();
	    }
	}
    }
    
    public static void close(PreparedStatement pstmt) {
	if(pstmt!=null) {
	    try {
		pstmt.close();
	    } catch (Exception e) {
		e.printStackTrace();
	    }
	}
    }

    public static void close(ResultSet rs) {
	if(rs!=null) {
	    try {
		rs.close();
	    } catch (Exception e) {
		e.printStackTrace();
	    }
	}
    }

    public static void rollBack(Connection conn) {
	if (conn != null) {
	    try {
		conn.rollback();
	    } catch (Exception e) {
		e.printStackTrace();
	    }
	}
    }
}

๊ฒŒ์‹œํŒ ๋ฆฌ์ŠคํŠธ(ํŽ˜์ด์ง€ ๋ฒˆํ˜ธ)

 

 

list.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri = "http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fmt" uri = "http://java.sun.com/jsp/jstl/fmt" %>
<!DOCTYPE html>
<c:set var = "root" value = "${pageContext.request.contextPath}"/>
<html>
<head>
<meta charset="UTF-8">
<title>๋ชฉ๋ก ํŽ˜์ด์ง€</title>
</head>
<body>
	<div align="right">
		<table>
			<tr>
				<td>
					<a href="${root}/board/write.do">๊ธ€์“ฐ๊ธฐ</a>
				</td>
			</tr>
		</table>
	</div>
	
	<c:if test="${count==0||boardList.size()==0}">
		<div align="center">
			๊ฒŒ์‹œํŒ์— ์ €์žฅ๋œ ๊ธ€์ด ์—†์Šต๋‹ˆ๋‹ค.
		</div>
	</c:if>
	
	<c:if test="${count>0}">
		<div align="center">
			<table border="1">
				<tr>
					<td align="center" width="50"><strong>๋ฒˆํ˜ธ</strong></td>
					<td align="center" width="250"><strong>์ œ๋ชฉ</strong></td>
					<td align="center" width="70"><strong>์ž‘์„ฑ์ž</strong></td>
					<td align="center" width="150"><strong>์ž‘์„ฑ์ผ</strong></td>
					<td align="center" width="50"><strong>์กฐํšŒ์ˆ˜</strong></td>
				</tr>
				
				 <c:forEach var="boardDto" items="${boardList}">
					 <tr>
					 	<td align="center" width="50">${boardDto.boardNumber}</td>
						<td align="center" width="250">
							<a href="${root}/board/read.do?boardNumber=${boardDto.boardNumber}&pageNumber=${currentPage}">${boardDto.subject}</a>
						</td>
						<td align="center" width="70">${boardDto.writer}</td>
						<td align="center" width="150">
							<fmt:formatDate value="${boardDto.writeDate}" pattern="yyyy-MM-dd HH:mm:ss"/>
						</td>
						<td align="center" width="50">${boardDto.readCount}</td>
					 </tr>
				 </c:forEach>
			</table>
		</div>
	</c:if>
	
	<div align="center">
		<%-- 
			1. ํ•œ ํŽ˜์ด์ง€๋‹น ๊ฒŒ์‹œ๋ฌผ ์ˆ˜ : 10 
			2. ์ด ํŽ˜์ด์ง€ ์ˆ˜: 10page = ์ „์ฒด๋ ˆ์ฝ”๋“œ ์ˆ˜ 100/ ํ•œ ํŽ˜์ด์ง€๋‹น ๊ฒŒ์‹œ๋ฌผ ์ˆ˜ 10 
						 11page = ์ „์ฒด๋ ˆ์ฝ”๋“œ ์ˆ˜ 101/ ํ•œ ํŽ˜์ด์ง€๋‹น ๊ฒŒ์‹œ๋ฌผ ์ˆ˜ 10
						 
			3. ํŽ˜์ด์ง€๋ฒˆํ˜ธ ๋ธ”๋Ÿญ : 10 
							[1][2][3][4][5]...[10]
							์š”์ฒญํŽ˜์ด์ง€๋ฒˆํ˜ธ 5์ด๋ฉด ์‹œ์ž‘๋ฒˆํ˜ธ 1, ๊ธ€๋ฒˆํ˜ธ 10
							
							pageBlock, currentPage : ์‹œ์ž‘๋ฒˆํ˜ธ, ๋๋ฒˆํ˜ธ
							
							int startPage=(int)((currentPage-1)/pageBlock)*pageBlock + 1
												(3-1)/10 = 0*10 + 1 = 1 
												(33-1)/10= 3*10 + 1 = 31
							int endPage=startPage+pageBlock-1
											1+10-1 = 10
											31+10-1 = 40
											
			4. boardSize, currentPage, count: Command Data
		--%>
		<fmt:parseNumber var="pageCount" value="${count/boardSize+(count%boardSize==0? 0:1)}" integerOnly="true"/>
		<c:set var="pageBlock" value="${3}"/>
		
		<fmt:parseNumber var="result" value="${(currentPage-1)/pageBlock}" integerOnly="true"/>
		<c:set var="startPage" value="${result*pageBlock+1}"/>
		<c:set var="endPage" value="${startPage+pageBlock-1}"/>
		
		<c:if test="${endPage > pageCount}">
			<c:set var="endPage" value="${pageCount}"/>
		</c:if>
		<%-- ${startPage}, ${endPage}--%>
		
		<c:if test="${startPage > pageBlock}">
			<a href="${root}/board/list.do?pageNumber=${startPage-pageBlock}">[์ด์ „]</a>
		</c:if>
		
		<c:forEach var="i" begin="${startPage}" end="${endPage}">
			<a href="${root}/board/list.do?pageNumber=${i}">[${i}]</a>
		</c:forEach>
		
		<c:if test="${endPage < pageCount }">
			<a href="${root}/board/list.do?pageNumber=${startPage+pageBlock}">[๋‹ค์Œ]</a>
		</c:if>
	</div>
</body>
</html>

 

ListCommand.java

package com.java.board.command;

import java.util.ArrayList;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.java.board.model.BoardDao;
import com.java.board.model.BoardDto;
import com.java.command.Command;

public class ListCommand implements Command {

    @Override
    public String proRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {

	String pageNumber = request.getParameter("pageNumber");
	if (pageNumber == null)
	    pageNumber = "1";

	int currentPage = Integer.parseInt(pageNumber); // ์š”์ฒญ 1page
	//logger.info(logMsg + "currentPage:" + currentPage);

	int boardSize = 2; // [1], [2]
	int startRow = (currentPage - 1) * boardSize + 1; // ์‹œ์ž‘๋ฒˆํ˜ธ 1 11
	int endRow = currentPage * boardSize; // ๋๋ฒˆํ˜ธ 10 20

	int count = BoardDao.getInstance().getCount();
	//logger.info(logMsg + count);
	

	ArrayList<BoardDto> boardList = null;
	if (count > 0) {
	    // startRow, endRow
	    boardList = BoardDao.getInstance().getBoardList(startRow, endRow);
	    //logger.info(logMsg + boardList.size());
	}
	
	request.setAttribute("boardList", boardList);
	request.setAttribute("boardSize", boardSize);
	request.setAttribute("currentPage", currentPage);
	request.setAttribute("count", count);

	return "/WEB-INF/views/board/list.jsp";
    }
}

 

commandURL.properties

# member
/member/register.do=com.java.member.command.RegisterCommand
/member/registerOk.do=com.java.member.command.RegisterOkCommand
/member/idCheck.do=com.java.member.command.IdCheckCommand
/member/zipcode.do=com.java.member.command.ZipcodeCommand
/member/login.do=com.java.member.command.LoginCommand
/member/loginOk.do=com.java.member.command.LoginCommandOk
/member/logout.do=com.java.member.command.LoginOutCommand
/member/main.do=com.java.member.command.mainCommand
/member/update.do=com.java.member.command.UpdateCommand
/member/updateOk.do=com.java.member.command.UpdateOkCommand
/member/delete.do=com.java.member.command.DeleteCommand
/member/deleteOk.do=com.java.member.command.DeleteOkCommand

# board
/board/write.do=com.java.board.command.WriteCommand
/board/writeOk.do=com.java.board.command.WriteOkCommand
/board/list.do=com.java.board.command.ListCommand
/board/read.do=com.java.board.command.ReadCommand
/board/delete.do=com.java.board.command.DeleteCommand
/board/deleteOk.do=com.java.board.command.DeleteOkCommand
/board/update.do=com.java.board.command.UpdateCommand
/board/updateOk.do=com.java.board.command.UpdateOkCommand

 

boardStyle.css

@charset "UTF-8";

#createform {
	width: 700px;
	height: 100px;
	margin: 100px auto;
}

#title {
	color: blue;
	text-align: right;
}

#createform .menu {
	border: solid 3px black;
	width: 700px;
	height: 30px;
	display: block;
	line-height: 20px;
	text-indent: 5px;
}

#id {
	border-right: solid 3px black;
	width: 130px;
	height: 30px;
	float: left;
	line-height: 30px;
	text-align: center;
}

#text {
	border-right: solid 3px black;
	width: 130px;
	height: 200px;
	float: left;
	line-height: 30px;
	text-align: center;
}

#createform .content {
	border: solid 3px black;
	width: 700px;
	height: 200px;
	line-height: 20px;
	text-indent: 5px;
}

 

board.js

/**
 * 
 */
function boardCheck(obj){
	//alert("OK");	
}
function replyFunc(root, boardNumber, groupNumber, sequenceNumber, sequenceLevel){
	var url = root + "/board/write.do?boardNumber=" + boardNumber +
			"&groupNumber=" + groupNumber + "&sequenceNumber=" + sequenceNumber +
			"&sequenceLevel=" + sequenceLevel;
	//alert(url);
	
	location.href = url;
}
function delFunc(root, boardNumber, pageNumber){
	var url = root+ "/board/delete.do?boardNumber=" + boardNumber + "&pageNumber=" + pageNumber;
	//alert(url);
	
	location.href = url;
	/*var value = confirm("์‚ญ์ œํ•˜์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?");
	
	if(value == true){
		var url = root+ "/board/deleteOk.do?boardNumber=" + boardNumber + "&pageNumber=" + pageNumber;
		alert(url);
	}else{
		alert("์ทจ์†Œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.");
	}*/
}
function updFunc(root, boardNumber, pageNumber){
	var url = root + "/board/update.do?boardNumber=" + boardNumber + "&pageNumber=" + pageNumber;
	//alert(url);
	
	location.href = url;
}

๊ธ€ ์ฝ๊ธฐ

 

read.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<!DOCTYPE html>
<c:set var="root" value="${pageContext.request.contextPath}" />
<html>
<head>
<meta charset="UTF-8">
<title>ํšŒ์›๊ฐ€์ž…page</title>
<link rel="stylesheet" href="${root}/css/board/boardStyle.css" />
<script type="text/javascript" src="${root}/javascript/board/board.js?ver=2"></script>
</head>
<body>
	<div id="createform">
		<div class="menu" style="border-bottom-width: 0px;"> 
			<div id="id">๊ธ€๋ฒˆํ˜ธ</div>
			${boardDto.boardNumber}
		</div>
		
		<div class="menu" style="border-bottom-width: 0px;">
			<div id="id">์ž‘์„ฑ์ž</div>
			${boardDto.writer}
		</div>
		
		<div class="menu" style="border-bottom-width: 0px;">
			<div id="id">์กฐํšŒ์ˆ˜</div>
			${boardDto.readCount}
		</div>
		
		<div class="menu" style="border-bottom-width: 0px;">
			<div id="id">์ž‘์„ฑ์ผ</div>
			<fmt:formatDate value="${boardDto.writeDate}" pattern="yyyy-MM-dd HH:mm:ss"/>
		</div>

		<div class="menu" style="border-bottom-width: 0px;">
			<div id="id">์ œ๋ชฉ</div>
			${boardDto.subject}
		</div>

		<div class="content" style="border-bottom-width: 0px;">
			<div id="text">๋‚ด์šฉ</div>
			${boardDto.content}
		</div>

		<div class="menu" style="border-bottom-width: 3px; text-align: center;">
			<input type="button" value="๊ธ€์ˆ˜์ •" onclick="updFunc('${root}','${boardDto.boardNumber}','${pageNumber}')"/>	
			<input type="button" value="๊ธ€์‚ญ์ œ" onclick="delFunc('${root}','${boardDto.boardNumber}','${pageNumber}')"/>	
			<input type="button" value="๋‹ต๊ธ€" onclick="replyFunc('${root}','${boardDto.boardNumber}','${boardDto.groupNumber}','${boardDto.sequenceNumber}','${boardDto.sequenceLevel}')"/>	
			<input type="button" value="๊ธ€๋ชฉ๋ก" onclick="location.href='${root}/board/list.do?pageNumber=${pageNumber}'"/>	
		</div>
	</div>
</body>
</html>

 

ReadCommand.java

package com.java.board.command;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.java.board.model.BoardDao;
import com.java.board.model.BoardDto;
import com.java.command.Command;

public class ReadCommand implements Command {

    @Override
    public String proRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {
	int boardNumber = Integer.parseInt(request.getParameter("boardNumber"));
	int pageNumber = Integer.parseInt(request.getParameter("pageNumber"));
	//logger.info(logMsg + boardNumber + "," + pageNumber);
	
	BoardDto boardDto = BoardDao.getInstance().read(boardNumber);
	//logger.info(logMsg + boardDto);
	
	request.setAttribute("pageNumber", pageNumber);
	request.setAttribute("boardDto", boardDto);
	
	return "/WEB-INF/views/board/read.jsp";
    }
}

 


๊ธ€ ์ˆ˜์ •ํ•˜๊ธฐ

 

 

update.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!DOCTYPE html>
<c:set var="root" value="${pageContext.request.contextPath }" />
<html>
<head>
<meta charset="UTF-8">
<title>ํšŒ์›๊ฐ€์ž…page</title>
<link rel="stylesheet" href="${root}/css/board/boardStyle.css" />
<script type="text/javascript" src="${root}/javascript/board/board.js"></script>
</head>
<body>
	<form id="createform" action="${root}/board/updateOk.do" method="post">
		<div id="title"><a href="${root}/board/list.do">๊ธ€๋ชฉ๋ก</a></div>
			
		<div class="menu" style="border-bottom-width: 0px;">
			<input type="hidden" name="boardNumber" value="${boardNumber}"/>
			<input type="hidden" name="pageNumber" value="${pageNumber}"/>
			
			<div id="id">์ž‘์„ฑ์ž</div>
			<span>
				${boardDto.writer}
			</span>
		</div>

		<div class="menu" style="border-bottom-width: 0px;">
			<div id="id">์ œ๋ชฉ</div>
			<span> 
				<input type="text" name="subject" size="50" value="${boardDto.subject}"/>
			</span>
		</div>

		<div class="menu" style="border-bottom-width: 0px;">
			<div id="id">์ด๋ฉ”์ผ</div>
			<span> 
				<input type="email" name="email" size="50" value="${boardDto.email}"/>
			</span>
		</div>

		<div class="content" style="border-bottom-width: 0px;">
			<div id="text">๋‚ด์šฉ</div>
			<span> 
				<textarea name="content" rows="12" cols="65" >${boardDto.content}</textarea>
			</span>
		</div>

		<div class="menu" style="border-bottom-width: 0px;">
			<div id="id">๋น„๋ฐ€๋ฒˆํ˜ธ</div>
			<span> 
				<input type="password" name="password" size="30" value="${boardDto.password}"/>
			</span>
		</div>

		<div class="menu" style="border-bottom-width: 3px; text-align: center;">
			<span> 
				<input type="submit" value="์ˆ˜์ •์™„๋ฃŒ"/> 
				<input type="reset" value="๋‹ค์‹œ์ž‘์„ฑ" /> 
				<input type="button" value="๋ชฉ๋ก๋ณด๊ธฐ" onclick="location.href='${root}/board/list.do'"/>
			</span>
		</div>
	</form>
</body>
</html>

 

UpdateCommand.java

package com.java.board.command;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.java.board.model.BoardDao;
import com.java.board.model.BoardDto;
import com.java.command.Command;

public class UpdateCommand implements Command {

    @Override
    public String proRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {

	int boardNumber = Integer.parseInt(request.getParameter("boardNumber"));
	int pageNumber = Integer.parseInt(request.getParameter("pageNumber"));
	
	BoardDto boardDto = BoardDao.getInstance().getContentList(boardNumber);
	
	request.setAttribute("boardNumber", boardNumber);
	request.setAttribute("pageNumber", pageNumber);
	request.setAttribute("boardDto", boardDto);
	
	return "/WEB-INF/views/board/update.jsp";
    }
}

 

updateOk.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri = "http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<c:set var = "root" value = "${pageContext.request.contextPath}"/>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>	
	<c:if test="${check > 0}">
		<script type="text/javascript">
			alert("์ˆ˜์ •๋˜์—ˆ์Šต๋‹ˆ๋‹ค.");
			location.href="${root}/board/list.do?";
		</script>
	</c:if>
	<c:if test="${check == 0}">
		<script type="text/javascript">
			alert("์ˆ˜์ •๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.");
			location.href="${root}/board/update.do?pageNumber=${pageNumber}";
		</script>
	</c:if>
</body>
</html>

 

UpdateOkCommand.java

package com.java.board.command;

import java.util.Date;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.java.board.model.BoardDao;
import com.java.board.model.BoardDto;
import com.java.command.Command;

public class UpdateOkCommand implements Command {

    @Override
    public String proRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {
	request.setCharacterEncoding("utf-8");
	
	int boardNumber = Integer.parseInt(request.getParameter("boardNumber"));
	int pageNumber = Integer.parseInt(request.getParameter("pageNumber"));
	
	BoardDto boardDto = new BoardDto();
	boardDto.setWriter(request.getParameter("name"));
	boardDto.setSubject(request.getParameter("subject"));
	boardDto.setEmail(request.getParameter("email"));
	boardDto.setContent(request.getParameter("content"));
	boardDto.setPassword(request.getParameter("password"));
	boardDto.setWriteDate(new Date()); //์‹œ๊ฐ„
	
	int check = BoardDao.getInstance().update(boardNumber, boardDto);
	logger.info(logMsg + check); 
	
	request.setAttribute("check", check);
	request.setAttribute("pageNumber", pageNumber);
	
	return "/WEB-INF/views/board/updateOk.jsp";
    }
}

 

 


๊ฒŒ์‹œํŒ ๊ธ€์“ฐ๊ธฐ

 

 

write.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!DOCTYPE html>
<c:set var="root" value="${pageContext.request.contextPath }" />
<html>
<head>
<meta charset="UTF-8">
<title>ํšŒ์›๊ฐ€์ž…page</title>
<link rel="stylesheet" href="${root}/css/board/boardStyle.css" />
<script type="text/javascript" src="${root}/javascript/board/board.js"></script>
</head>
<body>
	<form id="createform" action="${root}/board/writeOk.do" method="post"
		onsubmit="return boardCheck(this)">
		<div id="title">๊ธ€๋ชฉ๋ก</div>
		<div class="menu" style="border-bottom-width: 0px;">
			<input type="hidden" name="boardNumber" value="${boardNumber}" /> 
			<input type="hidden" name="groupNumber" value="${groupNumber}" /> 
			<input type="hidden" name="sequenceNumber" value="${sequenceNumber}" /> 
			<input type="hidden" name="sequenceLevel" value="${sequenceLevel}" />
			
			<div id="id">์ž‘์„ฑ์ž</div>
			<span> 
				<input type="text" name="name" size="12" />
			</span>
		</div>

		<div class="menu" style="border-bottom-width: 0px;">
			<div id="id">์ œ๋ชฉ</div>
			<span> 
				<input type="text" name="subject" size="50" />
			</span>
		</div>

		<div class="menu" style="border-bottom-width: 0px;">
			<div id="id">์ด๋ฉ”์ผ</div>
			<span> 
				<input type="email" name="email" size="50" />
			</span>
		</div>

		<div class="content" style="border-bottom-width: 0px;">
			<div id="text">๋‚ด์šฉ</div>
			<span> 
				<textarea name="content" rows="12" cols="65"></textarea>
			</span>
		</div>

		<div class="menu" style="border-bottom-width: 0px;">
			<div id="id">๋น„๋ฐ€๋ฒˆํ˜ธ</div>
			<span> 
				<input type="password" name="password" size="30" />
			</span>
		</div>

		<div class="menu" style="border-bottom-width: 3px; text-align: center;">
			<span> 
				<input type="submit" value="๊ธ€์“ฐ๊ธฐ" /> 
				<input type="reset" value="๋‹ค์‹œ์ž‘์„ฑ" /> 
				<input type="button" value="๋ชฉ๋ก๋ณด๊ธฐ" />
			</span>
		</div>
	</form>
</body>
</html>

 

writeCommand.java

package com.java.board.command;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.java.command.Command;

public class WriteCommand implements Command {

    @Override
    public String proRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {
	
	//๋ถ€๋ชจ๊ธ€(ROOT)
	int boardNumber = 0;	//ROOT๊ธ€์ด๋ฉด 0
	int groupNumber = 1;	//๊ทธ๋ฃน๋ฒˆํ˜ธ
	int sequenceNumber = 0;	//๊ธ€์ˆœ์„œ
	int sequenceLevel = 0;	//๊ธ€๋ ˆ๋ฒจ
	
	//๋‹ต๊ธ€์ธ๊ฒฝ์šฐ ๋ถ€๋ชจ๊ธ€์˜  DB ๊ธ€๋ฒˆํ˜ธ, ๊ทธ๋ฃน๋ฒˆํ˜ธ, ๊ธ€์ˆœ์„œ, ๊ธ€๋ ˆ๋ฒจ
	if(request.getParameter("borderNumber")!=null) {
	    //๋‚˜์ค‘์—
	}
	
	logger.info(logMsg +"boardNumber:" + boardNumber); 
	logger.info(logMsg +"groupNumber:" + groupNumber); 
	logger.info(logMsg +"sequenceNumber:" + sequenceNumber); 
	logger.info(logMsg +"sequenceLevel:" + sequenceLevel); 
	
	request.setAttribute("boardNumber", boardNumber);
	request.setAttribute("groupNumber", groupNumber);
	request.setAttribute("sequenceNumber", sequenceNumber);
	request.setAttribute("sequenceLevel", sequenceLevel);
	
	return "/WEB-INF/views/board/write.jsp";
    }

}

 

writeOk.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri = "http://java.sun.com/jsp/jstl/core" %>      
<!DOCTYPE html>
<c:set var = "root" value = "${pageContext.request.contextPath}"/>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
   <c:if test="${check>0}">
      <script type="text/javascript">
         alert("๊ธ€์“ฐ๊ธฐ์— ์„ฑ๊ณตํ•˜์…จ์Šต๋‹ˆ๋‹ค.")
         location.href = "${root}/board/list.do";
      </script>
   </c:if>
   
   <c:if test="${check==0}">
      <script type="text/javascript">
         alert("๊ธ€์“ฐ๊ธฐ๋ฅผ ์‹คํŒจ.")
         location.href = "${root}/board/write.do";
      </script>
   </c:if>
</body>
</html>

 

writeOkCommand.java

package com.java.board.command;

import java.util.Date;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.java.board.model.BoardDao;
import com.java.board.model.BoardDto;
import com.java.command.Command;

public class WriteOkCommand implements Command {

    @Override
    public String proRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {
	request.setCharacterEncoding("utf-8");
	
	BoardDto boardDto = new BoardDto();
	boardDto.setBoardNumber(Integer.parseInt(request.getParameter("boardNumber")));
	boardDto.setGroupNumber(Integer.parseInt(request.getParameter("groupNumber")));
	boardDto.setSequenceNumber(Integer.parseInt(request.getParameter("sequenceNumber")));
	boardDto.setSequenceLevel(Integer.parseInt(request.getParameter("sequenceLevel")));
	
	boardDto.setWriter(request.getParameter("name"));
	boardDto.setSubject(request.getParameter("subject"));
	boardDto.setEmail(request.getParameter("email"));
	boardDto.setContent(request.getParameter("content"));
	boardDto.setPassword(request.getParameter("password"));
	boardDto.setWriteDate(new Date()); //์‹œ๊ฐ„
	
	int check = BoardDao.getInstance().insert(boardDto);
	logger.info(logMsg + boardDto); 
	request.setAttribute("check", check);
	
	return "/WEB-INF/views/board/writeOk.jsp";
    }
}

 


๊ธ€ ์‚ญ์ œํ•˜๊ธฐ

 

delete.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri = "http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<c:set var = "root" value = "${pageContext.request.contextPath}"/>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<div align="center">
		<form action="${root}/board/deleteOk.do" method="post">
			<input type="hidden" name="boardNumber" value="${boardNumber}"/>
			<input type="hidden" name="pageNumber" value="${pageNumber}"/>
			
			<div>๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์ž…๋ ฅํ•ด์ฃผ์„ธ์š”.</div>
			<div>
				<input type="password" name="password"/>
			</div>
			<div>
				<input type="submit" value="๊ธ€์‚ญ์ œ"/>
				<input type="button" value="๋ชฉ๋ก๋ณด๊ธฐ" onclick="location.href='${root}/board/list.do?pageNumber=${pageNumber}'"/>
			</div>
		</form>
	</div>
</body>
</html>

 

deleteOk.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri = "http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<c:set var = "root" value = "${pageContext.request.contextPath}"/>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<c:if test="${check > 0}">
		<script type="text/javascript">
			alert("์‚ญ์ œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.");
			location.href="${root}/board/list.do?pageNumber=${pageNumber}";
		</script>
	</c:if>
	<c:if test="${check == 0}">
		<script type="text/javascript">
			alert("์‚ญ์ œ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.");
			location.href="${root}/board/list.do?pageNumber=${pageNumber}";
		</script>
	</c:if>
</body>
</html>

 

DeleteCommand.java

package com.java.board.command;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.java.command.Command;

public class DeleteCommand implements Command {

    @Override
    public String proRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {
	
	int boardNumber = Integer.parseInt(request.getParameter("boardNumber"));
	int pageNumber = Integer.parseInt(request.getParameter("pageNumber"));
	logger.info(logMsg + boardNumber + "\t" + pageNumber);
	
	request.setAttribute("boardNumber", boardNumber);
	request.setAttribute("pageNumber", pageNumber);
	
	return "/WEB-INF/views/board/delete.jsp";
    }
}

 

DeleteOkCommand.java

package com.java.board.command;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.java.board.model.BoardDao;
import com.java.command.Command;

public class DeleteOkCommand implements Command {

    @Override
    public String proRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {
	int boardNumber = Integer.parseInt(request.getParameter("boardNumber"));
	int pageNumber = Integer.parseInt(request.getParameter("pageNumber"));
	String password = request.getParameter("password");
	logger.info(logMsg + boardNumber + "\t" + pageNumber + "\t" + password);
	
	int check = BoardDao.getInstance().delete(boardNumber, password);
	logger.info(logMsg + check);
	
	request.setAttribute("check", check);
	request.setAttribute("pageNumber", pageNumber);
	
	return "/WEB-INF/views/board/deleteOk.jsp";
    }

}

 

๋ฐ˜์‘ํ˜•
Comments