모델2(MVC) 게시판 만들기 - 글입력 구현하기


- Board.class와 BoardDao.class는 모델1방식(http://injava.tistory.com/20참고)과 동일하다.(Model 역활)

- 모델2방식은 모델1에서 Model부분은 그대로 사용하고 나머지 부분을 Controller와 View로 역활을 나눈다.

- boardAddServlet 서블릿이 입력폼과 입력 요청을 처리한다.(Controller 역활)

- get방식으로 "/board/boardAdd"요청이 오면 "/board/boardAdd.jsp"로(View 역활) 바로 포워딩한다.

- post방식으로 "/board/boardAdd"요청이 오면  boardDao의 insertBoard()메서드를 호출하여 데이터를 입력하고 보여줄 View가 없으므로 "/board/boardList"를 재요청(redirect)한다.

- view페이지(jsp)에서는 자바관련코드를 사용하지 않도록 EL/JSTL을 사용한다.



※ mysql -connector-java-5.1.40-bin.jar 파일은 http://mvnrepository.com/artifact/mysql/mysql-connector-java/5.1.40 나 http://dev.mysql.com/downloads/connector/j 둘중 하나에서 다운로드 받으면 됩니다. 

view에서 JSTL을 사용하기 위한 라이브러리 jstl-1.2.jar 파일은 다음에서 다운로드 http://mvnrepository.com/artifact/jstl/jstl/1.2


BoardAddServlet.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
package web;
 
import java.io.IOException;
 
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
 
import service.Board;
import service.BoardDao;
 
@WebServlet("/board/boardAdd")
public class BoardAddServlet extends HttpServlet {
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        request.getRequestDispatcher("/board/boardAdd.jsp").forward(request, response);
    }
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        request.setCharacterEncoding("euc-kr");
        String boardPw = request.getParameter("boardPw");
        System.out.println("param boardPw:"+boardPw);
        String boardTitle = request.getParameter("boardTitle");
        System.out.println("param boardTitle:"+boardTitle);
        String boardContent = request.getParameter("boardContent");
        System.out.println("param boardContent:"+boardContent);
        String boardUser = request.getParameter("boardUser");
        System.out.println("param boardUser:"+boardUser);
         
        Board board = new Board();
        board.setBoardPw(boardPw);
        board.setBoardTitle(boardTitle);
        board.setBoardContent(boardContent);
        board.setBoardUser(boardUser);
         
        BoardDao boardDao = new BoardDao();
        int rowCount = boardDao.insertBoard(board);
        // rowCout가 1이면 입력성공 
        response.sendRedirect(request.getContextPath()+"/board/boardList");
    }
}
 
cs



boardAdd.jsp

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<%@ page language="java" contentType="text/html; charset=EUC-KR" pageEncoding="EUC-KR"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title>BOARD ADD</title>
</head>
<body>
<h1>BOARD ADD</h1>
<form action="<c:url value='/board/boardAdd'/>" method="post">
    <div>boardPw : </div>
    <div><input name="boardPw" id="boardPw" type="password"/></div>
    <div>boardTitle : </div>
    <div><input name="boardTitle" id="boardTitle" type="text"/></div>
    <div>boardContent : </div>
    <div><textarea name="boardContent" id="boardContent" rows="5" cols="50"></textarea></div>
    <div>boardName : </div>
    <div><input name="boardUser" id="boardUser" type="text"/></div>
    <div>
        <input type="submit" value="글입력"/>
        <input type="reset" value="초기화"/>
    </div>
</form>
</body>
</html>
cs


+ Recent posts