package board.controller;
import java.io.IOException;
import java.sql.SQLException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import board.dto.BoardDTO;
import board.dto.ForwardDTO;
import board.model.service.BoardService;
public class WriteContentController implements Controller {
@Override
public ForwardDTO execute(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
String title = request.getParameter("title");
String writer = request.getParameter("writer");
String content = request.getParameter("content");
BoardDTO bdto = new BoardDTO(title, writer, content);
BoardService bs = BoardService.getInstance();
ForwardDTO fdto = null;
try {
bs.writeContent(bdto);
request.setAttribute("bdto", bdto);
fdto = new ForwardDTO("/show_content.jsp", false);
} catch (SQLException e) {
e.printStackTrace();
request.setAttribute("error_message", e.getMessage());
fdto = new ForwardDTO("/error.jsp", false);
}
return fdto;
}
}
package board.model.service;
import java.sql.SQLException;
import java.util.ArrayList;
import board.dto.BoardDTO;
import board.model.dao.BoardDAO;
import board.util.Utilities;
public class BoardService {
private static BoardService instance = new BoardService();
private BoardDAO dao;
public static BoardService getInstance() {
return instance;
}
public BoardService() {
dao = BoardDAO.getInstance();
}
public void writeContent(BoardDTO bdto) throws SQLException {
int no = dao.selectBoardNO();
String writedate = Utilities.getNow();
String c = Utilities.changeContentForDB(bdto.getContent());
bdto.setNo(no);
bdto.setWritedate(writedate);
bdto.setContent(c);
bdto.setRefamily(no);
dao.insertContent(bdto);
bdto.setWritedate(Utilities.changeDayTimeFormat(writedate));
}
public void selectBoardNo() throws SQLException {
dao.selectBoardNO();
}
}
package board.model.dao;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import board.dto.BoardDTO;
import board.util.DBUtil;
//싱글톤으로 작성
public class BoardDAO {
private static BoardDAO instance = new BoardDAO();
private DBUtil dbutil;
public static BoardDAO getInstance() {
return instance;
}
public BoardDAO() {
dbutil = DBUtil.getInstance();
}
public int selectBoardNO() throws SQLException {
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rset = null;
int no = 0;
String sql = "select board_no_seq.nextval from dual";
try{
conn = dbutil.getDataSource().getConnection();
pstmt = conn.prepareStatement(sql);
rset = pstmt.executeQuery();
if(rset.next()) {
no = rset.getInt(1);
}
} finally {
dbutil.close(conn, pstmt, rset);
}
return no;
}
public void insertContent(BoardDTO bdto) throws SQLException {
Connection conn = null;
PreparedStatement pstmt = null;
String sql = "insert into board values(?,?,?,?,?,?,?,?,?)";
try {
conn = dbutil.getDataSource().getConnection();
pstmt = conn.prepareStatement(sql);
pstmt.setInt(1, bdto.getNo());
pstmt.setString(2, bdto.getTitle());
pstmt.setString(3, bdto.getWriter());
pstmt.setString(4, bdto.getContent());
pstmt.setString(5, bdto.getWritedate());
pstmt.setInt(6, bdto.getViewcount());
pstmt.setInt(7, bdto.getRefamily());
pstmt.setInt(8, bdto.getRestep());
pstmt.setInt(9, bdto.getRelevel());
pstmt.executeUpdate();
} finally {
dbutil.close(conn, pstmt);
}
}
}

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<% request.setCharacterEncoding("utf-8"); %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="/board_fc/boardController" method="post">
<input type="hidden" name="command" value="write">
<table>
<tr>
<td><h3>글쓰기</h3> </td>
</tr>
<tr>
<td>제목 <input type="text" name="title" size="100"></td>
</tr>
<tr>
<td>작성자 <input type="text" name="writer" size="30"></td>
</tr>
<tr>
<td><textarea name="content" rows="15" cols="80"></textarea></td>
</tr>
<tr>
<td colspan=2 align="center"><input type="submit" value="등록"> <input type="reset" value="초기화"></td>
</tr>
</table>
</form>
</body>
</html>

<%@page import="board.dto.BoardDTO"%>
<%@page import="board.util.Utilities"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<% request.setCharacterEncoding("utf-8"); %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<table border="1px" width="500px" height="100px">
<tr>
<td> <font size="3">${requestScope.bdto.no}.${requestScope.bdto.title }</font></td>
</tr>
<tr>
<td>작성자 : ${requestScope.bdto.writer } | 조회수 : ${requestScope.bdto.viewcount } | 작성일시 : ${requestScope.bdto.writedate }</td>
</tr>
<tr>
<td>${requestScope.bdto.content }</td>
</tr>
</table>
<a href="/board_fc/write_form.jsp">글쓰기</a>
<a href="/board_fc/boardController?command=list_all">전체 글목록</a>
<a href="">글목록(페이징)</a>
<a href="/board_fc/boardController?command=modify_form&no=${requestScope.bdto.no }">글수정</a>
<a href="/board_fc/boardController?command=delete_content&no=${requestScope.bdto.no }">글삭제</a>
<a href="/board_fc/boardController?command=reply_form&no=${requestScope.bdto.no }">답변</a>
</body>
</html>